gauntlt 0.1.5 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/.gitignore +3 -0
- data/.travis.yml +2 -1
- data/README.md +4 -4
- data/bin/gauntlt +7 -2
- data/examples/nmap/nmap.attack +8 -2
- data/examples/nmap/simple.attack +6 -2
- data/features/attacks/nmap.feature +7 -0
- data/features/support/aruba.rb +1 -1
- data/features/support/hooks.rb +2 -2
- data/lib/gauntlt.rb +5 -2
- data/lib/gauntlt/attack.rb +3 -3
- data/lib/gauntlt/attack_adapters/nmap.rb +12 -2
- data/lib/gauntlt/attack_adapters/support/attack_step_helper.rb +30 -0
- data/lib/gauntlt/attack_aliases/dirb.json +5 -0
- data/lib/gauntlt/attack_aliases/nmap.json +9 -0
- data/lib/gauntlt/runtime.rb +4 -3
- data/lib/gauntlt/version.rb +1 -1
- data/ready_to_rumble.sh +29 -19
- metadata +8 -24
- data/vendor/dirb203.tar.gz +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MGRkZWZiMTQ4ZDIyMzFjZmFhODk5ZjQyOTJhZmYwY2Y5NjY0NDdmMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MzI0YjBjNTRkMTI4ODAzMWExOWI4MWUyYmFhNjY1ZDg0NzQ2OGY0Mg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MWU3MWJkZjI0ZWI1N2Q3M2I0NGI5MjlhM2U2MDFjMzE5ZjRlY2Y1YjFkNjc3
|
10
|
+
NGUwNjk3NzFiYmIyMTdhOTgzNGJiYTI5NGFhY2E0NWYxY2NjNGE2MjQyM2Rj
|
11
|
+
MDY0YmFmM2NiNDExYzZiYTYxMDUzMzhhODQ4NTA4OGQwNTNiZjI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ODM4MzVjYTM1NGIyYTBlNGZmMjk2MGM3OGRlYWViMTg5MDUwYzhiMGY3ZGQw
|
14
|
+
NGFiY2EyYmI1MmU4YmU2MzAzNWI1NmEzYWFlZTZkMTA4OGI3ZGRkMTBhZGU0
|
15
|
+
MGM1NGUwNWJiMDFlZjM3NmI5NTE3MzBmNjM1YTAzOTUwY2RhYzU=
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -6,10 +6,11 @@ before_install:
|
|
6
6
|
- git submodule update --init --recursive
|
7
7
|
before_script:
|
8
8
|
- sudo apt-get install nmap
|
9
|
+
- sudo apt-get install wget
|
9
10
|
- export SSLYZE_PATH="/home/travis/build/gauntlt/gauntlt/vendor/sslyze/sslyze.py"
|
10
11
|
- export SQLMAP_PATH="/home/travis/build/gauntlt/gauntlt/vendor/sqlmap/sqlmap.py"
|
11
12
|
- 'cd vendor/Garmr && sudo python setup.py install && cd ../..'
|
12
|
-
- 'cd vendor && tar xvfz dirb203.tar.gz && cd dirb && ./configure && make && sudo cp dirb /usr/local/bin/ && cd ..'
|
13
|
+
- '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 ..'
|
13
14
|
- export DIRB_WORDLISTS="/home/travis/build/gauntlt/gauntlt/vendor/dirb/wordlists"
|
14
15
|
|
15
16
|
matrix:
|
data/README.md
CHANGED
@@ -146,22 +146,22 @@ NOTE: We currently use `ruby 1.9.3` and `JRuby 1.7.0` for development and testin
|
|
146
146
|
# on ubuntu:
|
147
147
|
# $ sudo apt-get install libcurl4-openssl-dev
|
148
148
|
```
|
149
|
+
4. Run the ready_to_rumble.sh script to make sure you have all the dependencies installed like sqlmap and sslyze. This is meant to replicate the travis setup for devs. This should be a rake task instead.
|
149
150
|
|
150
|
-
|
151
|
+
5. Run the cucumber features and rspec examples
|
151
152
|
|
152
153
|
```shell
|
153
154
|
$ bundle exec rake
|
154
155
|
```
|
155
156
|
|
156
|
-
|
157
|
+
6. Launch attacks with bin/gauntlt
|
157
158
|
|
158
159
|
```shell
|
159
160
|
$ bin/gauntlt attack
|
160
161
|
```
|
161
162
|
|
162
|
-
|
163
|
+
7. Refer to the features directory for usage examples and please write cucumber features for any new functionality you wish to submit.
|
163
164
|
|
164
|
-
6. Run the ready_to_rumble.sh script to make sure you have all the dependencies installed like sqlmap and sslyze. This is meant to replicate the travis setup for devs. This should be a rake task instead.
|
165
165
|
|
166
166
|
## ROADMAP
|
167
167
|
|
data/bin/gauntlt
CHANGED
@@ -11,7 +11,7 @@ opts = Trollop::options do
|
|
11
11
|
gauntlt is a ruggedization framework that helps you be mean to your code
|
12
12
|
|
13
13
|
Usage:
|
14
|
-
gauntlt <path>+ [--tags TAG_EXPRESSION]
|
14
|
+
gauntlt <path>+ [--tags TAG_EXPRESSION] [--format FORMAT]
|
15
15
|
|
16
16
|
Options:
|
17
17
|
EOS
|
@@ -21,8 +21,13 @@ EOS
|
|
21
21
|
:multi => true
|
22
22
|
|
23
23
|
opt :list, "List defined attacks"
|
24
|
+
|
24
25
|
opt :steps, "List the gauntlt step definitions that can be used inside of attack files"
|
26
|
+
|
25
27
|
opt :allsteps, "List all available step definitions including aruba step definitions which help with file and parsing operations"
|
28
|
+
|
29
|
+
opt :format, "Available formats: html, json, junit, progress",
|
30
|
+
:type => String
|
26
31
|
end
|
27
32
|
|
28
33
|
opts[:path] = if ARGV.empty?
|
@@ -45,6 +50,6 @@ elsif opts[:allsteps]
|
|
45
50
|
puts "\nGauntlt Attack Steps"
|
46
51
|
puts all_step_defs[:gauntlt].sort
|
47
52
|
else
|
48
|
-
Gauntlt.attack( opts[:path], opts[:tags].join(',') )
|
53
|
+
Gauntlt.attack( opts[:path], opts[:tags].join(','), opts[:format] )
|
49
54
|
end
|
50
55
|
|
data/examples/nmap/nmap.attack
CHANGED
@@ -6,17 +6,23 @@ Feature: nmap attacks for scanme.nmap.org and to use this for your tests, change
|
|
6
6
|
And the following profile:
|
7
7
|
| name | value |
|
8
8
|
| hostname | scanme.nmap.org |
|
9
|
+
| host | scanme.nmap.org |
|
9
10
|
| tcp_ping_ports | 22,25,80,443 |
|
10
11
|
|
12
|
+
Scenario: Verify server is open on expected set of ports using the nmap-fast attack step
|
13
|
+
When I launch a "nmap-fast" attack
|
14
|
+
Then the output should match /80.tcp\s+open/
|
15
|
+
|
11
16
|
Scenario: Verify server is open on expected set of ports using the nmap fast flag
|
12
17
|
When I launch an "nmap" attack with:
|
13
18
|
"""
|
14
19
|
nmap -F <hostname>
|
15
20
|
"""
|
16
|
-
Then the output should
|
21
|
+
Then the output should match:
|
17
22
|
"""
|
18
|
-
80/tcp
|
23
|
+
80/tcp\s+open
|
19
24
|
"""
|
25
|
+
|
20
26
|
Scenario: Verify that there are no unexpected ports open
|
21
27
|
When I launch an "nmap" attack with:
|
22
28
|
"""
|
data/examples/nmap/simple.attack
CHANGED
@@ -12,5 +12,9 @@ Feature: simple nmap attack (sanity check)
|
|
12
12
|
"""
|
13
13
|
nmap -p 80,443 <hostname>
|
14
14
|
"""
|
15
|
-
Then the output should
|
16
|
-
And the output should not
|
15
|
+
Then the output should match /80.tcp\s+open/
|
16
|
+
And the output should not match:
|
17
|
+
"""
|
18
|
+
443/tcp\s+open
|
19
|
+
"""
|
20
|
+
|
@@ -8,6 +8,7 @@ Feature: nmap attack
|
|
8
8
|
| simple.attack |
|
9
9
|
| os_detection.attack |
|
10
10
|
| tcp_ping_ports.attack |
|
11
|
+
| nmap.attack |
|
11
12
|
| xml_output.attack |
|
12
13
|
|
13
14
|
Scenario: Simple nmap attack
|
@@ -37,3 +38,9 @@ Feature: nmap attack
|
|
37
38
|
"""
|
38
39
|
5 steps (5 passed)
|
39
40
|
"""
|
41
|
+
Scenario: The full nmap attack
|
42
|
+
When I run `gauntlt nmap.attack`
|
43
|
+
Then it should pass with:
|
44
|
+
"""
|
45
|
+
17 steps (17 passed)
|
46
|
+
"""
|
data/features/support/aruba.rb
CHANGED
data/features/support/hooks.rb
CHANGED
data/lib/gauntlt.rb
CHANGED
@@ -17,6 +17,9 @@ module Gauntlt
|
|
17
17
|
ATTACK_ADAPTERS_DIR = File.join(GAUNTLT_DIR, 'attack_adapters')
|
18
18
|
|
19
19
|
ATTACK_ADAPTERS_GLOB_PATTERN = ATTACK_ADAPTERS_DIR + '/*.rb'
|
20
|
+
|
21
|
+
ATTACK_ALIASES_DIR = File.join(GAUNTLT_DIR, 'attack_aliases')
|
22
|
+
ATTACK_ALIASES_GLOB_PATTERN = ATTACK_ALIASES_DIR + '/*.json'
|
20
23
|
|
21
24
|
class << self
|
22
25
|
def attack_adapters
|
@@ -29,8 +32,8 @@ module Gauntlt
|
|
29
32
|
end.sort
|
30
33
|
end
|
31
34
|
|
32
|
-
def attack(path, tags=[])
|
33
|
-
Attack.new(path, tags).run
|
35
|
+
def attack(path, tags=[], format="")
|
36
|
+
Attack.new(path, tags, format).run
|
34
37
|
end
|
35
38
|
|
36
39
|
def stepdefs(path, tags=[])
|
data/lib/gauntlt/attack.rb
CHANGED
@@ -4,12 +4,12 @@ module Gauntlt
|
|
4
4
|
class Attack
|
5
5
|
attr_accessor :runtime
|
6
6
|
|
7
|
-
def initialize(path, tags=[])
|
8
|
-
self.runtime = Runtime.new(path, tags)
|
7
|
+
def initialize(path, tags=[], format="")
|
8
|
+
self.runtime = Runtime.new(path, tags, format)
|
9
9
|
end
|
10
10
|
|
11
11
|
def run
|
12
12
|
runtime.execute!
|
13
13
|
end
|
14
14
|
end
|
15
|
-
end
|
15
|
+
end
|
@@ -1,9 +1,19 @@
|
|
1
1
|
# TODO: figure out if there's a way to namespace these step definitions
|
2
|
-
|
2
|
+
#
|
3
|
+
#read in JSON
|
3
4
|
When /^"nmap" is installed$/ do
|
4
5
|
ensure_cli_installed("nmap")
|
5
6
|
end
|
6
7
|
|
7
8
|
When /^I launch an "nmap" attack with:$/ do |command|
|
8
9
|
run_with_profile command
|
9
|
-
end
|
10
|
+
end
|
11
|
+
|
12
|
+
When /^I launch a "nmap-(.*?)" attack$/ do |type|
|
13
|
+
attack_alias = 'nmap-' + type
|
14
|
+
nmap_attack = load_attack_alias(attack_alias)
|
15
|
+
|
16
|
+
Kernel.puts "Running a #{attack_alias} attack. This attack has this description:\n #{nmap_attack['description']}"
|
17
|
+
|
18
|
+
run_with_profile nmap_attack['command']
|
19
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require "json"
|
2
|
+
|
3
|
+
module Gauntlt
|
4
|
+
module Support
|
5
|
+
module AttackAliasHelper
|
6
|
+
|
7
|
+
def gauntlt_attack_aliases
|
8
|
+
@gauntlt_attack_aliases ||= {}
|
9
|
+
end
|
10
|
+
|
11
|
+
def load_attack_alias(alias_name)
|
12
|
+
@attack_steps = import_attack_aliases
|
13
|
+
@attack_steps[alias_name] || raise("Unknown attack alias #{alias_name}, try gauntlt --list_attack_aliases")
|
14
|
+
end
|
15
|
+
|
16
|
+
def import_attack_aliases
|
17
|
+
@imported_attack_aliases = Hash.new
|
18
|
+
attack_aliases_json = Dir.glob(ATTACK_ALIASES_GLOB_PATTERN)
|
19
|
+
attack_aliases_json.each do |file|
|
20
|
+
@imported_attack_aliases.merge!(JSON.load(File.open(file)))
|
21
|
+
end
|
22
|
+
@imported_attack_aliases
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
World(Gauntlt::Support::AttackAliasHelper)
|
30
|
+
|
@@ -0,0 +1,9 @@
|
|
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>" ]
|
4
|
+
},
|
5
|
+
"nmap-single_port" : { "command" : "nmap -p<port> <host>",
|
6
|
+
"description" : "This checks a single port only",
|
7
|
+
"requires" : [ "<host>", "<port>" ]
|
8
|
+
}
|
9
|
+
}
|
data/lib/gauntlt/runtime.rb
CHANGED
@@ -7,19 +7,20 @@ module Gauntlt
|
|
7
7
|
class NoFilesFound < StandardError; end
|
8
8
|
class ExecutionFailed < StandardError; end
|
9
9
|
|
10
|
-
attr_accessor :path, :attack_files, :tags
|
10
|
+
attr_accessor :path, :attack_files, :tags, :format
|
11
11
|
|
12
|
-
def initialize(path, tags=[])
|
12
|
+
def initialize(path, tags=[], format="")
|
13
13
|
self.path = path
|
14
14
|
self.attack_files = self.class.attack_files_for(path)
|
15
15
|
self.tags = tags
|
16
|
-
|
16
|
+
self.format = format
|
17
17
|
raise NoFilesFound.new("No files found in path: #{path}") if attack_files.empty?
|
18
18
|
end
|
19
19
|
|
20
20
|
def cuke_cli
|
21
21
|
args = attack_files + ['--strict', '--require', self.class.adapters_dir]
|
22
22
|
args += ['--tags', tags] unless tags.empty?
|
23
|
+
args += ['--format', format] unless format.nil?
|
23
24
|
|
24
25
|
Cucumber::Cli::Main.new(args)
|
25
26
|
end
|
data/lib/gauntlt/version.rb
CHANGED
data/ready_to_rumble.sh
CHANGED
@@ -5,41 +5,51 @@
|
|
5
5
|
NMAP=`which nmap`
|
6
6
|
GARMR=`which garmr`
|
7
7
|
DIRB=`which dirb`
|
8
|
-
|
9
|
-
if [ -z $NMAP ]
|
10
|
-
then
|
11
|
-
echo "nmap is not installed in your path, try installing it and adding it to your path"
|
12
|
-
exit
|
13
|
-
fi
|
8
|
+
ERRORS=0
|
14
9
|
|
15
10
|
if [ -z $SSLYZE_PATH ]
|
16
11
|
then
|
17
|
-
|
18
|
-
|
12
|
+
MESSAGE="SSLYZE_PATH environment variable unset, try setting it to ./vendor/sslyze/sslyze.py if you havent updated the submodules we use in gauntlt, run this first: git submodule update --init --recursive"
|
13
|
+
ERRORS=$ERRORS+1
|
19
14
|
fi
|
20
15
|
|
21
16
|
if [ -z $SQLMAP_PATH ]
|
22
17
|
then
|
23
|
-
|
24
|
-
|
18
|
+
MESSAGE="SQLMAP_PATH environment variable unset, try setting it to ./vendor/sslyze/sqlmap.py if you havent updated the submodules we use in gauntlt, run this first: git submodule update --init --recursive"
|
19
|
+
ERRORS=$ERRORS+1
|
25
20
|
fi
|
26
21
|
|
27
22
|
if [ -z $GARMR ]
|
28
23
|
then
|
29
|
-
|
30
|
-
|
24
|
+
MESSAGE="garmr is not installed in your path, try installing it 'cd vendor/Garmr && sudo python setup.py install && cd ../..'"
|
25
|
+
ERRORS=$ERRORS+1
|
31
26
|
fi
|
32
27
|
|
33
|
-
if [ -z $
|
28
|
+
if [ -z $DIRB_WORDLISTS ]
|
34
29
|
then
|
35
|
-
|
36
|
-
|
30
|
+
MESSAGE="DIRB_WORDLISTS environment variable not set, please set it. Usually this is where you extracted dirb in a directory called 'wordlists'"
|
31
|
+
ERRORS=$ERRORS+1
|
37
32
|
fi
|
38
33
|
|
39
|
-
if [ -z $
|
34
|
+
if [ -z $DIRB ]
|
40
35
|
then
|
41
|
-
|
42
|
-
|
36
|
+
MESSAGE="dirb is not installed in your path, try installing it 'wget http://downloads.sourceforge.net/project/dirb/dirb/2.03/dirb203.tar.gz && tar xvfz dirb203.tar.gz && cd dirb && ./configure && make && cd ..'"
|
37
|
+
ERRORS=$ERRORS+1
|
43
38
|
fi
|
44
39
|
|
45
|
-
|
40
|
+
if [ -z $NMAP ]
|
41
|
+
then
|
42
|
+
MESSAGE="nmap is not installed in your path, try installing it (brew install nmap OR apt-get install nmap) and adding it to your path"
|
43
|
+
ERRORS=$ERRORS+1
|
44
|
+
fi
|
45
|
+
|
46
|
+
|
47
|
+
|
48
|
+
if [ $ERRORS -gt 0 ]
|
49
|
+
then
|
50
|
+
echo $MESSAGE
|
51
|
+
ERRORS=$ERRORS-1
|
52
|
+
echo "$ERRORS more things to fix... keep running ./ready_to_rumble.sh until you ARE."
|
53
|
+
else
|
54
|
+
echo "You ARE ready to rumble!"
|
55
|
+
fi
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gauntlt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- James Wickett
|
@@ -10,12 +9,11 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-07
|
12
|
+
date: 2013-08-07 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: cucumber
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
18
|
- - ~>
|
21
19
|
- !ruby/object:Gem::Version
|
@@ -23,7 +21,6 @@ dependencies:
|
|
23
21
|
type: :development
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
25
|
- - ~>
|
29
26
|
- !ruby/object:Gem::Version
|
@@ -31,7 +28,6 @@ dependencies:
|
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: aruba
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ! '>='
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :development
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ! '>='
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: rake
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ! '>='
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :development
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ! '>='
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,7 +56,6 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: sinatra
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
60
|
- - ! '>='
|
69
61
|
- !ruby/object:Gem::Version
|
@@ -71,7 +63,6 @@ dependencies:
|
|
71
63
|
type: :development
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
67
|
- - ! '>='
|
77
68
|
- !ruby/object:Gem::Version
|
@@ -79,7 +70,6 @@ dependencies:
|
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: cucumber
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
74
|
- - ! '>='
|
85
75
|
- !ruby/object:Gem::Version
|
@@ -87,7 +77,6 @@ dependencies:
|
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
81
|
- - ! '>='
|
93
82
|
- !ruby/object:Gem::Version
|
@@ -95,7 +84,6 @@ dependencies:
|
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: aruba
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ! '>='
|
101
89
|
- !ruby/object:Gem::Version
|
@@ -103,7 +91,6 @@ dependencies:
|
|
103
91
|
type: :runtime
|
104
92
|
prerelease: false
|
105
93
|
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
94
|
requirements:
|
108
95
|
- - ! '>='
|
109
96
|
- !ruby/object:Gem::Version
|
@@ -111,7 +98,6 @@ dependencies:
|
|
111
98
|
- !ruby/object:Gem::Dependency
|
112
99
|
name: nokogiri
|
113
100
|
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
101
|
requirements:
|
116
102
|
- - ~>
|
117
103
|
- !ruby/object:Gem::Version
|
@@ -119,7 +105,6 @@ dependencies:
|
|
119
105
|
type: :runtime
|
120
106
|
prerelease: false
|
121
107
|
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
108
|
requirements:
|
124
109
|
- - ~>
|
125
110
|
- !ruby/object:Gem::Version
|
@@ -127,7 +112,6 @@ dependencies:
|
|
127
112
|
- !ruby/object:Gem::Dependency
|
128
113
|
name: trollop
|
129
114
|
requirement: !ruby/object:Gem::Requirement
|
130
|
-
none: false
|
131
115
|
requirements:
|
132
116
|
- - ! '>='
|
133
117
|
- !ruby/object:Gem::Version
|
@@ -135,7 +119,6 @@ dependencies:
|
|
135
119
|
type: :runtime
|
136
120
|
prerelease: false
|
137
121
|
version_requirements: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
122
|
requirements:
|
140
123
|
- - ! '>='
|
141
124
|
- !ruby/object:Gem::Version
|
@@ -205,12 +188,15 @@ files:
|
|
205
188
|
- lib/gauntlt/attack_adapters/nmap.rb
|
206
189
|
- lib/gauntlt/attack_adapters/sqlmap.rb
|
207
190
|
- lib/gauntlt/attack_adapters/sslyze.rb
|
191
|
+
- lib/gauntlt/attack_adapters/support/attack_step_helper.rb
|
208
192
|
- lib/gauntlt/attack_adapters/support/cli_helper.rb
|
209
193
|
- lib/gauntlt/attack_adapters/support/cookie_helper.rb
|
210
194
|
- lib/gauntlt/attack_adapters/support/nmap_helper.rb
|
211
195
|
- lib/gauntlt/attack_adapters/support/profile_helper.rb
|
212
196
|
- lib/gauntlt/attack_adapters/support/python_script_helper.rb
|
213
197
|
- lib/gauntlt/attack_adapters/support/xml_helper.rb
|
198
|
+
- lib/gauntlt/attack_aliases/dirb.json
|
199
|
+
- lib/gauntlt/attack_aliases/nmap.json
|
214
200
|
- lib/gauntlt/runtime.rb
|
215
201
|
- lib/gauntlt/stepdef.rb
|
216
202
|
- lib/gauntlt/version.rb
|
@@ -221,31 +207,29 @@ files:
|
|
221
207
|
- test/gauntlt_test.rb
|
222
208
|
- test/test_helper.rb
|
223
209
|
- test/tmf.rb
|
224
|
-
- vendor/dirb203.tar.gz
|
225
210
|
- vendor/sslyze_output.README
|
226
211
|
homepage: https://github.com/gauntlt/gauntlt
|
227
212
|
licenses: []
|
213
|
+
metadata: {}
|
228
214
|
post_install_message:
|
229
215
|
rdoc_options: []
|
230
216
|
require_paths:
|
231
217
|
- lib
|
232
218
|
required_ruby_version: !ruby/object:Gem::Requirement
|
233
|
-
none: false
|
234
219
|
requirements:
|
235
220
|
- - ! '>='
|
236
221
|
- !ruby/object:Gem::Version
|
237
222
|
version: '0'
|
238
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
|
-
none: false
|
240
224
|
requirements:
|
241
225
|
- - ! '>='
|
242
226
|
- !ruby/object:Gem::Version
|
243
227
|
version: '0'
|
244
228
|
requirements: []
|
245
229
|
rubyforge_project:
|
246
|
-
rubygems_version:
|
230
|
+
rubygems_version: 2.0.5
|
247
231
|
signing_key:
|
248
|
-
specification_version:
|
232
|
+
specification_version: 4
|
249
233
|
summary: behaviour-driven security using cucumber
|
250
234
|
test_files:
|
251
235
|
- features/attack.feature
|
data/vendor/dirb203.tar.gz
DELETED
Binary file
|