gauntlt 1.0.12 → 1.0.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e5441f5eb6efbb45a3f2256b6221b701fd44ecfa
4
- data.tar.gz: 0326e52f48b970207e867b29d5417b279dc5b97b
3
+ metadata.gz: c2c51cde0442bafb05665ed820dc8f1093b8f2c7
4
+ data.tar.gz: 510e74457b2a5e31de244ea646d278809f44087a
5
5
  SHA512:
6
- metadata.gz: 565a159c44612a49c817ce6a97f95ac417dd19f7fa7db1d6cd92a36f8f9471e57f366e5a8a00e5250a898e5839911bf579eaaa98759ccd78418c172c5d674e98
7
- data.tar.gz: 021e7f39ce8adfbcd3999729be2f080e8b2016ac25dac2f89f0fbc8ea941be2f07fa7d345c73b7cd1a37d21b0cb895a6f92136b5e6855e1332fdc0f7a48d18a9
6
+ metadata.gz: abc774b0b9c1356117eb8b9f2c971200871081707ed41786c91f7aa5d21888cda86bf98a74e9c2128d2bb6f1e18fb8c2070f5d05bfc0fa2238fd15ab1bf4cb72
7
+ data.tar.gz: 79dc9aa306817106cb273649657e5b94e36bc78c7826ec8fd4c5d2211514a654a2f002c7fe3b4a36c320d11368ef81b18c950f5a93f5149c63e20022ac685ce4
@@ -1,16 +1,16 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.0
4
- - 2.1.5
5
- - 2.2.4
6
- - 2.3.0
3
+ - 2.1.10
4
+ - 2.2.7
5
+ - 2.3.4
6
+ env:
7
+ global:
8
+ - ARACHNI="arachni-1.5.1-0.5.12"
9
+ - ARACHNI_URL="https://github.com/Arachni/arachni/releases/download/v1.5.1/arachni-1.5.1-0.5.12-linux-x86_64.tar.gz"
7
10
  before_install:
8
11
  - git submodule update --init --recursive --force
9
12
  - gem update bundler
10
13
  before_script:
11
- #- go get github.com/FiloSottile/Heartbleed
12
- #- go install github.com/FiloSottile/Heartbleed
13
- #- which Heartbleed
14
14
  - sudo apt-get update
15
15
  - sudo apt-get install build-essential git libxml2 libxml2-dev
16
16
  libxslt-dev libcurl4-openssl-dev libsqlite3-dev libyaml-dev zlib1g-dev
@@ -18,10 +18,8 @@ before_script:
18
18
  - export SSLYZE_PATH="/home/travis/build/gauntlt/gauntlt/vendor/sslyze/sslyze_cli.py"
19
19
  - export SQLMAP_PATH="/home/travis/build/gauntlt/gauntlt/vendor/sqlmap/sqlmap.py"
20
20
  - 'cd vendor/Garmr && sudo python setup.py install && cd ../..'
21
- - 'cd vendor && wget http://downloads.sourceforge.net/project/dirb/dirb/2.03/dirb203.tar.gz && tar xvfz dirb203.tar.gz && cd dirb && ./configure && make && sudo cp dirb /usr/local/bin/ && cd ..'
22
- - export DIRB_WORDLISTS="/home/travis/build/gauntlt/gauntlt/vendor/dirb/wordlists"
21
+ - 'cd vendor && tar xvfz dirb222.tar.gz > /dev/null && chmod -R 755 ./dirb222 && cd ./dirb222 && ./configure && make && sudo cp dirb /usr/local/bin/ && cd ..'
22
+ - export DIRB_WORDLISTS="/home/travis/build/gauntlt/gauntlt/vendor/dirb222/wordlists"
23
+ - 'wget $ARACHNI_URL && tar xzvf $ARACHNI-linux-x86_64.tar.gz > /dev/null && sudo ln -s $TRAVIS_BUILD_DIR/$ARACHNI/bin/* /usr/local/bin/'
23
24
  notifications:
24
- irc:
25
- channels:
26
- - "chat.freenode.net#gauntlt"
27
- use_notice: true
25
+ slack: gauntlt:UEjUro5MQLFO1DwuETgUxb7u
data/README.md CHANGED
@@ -8,15 +8,24 @@ usable by devs, ops and security.
8
8
 
9
9
  ## PROJECT STATUS
10
10
 
11
- Gauntlt is under active development and we welcome community feedback and
12
- contributions. Please file issues via github and follow the project on
13
- twitter: [@gauntlt](https://twitter.com/gauntlt).
11
+ As of 2018, Gauntlt is re-launching development efforts and building a commmunity
12
+ of practice. Join us on the [gauntlt slack channel](http://bit.ly/2EU9yGh). We are
13
+ hoping to extend gauntlt functionality, add attack adapters and buildup a library
14
+ of sharable attacks that fit everyone's needs. This isn't just for ruby developers,
15
+ we need feedback and contributions from security experts and people with experience
16
+ running gauntlt in build pipelines. Join us!
14
17
 
15
- Have questions? Ask us anything on the [gauntlt google group](http://bit.ly/gauntlt_group)
16
- or find us on irc at [#gauntlt](http://webchat.freenode.net/?channels=gauntlt) (irc.freenode.net).
18
+ We welcome feedback and contributions. Please file issues via
19
+ github and follow the project on twitter: [@gauntlt](https://twitter.com/gauntlt).
20
+
21
+ Have questions? Feel free to open a ticket, but we would prefer you find us
22
+ on the [gauntlt slack channel](http://bit.ly/2EU9yGh) (gauntlt.slack.com).
17
23
 
18
24
  ## GET STARTED
19
25
 
26
+ You might want also take a look at [gauntlt-docker](https://github.com/gauntlt/gauntlt-docker)
27
+ which has gauntlt and a few attack tools all grouped into one container.
28
+
20
29
  Note: if you are new to gauntlt, have a look at
21
30
  [gauntlt-starter-kit](https://github.com/gauntlt/gauntlt-starter-kit), it is
22
31
  the easiest way to get up and running.
@@ -89,11 +98,14 @@ example on gauntlt.org)
89
98
 
90
99
  Gauntlt includes attack adapters for the following tools:
91
100
 
101
+ * [arachni] [arachni]
92
102
  * [curl] [curl]
103
+ * [dirb] [dirb]
104
+ * [Garmr] [garmr]
105
+ * [heartbleed] [heartbleed]
93
106
  * [nmap] [nmap]
94
- * [sslyze] [sslyze]
95
107
  * [sqlmap] [sqlmap]
96
- * [Garmr] [garmr]
108
+ * [sslyze] [sslyze]
97
109
 
98
110
  You will need to install each tool yourself before you can use it with gauntlt.
99
111
  However, if you try to use a tool that is not installed or that gauntlt cannot
@@ -153,7 +165,7 @@ Feature: Attack with kindness
153
165
 
154
166
  ## FOR DEVELOPERS
155
167
 
156
- NOTE: We currently use `ruby 1.9.3` and `JRuby 1.7.0` for development and testing.
168
+ NOTE: We currently use `ruby 2.3.4` for development and testing.
157
169
 
158
170
  1. Clone the git repo and get the submodules
159
171
 
@@ -197,18 +209,19 @@ NOTE: We currently use `ruby 1.9.3` and `JRuby 1.7.0` for development and testin
197
209
 
198
210
  ## ROADMAP
199
211
 
200
- Gauntlt is under active development and we appreciate your suggestions and bug reports. We aim to be very responsive and friendly while adhering to a consistent design based on minimalism, simplicity and extensibility.
212
+ Gauntlt has been steady for some time now, but we are working on some new features. Join us on slack for more info.
213
+
214
+ We appreciate your suggestions and bug reports. We aim to be very responsive and friendly while adhering to a consistent design based on minimalism, simplicity and extensibility.
201
215
 
202
216
  ## LICENSE
203
217
 
204
218
  gauntlt is licensed under The MIT License. See the LICENSE file in the repo or visit [gauntlt.mit-license.org](http://gauntlt.mit-license.org/) for details.
205
219
 
220
+ [arachni]: http://www.arachni-scanner.com/
206
221
  [curl]: http://curl.haxx.se
222
+ [dirb]: http://dirb.sourceforge.net/
223
+ [garmr]: https://github.com/mozilla/Garmr
224
+ [heartbleed]: https://github.com/FiloSottile/Heartbleed
207
225
  [nmap]: http://nmap.org
208
226
  [sslyze]: https://github.com/iSECPartners/sslyze
209
227
  [sqlmap]: http://sqlmap.org
210
- [garmr]: https://github.com/mozilla/Garmr
211
-
212
-
213
- [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/gauntlt/gauntlt/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
214
-
@@ -28,6 +28,8 @@ EOS
28
28
 
29
29
  opt :format, "Available formats: html, json, junit, progress",
30
30
  :type => String
31
+ opt :outfile, "Pipe run results to file",
32
+ :type => String
31
33
  end
32
34
 
33
35
  opts[:path] = if ARGV.empty?
@@ -50,6 +52,6 @@ elsif opts[:allsteps]
50
52
  puts "\nGauntlt Attack Steps"
51
53
  puts all_step_defs[:gauntlt].sort
52
54
  else
53
- Gauntlt.attack( opts[:path], opts[:tags].join(','), opts[:format] )
55
+ Gauntlt.attack( opts[:path], opts[:tags].join(','), opts[:format], opts[:outfile] )
54
56
  end
55
57
 
@@ -15,6 +15,6 @@ end
15
15
 
16
16
  Given /^the following attack files exist:$/ do |table|
17
17
  table.hashes.each do |hsh|
18
- check_file_presence [hsh['filename']], true
18
+ be_exisiting_file [hsh['filename']], true
19
19
  end
20
20
  end
@@ -16,16 +16,17 @@ Gem::Specification.new do |s|
16
16
  s.files.reject! { |fn| fn.include? "vendor" }
17
17
  s.files.reject! { |fn| fn.include? "examples" }
18
18
  s.files.reject! { |fn| fn.include? "ready_to_rumble" }
19
+ s.files.reject! { |fn| fn.include? "install_gauntlt_deps" }
19
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
20
21
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
21
22
  s.require_paths = ["lib"]
22
23
 
23
- s.add_development_dependency 'rake', '~> 11.0.1'
24
- s.add_development_dependency 'arachni', '= 1.4'
24
+ s.add_development_dependency 'rake', '~> 12.2', '>= 12.2.1'
25
25
 
26
+ s.add_runtime_dependency 'ffi', '= 1.9.18'
26
27
  s.add_runtime_dependency 'cucumber', '= 1.3.20'
27
- s.add_runtime_dependency 'aruba', '= 0.5.4'
28
- s.add_runtime_dependency 'nokogiri', '~> 1.6.5'
29
- s.add_runtime_dependency 'trollop', '~> 2.1.2'
28
+ s.add_runtime_dependency 'aruba', '= 0.7.4'
29
+ s.add_runtime_dependency 'nokogiri', '~> 1.8', '>= 1.8.1'
30
+ s.add_runtime_dependency 'trollop', '~> 2.1', '>= 2.1.2'
30
31
 
31
32
  end
@@ -32,8 +32,8 @@ module Gauntlt
32
32
  end.sort
33
33
  end
34
34
 
35
- def attack(path, tags=[], format="")
36
- Attack.new(path, tags, format).run
35
+ def attack(path, tags=[], format="", outfile="")
36
+ Attack.new(path, tags, format, outfile).run
37
37
  end
38
38
 
39
39
  def stepdefs(path, tags=[])
@@ -4,8 +4,8 @@ module Gauntlt
4
4
  class Attack
5
5
  attr_accessor :runtime
6
6
 
7
- def initialize(path, tags=[], format="")
8
- self.runtime = Runtime.new(path, tags, format)
7
+ def initialize(path, tags=[], format="", outfile="")
8
+ self.runtime = Runtime.new(path, tags, format, outfile)
9
9
  end
10
10
 
11
11
  def run
@@ -7,17 +7,17 @@ module Gauntlt
7
7
  def gauntlt_attack_aliases
8
8
  @gauntlt_attack_aliases ||= {}
9
9
  end
10
-
10
+
11
11
  def load_attack_alias(alias_name, *version)
12
12
  @attack_steps = import_attack_aliases
13
13
  @alias_versioned = ""
14
- @alias_versioned << alias_name
14
+ @alias_versioned << alias_name
15
15
  if version.length > 0
16
16
  @alias_versioned << "-"
17
17
  @alias_versioned << version[0]
18
18
  end
19
19
 
20
- print "Checking #{@alias_versioned} and #{alias_name}"
20
+ print "Checking #{@alias_versioned} and #{alias_name}"
21
21
 
22
22
  if @attack_steps.has_key?(@alias_versioned)
23
23
  @attack_steps[@alias_versioned]
@@ -26,5 +26,9 @@
26
26
  "arachni-xss_with_options" : { "command" : "arachni --checks=xss* --scope-directory-depth-limit=<depth> --scope-page-limit=<link_count> --scope-auto-redundant=<auto_redundant> <url>",
27
27
  "description" : "This is a scan for cross site scripting (xss) that runs all the xss modules in arachni. This requires to specify several options for the scan. The arachni wiki has information on what these options represent but generally as you increase their values, the scan takes longer to run. \nThe wiki for arachni is available here > https://github.com/Arachni/arachni/wiki/Command-line-user-interface. \nThe depth option is described here: https://github.com/Arachni/arachni/wiki/Command-line-user-interface#wiki-depth \nThe link_count option is described here: https://github.com/Arachni/arachni/wiki/Command-line-user-interface#wiki-link-count \nThe auto_redundant option is described here: https://github.com/Arachni/arachni/wiki/Command-line-user-interface#wiki-auto-redundant",
28
28
  "requires" : [ "<url>", "<depth>", "<link_count>", "<auto_redundant>" ]
29
+ },
30
+ "arachni-allmediumandhigher" : { "command" : "arachni --checks=*,-interesting_responses,-webdav,-localstart_asp,-directory_listing,-private_ip,-form_upload,-cvs_svn_users,-captcha,-http_only_cookies,-html_objects,-emails,-cookie_set_for_parent_domain,-common_files,-allowed_methods <url>",
31
+ "description" : "This scan performs all checks except the checks that are low or informational only. We did leave in insecure_cookies even though this originally was an informational risk.",
32
+ "requires" : [ "<url>" ]
29
33
  }
30
34
  }
@@ -1,9 +1,42 @@
1
- { "nmap-fast" : { "command" : "nmap -F <host>",
2
- "description" : "This is a fast nmap scan that should run in 10 seconds or less on most networks. It looks for the most common ports and services.",
3
- "requires" : [ "<host>" ]
1
+ {
2
+ "nmap-fast" : {
3
+ "command" : "nmap -F <host>",
4
+ "description" : "This is a fast nmap scan that should run in 10 seconds or less on most networks. It looks for the most common ports and services.",
5
+ "requires" : [ "<host>" ]
4
6
  },
5
- "nmap-single_port" : { "command" : "nmap -p<port> <host>",
6
- "description" : "This checks a single port only",
7
- "requires" : [ "<host>", "<port>" ]
7
+ "nmap-single_port" : {
8
+ "command" : "nmap -p<port> <host>",
9
+ "description" : "This checks a single port only",
10
+ "requires" : [ "<host>", "<port>" ]
11
+ },
12
+ "nmap-all_tcp" : {
13
+ "command" : "nmap -Pn -p 1-65534 <host>",
14
+ "description" : "This checks all TCP ports",
15
+ "requires" : [ "<host>" ]
16
+ },
17
+ "nmap-scan_hostnames" : {
18
+ "command" : "nmap -sL <host>/24",
19
+ "description" : "This runs an ARP scan, no port scan",
20
+ "requires" : [ "<host>" ]
21
+ },
22
+ "nmap-arp_scan_network_no_portscan" : {
23
+ "command" : "nmap -PR -sn <host>/24",
24
+ "description" : "This runs an ARP scan, no port scan",
25
+ "requires" : [ "<host>" ]
26
+ },
27
+ "nmap-arp_scan_network_with_portscan" : {
28
+ "command" : "nmap -PR <host>/24",
29
+ "description" : "This runs an ARP scan, with a port scan",
30
+ "requires" : [ "<host>" ]
31
+ },
32
+ "nmap-portscan_tcp_udp_top100" : {
33
+ "command" : "nmap -sTU --top-ports 100 <host>",
34
+ "description" : "This runs a TCP and UDP port scan, top 100",
35
+ "requires" : [ "<host>" ]
36
+ },
37
+ "nmap-portscan_tcp_udp_top1000" : {
38
+ "command" : "nmap -sTU --top-ports 1000 <host>",
39
+ "description" : "This runs a TCP and UDP port scan, top 1000",
40
+ "requires" : [ "<host>" ]
8
41
  }
9
42
  }
@@ -9,13 +9,14 @@ module Gauntlt
9
9
  class NoFilesFound < StandardError; end
10
10
  class ExecutionFailed < StandardError; end
11
11
 
12
- attr_accessor :path, :attack_files, :tags, :format
12
+ attr_accessor :path, :attack_files, :tags, :format, :outfile
13
13
 
14
- def initialize(path, tags=[], format="")
14
+ def initialize(path, tags=[], format="", outfile="")
15
15
  self.path = path
16
16
  self.attack_files = self.class.attack_files_for(path)
17
17
  self.tags = tags
18
18
  self.format = format
19
+ self.outfile = outfile
19
20
  raise NoFilesFound.new("No files found in path: #{path}") if attack_files.empty?
20
21
  end
21
22
 
@@ -23,7 +24,7 @@ module Gauntlt
23
24
  args = attack_files + ['--strict', '--no-snippets', '--require', self.class.adapters_dir]
24
25
  args += ['--tags', tags] unless tags.empty?
25
26
  args += ['--format', format] unless format.nil?
26
-
27
+ args += ['--out', outfile] unless outfile.nil?
27
28
  Cucumber::Cli::Main.new(args)
28
29
  end
29
30
 
@@ -1,3 +1,3 @@
1
1
  module Gauntlt
2
- VERSION = "1.0.12"
2
+ VERSION = "1.0.13"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gauntlt
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.12
4
+ version: 1.0.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Wickett
@@ -9,36 +9,42 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-04-15 00:00:00.000000000 Z
12
+ date: 2018-03-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: 11.0.1
20
+ version: '12.2'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 12.2.1
21
24
  type: :development
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - ~>
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '12.2'
31
+ - - ">="
26
32
  - !ruby/object:Gem::Version
27
- version: 11.0.1
33
+ version: 12.2.1
28
34
  - !ruby/object:Gem::Dependency
29
- name: arachni
35
+ name: ffi
30
36
  requirement: !ruby/object:Gem::Requirement
31
37
  requirements:
32
38
  - - '='
33
39
  - !ruby/object:Gem::Version
34
- version: '1.4'
35
- type: :development
40
+ version: 1.9.18
41
+ type: :runtime
36
42
  prerelease: false
37
43
  version_requirements: !ruby/object:Gem::Requirement
38
44
  requirements:
39
45
  - - '='
40
46
  - !ruby/object:Gem::Version
41
- version: '1.4'
47
+ version: 1.9.18
42
48
  - !ruby/object:Gem::Dependency
43
49
  name: cucumber
44
50
  requirement: !ruby/object:Gem::Requirement
@@ -59,40 +65,52 @@ dependencies:
59
65
  requirements:
60
66
  - - '='
61
67
  - !ruby/object:Gem::Version
62
- version: 0.5.4
68
+ version: 0.7.4
63
69
  type: :runtime
64
70
  prerelease: false
65
71
  version_requirements: !ruby/object:Gem::Requirement
66
72
  requirements:
67
73
  - - '='
68
74
  - !ruby/object:Gem::Version
69
- version: 0.5.4
75
+ version: 0.7.4
70
76
  - !ruby/object:Gem::Dependency
71
77
  name: nokogiri
72
78
  requirement: !ruby/object:Gem::Requirement
73
79
  requirements:
74
- - - ~>
80
+ - - "~>"
75
81
  - !ruby/object:Gem::Version
76
- version: 1.6.5
82
+ version: '1.8'
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: 1.8.1
77
86
  type: :runtime
78
87
  prerelease: false
79
88
  version_requirements: !ruby/object:Gem::Requirement
80
89
  requirements:
81
- - - ~>
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '1.8'
93
+ - - ">="
82
94
  - !ruby/object:Gem::Version
83
- version: 1.6.5
95
+ version: 1.8.1
84
96
  - !ruby/object:Gem::Dependency
85
97
  name: trollop
86
98
  requirement: !ruby/object:Gem::Requirement
87
99
  requirements:
88
- - - ~>
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '2.1'
103
+ - - ">="
89
104
  - !ruby/object:Gem::Version
90
105
  version: 2.1.2
91
106
  type: :runtime
92
107
  prerelease: false
93
108
  version_requirements: !ruby/object:Gem::Requirement
94
109
  requirements:
95
- - - ~>
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: '2.1'
113
+ - - ">="
96
114
  - !ruby/object:Gem::Version
97
115
  version: 2.1.2
98
116
  description: Using standard Gherkin language to define security tests, gauntlt happily
@@ -105,9 +123,9 @@ executables:
105
123
  extensions: []
106
124
  extra_rdoc_files: []
107
125
  files:
108
- - .gitignore
109
- - .gitmodules
110
- - .travis.yml
126
+ - ".gitignore"
127
+ - ".gitmodules"
128
+ - ".travis.yml"
111
129
  - Gemfile
112
130
  - LICENSE
113
131
  - README.md
@@ -117,7 +135,7 @@ files:
117
135
  - config/services.rb
118
136
  - config/warble.rb
119
137
  - features/attack.feature
120
- - features/attacks/arachni.feature
138
+ - features/attacks/arachni.broken
121
139
  - features/attacks/curl.feature
122
140
  - features/attacks/dirb.feature
123
141
  - features/attacks/garmr.feature
@@ -137,7 +155,6 @@ files:
137
155
  - gauntlt.gemspec
138
156
  - gem_tasks/cucumber.rake
139
157
  - gem_tasks/test.rake
140
- - install_gauntlt_deps.sh
141
158
  - lib/gauntlt.rb
142
159
  - lib/gauntlt/attack.rb
143
160
  - lib/gauntlt/attack_adapters/arachni.rb
@@ -180,23 +197,23 @@ require_paths:
180
197
  - lib
181
198
  required_ruby_version: !ruby/object:Gem::Requirement
182
199
  requirements:
183
- - - '>='
200
+ - - ">="
184
201
  - !ruby/object:Gem::Version
185
202
  version: '0'
186
203
  required_rubygems_version: !ruby/object:Gem::Requirement
187
204
  requirements:
188
- - - '>='
205
+ - - ">="
189
206
  - !ruby/object:Gem::Version
190
207
  version: '0'
191
208
  requirements: []
192
209
  rubyforge_project:
193
- rubygems_version: 2.4.8
210
+ rubygems_version: 2.6.14
194
211
  signing_key:
195
212
  specification_version: 4
196
213
  summary: behaviour-driven security using cucumber
197
214
  test_files:
198
215
  - features/attack.feature
199
- - features/attacks/arachni.feature
216
+ - features/attacks/arachni.broken
200
217
  - features/attacks/curl.feature
201
218
  - features/attacks/dirb.feature
202
219
  - features/attacks/garmr.feature
@@ -1,121 +0,0 @@
1
- #!/bin/bash
2
-
3
- # check for system variables
4
- if [ -z $HOME_FOLDER ]; then
5
- HOME_FOLDER=$HOME
6
- echo -e "INFO: setting \$HOME_FOLDER to $HOME";
7
- fi
8
- if [ -z $USER_NAME ]; then
9
- USER_NAME=`whoami`
10
- echo -e "INFO: setting \$USER_NAME to `whoami`";
11
- fi
12
-
13
- # install system dependencies
14
- apt-get update
15
- apt-get install -y build-essential git libxml2 libxml2-dev \
16
- libxslt-dev libcurl4-openssl-dev libsqlite3-dev libyaml-dev zlib1g-dev \
17
- python-dev python-pip python-setuptools curl nmap w3af-console wget
18
-
19
-
20
- # install Ruby rvm, ruby 2.3.0 w/ json patch
21
- # @see https://github.com/rbenv/ruby-build/issues/834
22
- gpg --keyserver hkp://keys.gnupg.net --recv-keys \
23
- 409B6B1796C275462A1703113804BB82D39DC0E3
24
- curl -sSL https://get.rvm.io | bash -s stable
25
- source /etc/profile.d/rvm.sh
26
- echo "source /etc/profile.d/rvm.sh" >> ~/.bashrc
27
- rvm use 2.3.0 --default --install --fuzzy
28
-
29
- # install gauntlt, from source
30
- GAUNTLT_DIR=`pwd` # user current working directory, wherever you install Gauntlt
31
- gem install bundler
32
- bundle update
33
- git submodule update --init --recursive --force
34
-
35
-
36
-
37
- # install sslyze
38
- if ! type "sslyze" > /dev/null 2>&1; then
39
- cd $GAUNTLT_DIR/vendor/sslyze
40
- pip install -r requirements.txt
41
- ln -s `pwd`/sslyze_cli.py /usr/bin/sslyze
42
- fi
43
-
44
-
45
-
46
- # install sqlmap
47
- if ! type "sqlmap" > /dev/null 2>&1; then
48
- cd $GAUNTLT_DIR/vendor/sqlmap
49
- ln -s `pwd`/sqlmap.py /usr/bin/sqlmap
50
- fi
51
-
52
-
53
-
54
- # install Go, Heartbleed
55
- if ! type "Heartbleed" > /dev/null 2>&1; then
56
- apt-get install -y golang
57
- export GOPATH=$HOME_FOLDER/go
58
- export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
59
- cat << 'EOF' >> $HOME_FOLDER/.bashrc
60
-
61
- # configure go pathways
62
- export GOPATH=$HOME/go
63
- export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
64
- EOF
65
- go get github.com/FiloSottile/Heartbleed
66
- fi
67
-
68
-
69
- # install dirb
70
- if ! type "dirb" > /dev/null 2>&1; then
71
- cd $GAUNTLT_DIR/vendor
72
- wget -q http://downloads.sourceforge.net/project/dirb/dirb/2.22/dirb222.tar.gz
73
- tar -zxf dirb222.tar.gz
74
- mv dirb222 dirb
75
- chmod -R +x ./dirb
76
- cd dirb
77
- chown -R $(whoami) .
78
- bash ./configure
79
- make
80
- ln -s `pwd`/dirb /usr/bin/dirb
81
- cd $GAUNTLT_DIR/vendor/dirb/wordlists
82
- export DIRB_WORDLISTS=`pwd`
83
- else
84
- export DIRB_WORDLISTS=`locate dirb | grep "/dirb/wordlists$"`
85
- fi
86
-
87
-
88
- # install Garmr, from source
89
- if ! type "garmr" > /dev/null 2>&1; then
90
- cd $GAUNTLT_DIR/vendor/Garmr
91
- python setup.py install
92
- fi
93
-
94
-
95
- # install Arachni, from a gem
96
- if ! type "arachni" > /dev/null 2>&1; then
97
- gem install arachni -v 1.0.6
98
- gem install service_manager
99
- fi
100
-
101
-
102
- # start gruyere
103
- cd $GAUNTLT_DIR/vendor/gruyere
104
- bash ./manual_launch.sh
105
-
106
- # set the environmental variables
107
- export SSLYZE_PATH=`which sslyze`
108
- export SQLMAP_PATH=`which sqlmap`
109
-
110
- # save environmental variables to .bashrc
111
- cat << EOF >> $HOME_FOLDER/.bashrc
112
-
113
- # configure environmental variables for Gauntlt
114
- export DIRB_WORDLISTS=`locate dirb | grep "/dirb/wordlists$"`
115
- export SSLYZE_PATH=`which sslyze`
116
- export SQLMAP_PATH=`which sqlmap`
117
- EOF
118
-
119
- # chown the environment
120
- cd $GAUNTLT_DIR
121
- chown -R $USER_NAME ./