ronin-scanners 0.1.0
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.
- data/History.txt +6 -0
- data/Manifest.txt +11 -0
- data/README.txt +74 -0
- data/Rakefile +19 -0
- data/lib/ronin/scanners.rb +24 -0
- data/lib/ronin/scanners/nmap.rb +70 -0
- data/lib/ronin/scanners/nmap_task.rb +290 -0
- data/lib/ronin/scanners/version.rb +28 -0
- data/spec/scanners_spec.rb +11 -0
- data/spec/spec_helper.rb +5 -0
- data/tasks/spec.rb +9 -0
- metadata +106 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
data/README.txt
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
= Ronin Scanners
|
2
|
+
|
3
|
+
* http://ronin.rubyforge.org/scanners/
|
4
|
+
* http://github.com/postmodern/ronin-scanners
|
5
|
+
* irc.freenode.net ##ronin
|
6
|
+
* Postmodern (postmodern.mod3 at gmail.com)
|
7
|
+
|
8
|
+
== DESCRIPTION:
|
9
|
+
|
10
|
+
Ronin Scanners is a Ruby library for Ronin that provides Ruby interfaces to
|
11
|
+
various third-party security scanners.
|
12
|
+
|
13
|
+
Ronin is a Ruby platform designed for information security and data
|
14
|
+
exploration tasks. Ronin allows for the rapid development and distribution
|
15
|
+
of code over many of the common Source-Code-Management (SCM) systems.
|
16
|
+
|
17
|
+
=== Free
|
18
|
+
|
19
|
+
All source code within Ronin is licensed under the GPL-2, therefore no user
|
20
|
+
will ever have to pay for Ronin or updates to Ronin. Not only is the
|
21
|
+
source code free, the Ronin project will not sell enterprise grade security
|
22
|
+
snake-oil solutions, give private training classes or later turn Ronin into
|
23
|
+
commercial software.
|
24
|
+
|
25
|
+
=== Modular
|
26
|
+
|
27
|
+
Ronin was not designed as one monolithic framework but instead as a
|
28
|
+
collection of libraries which can be individually installed. This allows
|
29
|
+
users to pick and choose what functionality they want in Ronin.
|
30
|
+
|
31
|
+
=== Decentralized
|
32
|
+
|
33
|
+
Ronin does not have a central repository of exploits and payloads which
|
34
|
+
all developers contribute to. Instead Ronin has Overlays, repositories of
|
35
|
+
code that can be hosted on any CVS/SVN/Git/Rsync server. Users can then use
|
36
|
+
Ronin to quickly install or update Overlays. This allows developers and
|
37
|
+
users to form their own communities, independent of the main developers
|
38
|
+
of Ronin.
|
39
|
+
|
40
|
+
== FEATURES/PROBLEMS:
|
41
|
+
|
42
|
+
* Provides a Rubyful interface to Nmap.
|
43
|
+
* Allows for recording of Nmap scan results using ScanDB.
|
44
|
+
|
45
|
+
== REQUIREMENTS:
|
46
|
+
|
47
|
+
* Scandb
|
48
|
+
* RProgram >= 0.1.4
|
49
|
+
* Ronin >= 0.1.2
|
50
|
+
|
51
|
+
== INSTALL:
|
52
|
+
|
53
|
+
$ sudo gem install ronin-scanners
|
54
|
+
|
55
|
+
== LICENSE:
|
56
|
+
|
57
|
+
Ronin Scanners - A Ruby library for Ronin that provides Ruby interfaces to
|
58
|
+
various third-party security scanners.
|
59
|
+
|
60
|
+
Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
61
|
+
|
62
|
+
This program is free software; you can redistribute it and/or modify
|
63
|
+
it under the terms of the GNU General Public License as published by
|
64
|
+
the Free Software Foundation; either version 2 of the License, or
|
65
|
+
(at your option) any later version.
|
66
|
+
|
67
|
+
This program is distributed in the hope that it will be useful,
|
68
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
69
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
70
|
+
GNU General Public License for more details.
|
71
|
+
|
72
|
+
You should have received a copy of the GNU General Public License
|
73
|
+
along with this program; if not, write to the Free Software
|
74
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
data/Rakefile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'hoe'
|
5
|
+
require './tasks/spec.rb'
|
6
|
+
require './lib/ronin/scanners/version.rb'
|
7
|
+
|
8
|
+
Hoe.new('ronin-scanners', Ronin::Scanners::VERSION) do |p|
|
9
|
+
p.rubyforge_name = 'ronin'
|
10
|
+
p.developer('Postmodern', 'postmodern.mod3@gmail.com')
|
11
|
+
p.remote_rdoc_dir = 'docs/ronin-scanners'
|
12
|
+
p.extra_deps = [
|
13
|
+
'scandb',
|
14
|
+
['rprogram', '>=0.1.4'],
|
15
|
+
['ronin', '>=0.1.2']
|
16
|
+
]
|
17
|
+
end
|
18
|
+
|
19
|
+
# vim: syntax=Ruby
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Scanners - A Ruby library for Ronin that provides Ruby interfaces to
|
4
|
+
# various third-party security scanners.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/scanners/version'
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Scanners - A Ruby library for Ronin that provides Ruby interfaces to
|
4
|
+
# various third-party security scanners.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'ronin/scanners/nmap_task'
|
25
|
+
|
26
|
+
require 'rprogram/program'
|
27
|
+
require 'scandb'
|
28
|
+
require 'tempfile'
|
29
|
+
|
30
|
+
module Ronin
|
31
|
+
module Scanners
|
32
|
+
class Nmap < RProgram::Program
|
33
|
+
|
34
|
+
name_program 'nmap'
|
35
|
+
|
36
|
+
#
|
37
|
+
# Perform an Nmap scan using the given _options_ and _block_.
|
38
|
+
#
|
39
|
+
def self.scan(options={},&block)
|
40
|
+
self.find.scan(options,&block)
|
41
|
+
end
|
42
|
+
|
43
|
+
#
|
44
|
+
# Perform an Nmap scan using the given _options_ and _block_.
|
45
|
+
#
|
46
|
+
def scan(options={},&block)
|
47
|
+
run_task(NmapTask.new(options,&block))
|
48
|
+
end
|
49
|
+
|
50
|
+
#
|
51
|
+
# Perform an Nmap scan using the given _options_ and save
|
52
|
+
# the resulting scan information into ScanDB. If a _block_ is given,
|
53
|
+
# it will be passed each ScanDB::Host object from the scan.
|
54
|
+
#
|
55
|
+
def import_scan(options={},&block)
|
56
|
+
file = Tempfile.new('nmap',Config::TMP_DIR)
|
57
|
+
|
58
|
+
# perform the scan
|
59
|
+
scan(options.merge(:xml => file))
|
60
|
+
|
61
|
+
# import the xml file into ScanDB
|
62
|
+
hosts = ScanDB::Nmap.import_xml(file,&block)
|
63
|
+
|
64
|
+
file.delete
|
65
|
+
return hosts
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,290 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Scanners - A Ruby library for Ronin that provides Ruby interfaces to
|
4
|
+
# various third-party security scanners.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
require 'rprogram/task'
|
25
|
+
|
26
|
+
module Ronin
|
27
|
+
module Scanners
|
28
|
+
#
|
29
|
+
# == Nmap options:
|
30
|
+
#
|
31
|
+
# === Target Specifications:
|
32
|
+
#
|
33
|
+
# <tt>-iL</tt>:: <tt>nmap.target_file</tt>
|
34
|
+
# <tt>-iR</tt>:: <tt>nmap.random_targets</tt>
|
35
|
+
# <tt>--exclude</tt>:: <tt>nmap.exclude</tt>
|
36
|
+
# <tt>--excludefile</tt>:: <tt>nmap.exclude_file</tt>
|
37
|
+
#
|
38
|
+
# === Host Discovery:
|
39
|
+
#
|
40
|
+
# <tt>-sL</tt>:: <tt>nmap.list</tt>
|
41
|
+
# <tt>-sP</tt>:: <tt>nmap.ping</tt>
|
42
|
+
# <tt>-PN</tt>:: <tt>nmap.skip_discovery</tt>
|
43
|
+
# <tt>-PS</tt>:: <tt>nmap.syn_discovery</tt>
|
44
|
+
# <tt>-PA</tt>:: <tt>nmap.ack_discovery</tt>
|
45
|
+
# <tt>-PU</tt>:: <tt>nmap.udp_discovery</tt>
|
46
|
+
# <tt>-PE</tt>:: <tt>nmap.icmp_echo_discovery</tt>
|
47
|
+
# <tt>-PP</tt>:: <tt>nmap.icmp_timestamp_discovery</tt>
|
48
|
+
# <tt>-PM</tt>:: <tt>nmap.icmp_netmask_discovery</tt>
|
49
|
+
# <tt>-PO</tt>:: <tt>nmap.ip_ping</tt>
|
50
|
+
# <tt>-n</tt>:: <tt>nmap.disable_dns</tt>
|
51
|
+
# <tt>-R</tt>:: <tt>nmap.enable_dns</tt>
|
52
|
+
# <tt>--dns-servers</tt>:: <tt>nmap.dns_servers</tt>
|
53
|
+
# <tt>--systems-dns</tt>:: <tt>nmap.systems_dns</tt>
|
54
|
+
#
|
55
|
+
# === Scan Techniques:
|
56
|
+
#
|
57
|
+
# <tt>-sS</tt>:: <tt>nmap.syn_scan</tt>
|
58
|
+
# <tt>-sT</tt>:: <tt>nmap.connect_scan</tt>
|
59
|
+
# <tt>-sA</tt>:: <tt>nmap.ack_scan</tt>
|
60
|
+
# <tt>-sW</tt>:: <tt>nmap.window_scan</tt>
|
61
|
+
# <tt>-sM</tt>:: <tt>nmap.maimon_scan</tt>
|
62
|
+
# <tt>-sU</tt>:: <tt>nmap.udp_scan</tt>
|
63
|
+
# <tt>-sN</tt>:: <tt>nmap.null_scan</tt>
|
64
|
+
# <tt>-sF</tt>:: <tt>nmap.fin_scan</tt>
|
65
|
+
# <tt>-sX</tt>:: <tt>nmap.xmas_scan</tt>
|
66
|
+
# <tt>--scanflags</tt>:: <tt>nmap.tcp_scan_flags</tt>
|
67
|
+
# <tt>-sI</tt>:: <tt>nmap.idle_scan</tt>
|
68
|
+
# <tt>-s0</tt>:: <tt>nmap.ip_scan</tt>
|
69
|
+
# <tt>-b</tt>:: <tt>nmap.ftp_bounce_scan</tt>
|
70
|
+
# <tt>--traceroute</tt>:: <tt>nmap.traceroute</tt>
|
71
|
+
# <tt>--reason</tt>:: <tt>nmap.show_reason</tt>
|
72
|
+
#
|
73
|
+
# === Port Specification and Scan Order:
|
74
|
+
#
|
75
|
+
# <tt>-p</tt>:: <tt>nmap.ports</tt>
|
76
|
+
# <tt>-F</tt>:: <tt>nmap.fast</tt>
|
77
|
+
# <tt>-r</tt>:: <tt>nmap.consecutively</tt>
|
78
|
+
# <tt>--top-ports</tt>:: <tt>nmap.top_ports</tt>
|
79
|
+
# <tt>--port-ratio</tt>:: <tt>nmap.port_ratio</tt>
|
80
|
+
#
|
81
|
+
# === Service/Version Detection:
|
82
|
+
#
|
83
|
+
# <tt>-sV</tt>:: <tt>nmap.service_scan</tt>
|
84
|
+
# <tt>--version-intensity</tt>:: <tt>nmap.version_intensity</tt>
|
85
|
+
# <tt>--version-light</tt>:: <tt>nmap.version_light</tt>
|
86
|
+
# <tt>--version-all</tt>:: <tt>nmap.version_all</tt>
|
87
|
+
# <tt>--version-trace</tt>:: <tt>nmap.version_trace</tt>
|
88
|
+
#
|
89
|
+
# === Script Scan:
|
90
|
+
#
|
91
|
+
# <tt>-sC</tt>:: <tt>nmap.default_script</tt>
|
92
|
+
# <tt>--script</tt>:: <tt>nmap.script</tt>
|
93
|
+
# <tt>--script-args</tt>:: <tt>nmap.script_params</tt>
|
94
|
+
# <tt>--script-trace</tt>:: <tt>nmap.script_trace</tt>
|
95
|
+
# <tt>--script-updatedb</tt>:: <tt>nmap.update_scriptdb</tt>
|
96
|
+
#
|
97
|
+
# === OS Detection:
|
98
|
+
#
|
99
|
+
# <tt>-O</tt>:: <tt>nmap.os_fingerprint</tt>
|
100
|
+
# <tt>--osscan_limit</tt>:: <tt>nmap.limit_os_scan</tt>
|
101
|
+
# <tt>--osscan_guess</tt>:: <tt>nmap.max_os_scan</tt>
|
102
|
+
#
|
103
|
+
# === Timing and Performance:
|
104
|
+
#
|
105
|
+
# <tt>--min-hostgroup</tt>:: <tt>nmap.min_host_group</tt>
|
106
|
+
# <tt>--max-hostgroup</tt>:: <tt>nmap.max_host_group</tt>
|
107
|
+
# <tt>--min-parallelism</tt>:: <tt>nmap.min_parallelism</tt>
|
108
|
+
# <tt>--max-parallelism</tt>:: <tt>nmap.max_parallelism</tt>
|
109
|
+
# <tt>--min-rtt-timeout</tt>:: <tt>nmap.min_rtt_timeout</tt>
|
110
|
+
# <tt>--max-rtt-timeout</tt>:: <tt>nmap.max_rtt_timeout</tt>
|
111
|
+
# <tt>--max-retries</tt>:: <tt>nmap.max_retries</tt>
|
112
|
+
# <tt>--host-timeout</tt>:: <tt>nmap.host_timeout</tt>
|
113
|
+
# <tt>--scan-delay</tt>:: <tt>nmap.scan_delay</tt>
|
114
|
+
# <tt>--max-scan-delay</tt>:: <tt>nmap.max_scan_delay</tt>
|
115
|
+
# <tt>--min-rate</tt>:: <tt>nmap.min_rate</tt>
|
116
|
+
# <tt>--max-rate</tt>:: <tt>nmap.max_rate</tt>
|
117
|
+
#
|
118
|
+
# === Firewall/IDS Evasion and Spoofing:
|
119
|
+
#
|
120
|
+
# <tt>-f</tt>:: <tt>nmap.packet_fragments</tt>
|
121
|
+
# <tt>--mtu</tt>:: <tt>nmap.mtu</tt>
|
122
|
+
# <tt>-D</tt>:: <tt>nmap.decoys</tt>
|
123
|
+
# <tt>-S</tt>:: <tt>nmap.spoof</tt>
|
124
|
+
# <tt>-e</tt>:: <tt>nmap.interface</tt>
|
125
|
+
# <tt>-g</tt>:: <tt>nmap.source_port</tt>
|
126
|
+
# <tt>--data-length</tt>:: <tt>nmap.data_length</tt>
|
127
|
+
# <tt>--ip-options</tt>:: <tt>nmap.ip_options</tt>
|
128
|
+
# <tt>--ttl</tt>:: <tt>nmap.ttl</tt>
|
129
|
+
# <tt>--spoof-mac</tt>:: <tt>nmap.spoof_mac</tt>
|
130
|
+
# <tt>--badsum</tt>:: <tt>nmap.bad_checksum</tt>
|
131
|
+
#
|
132
|
+
# === Output:
|
133
|
+
#
|
134
|
+
# <tt>-oN</tt>:: <tt>nmap.save</tt>
|
135
|
+
# <tt>-oX</tt>:: <tt>nmap.xml</tt>
|
136
|
+
# <tt>-oS</tt>:: <tt>nmap.skiddie</tt>
|
137
|
+
# <tt>-oG</tt>:: <tt>nmap.grepable</tt>
|
138
|
+
# <tt>-v</tt>:: <tt>nmap.verbose</tt>
|
139
|
+
# <tt>--open</tt>:: <tt>nmap.show_open_ports</tt>
|
140
|
+
# <tt>--packet-trace</tt>:: <tt>nmap.show_packets</tt>
|
141
|
+
# <tt>--iflist</tt>:: <tt>nmap.show_interfaces</tt>
|
142
|
+
# <tt>--log-errors</tt>:: <tt>nmap.show_log_errors</tt>
|
143
|
+
# <tt>--append-output</tt>:: <tt>nmap.append</tt>
|
144
|
+
# <tt>--resume</tt>:: <tt>nmap.resume</tt>
|
145
|
+
# <tt>--stylesheet</tt>:: <tt>nmap.stylesheet</tt>
|
146
|
+
# <tt>--webxml</tt>:: <tt>nmap.nmap_stylesheet</tt>
|
147
|
+
# <tt>--no-stylesheet</tt>:: <tt>nmap.disable_stylesheet</tt>
|
148
|
+
#
|
149
|
+
# === Misc:
|
150
|
+
#
|
151
|
+
# <tt>-6</tt>:: <tt>nmap.ipv6</tt>
|
152
|
+
# <tt>-A</tt>:: <tt>nmap.all</tt>
|
153
|
+
# <tt>--datadir</tt>:: <tt>nmap.nmap_datadir</tt>
|
154
|
+
# <tt>--send-eth</tt>:: <tt>nmap.raw_ethernet</tt>
|
155
|
+
# <tt>--send-ip</tt>:: <tt>nmap.raw_ip</tt>
|
156
|
+
# <tt>--privledged</tt>:: <tt>nmap.privledged</tt>
|
157
|
+
# <tt>--unprivledged</tt>:: <tt>nmap.unprivledged</tt>
|
158
|
+
# <tt>-V</tt>:: <tt>nmap.version</tt>
|
159
|
+
# <tt>-h</tt>:: <tt>nmap.help</tt>
|
160
|
+
#
|
161
|
+
# <tt>{target specification}</tt>:: <tt>nmap.targets</tt>
|
162
|
+
#
|
163
|
+
class NmapTask < RProgram::Task
|
164
|
+
|
165
|
+
# TARGET SPECIFICATIONS:
|
166
|
+
short_option :flag => '-iL', :name => :target_file
|
167
|
+
short_option :flag => '-iR', :name => :random_targets
|
168
|
+
long_option :flag => '--exclude', :name => :exclude, :separator => ','
|
169
|
+
long_option :flag => '--excludefile', :name => :exclude_file
|
170
|
+
|
171
|
+
# HOST DISCOVERY:
|
172
|
+
short_option :flag => '-sL', :name => :list
|
173
|
+
short_option :flag => '-sP', :name => :ping
|
174
|
+
short_option :flag => '-PN', :name => :skip_discovery
|
175
|
+
short_option :flag => '-PS', :name => :syn_discovery
|
176
|
+
short_option :flag => '-PA', :name => :ack_discovery
|
177
|
+
short_option :flag => '-PU', :name => :udp_discovery
|
178
|
+
short_option :flag => '-PE', :name => :icmp_echo_discovery
|
179
|
+
short_option :flag => '-PP', :name => :icmp_timestamp_discovery
|
180
|
+
short_option :flag => '-PM', :name => :icmp_netmask_discovery
|
181
|
+
short_option :flag => '-PO', :name => :ip_ping
|
182
|
+
short_option :flag => '-n', :name => :disable_dns
|
183
|
+
short_option :flag => '-R', :name => :enable_dns
|
184
|
+
long_option :flag => '--dns-servers', :separator => ','
|
185
|
+
long_option :flag => '--system-dns'
|
186
|
+
|
187
|
+
# SCAN TECHNIQUES:
|
188
|
+
short_option :flag => '-sS', :name => :syn_scan
|
189
|
+
short_option :flag => '-sT', :name => :connect_scan
|
190
|
+
short_option :flag => '-sA', :name => :ack_scan
|
191
|
+
short_option :flag => '-sW', :name => :window_scan
|
192
|
+
short_option :flag => '-sM', :name => :maimon_scan
|
193
|
+
short_option :flag => '-sU', :name => :udp_scan
|
194
|
+
short_option :flag => '-sN', :name => :null_scan
|
195
|
+
short_option :flag => '-sF', :name => :fin_scan
|
196
|
+
short_option :flag => '-sX', :name => :xmas_scan
|
197
|
+
long_option :flag => '--scanflags', :name => :tcp_scan_flags
|
198
|
+
short_option :flag => '-sI', :name => :idle_scan
|
199
|
+
short_option :flag => '-s0', :name => :ip_scan
|
200
|
+
short_option :flag => '-b', :name => :ftp_bounce_scan
|
201
|
+
long_option :flag => '--traceroute', :name => :traceroute
|
202
|
+
long_option :flag => '--reason', :name => :show_reason
|
203
|
+
|
204
|
+
# PORT SPECIFICATION AND SCAN ORDER:
|
205
|
+
short_option :flag => '-p', :name => :ports
|
206
|
+
short_option :flag => '-F', :name => :fast
|
207
|
+
short_option :flag => '-r', :name => :consecutively
|
208
|
+
long_option :flag => '--top-ports'
|
209
|
+
long_option :flag => '--port-ratio'
|
210
|
+
|
211
|
+
# SERVICE/VERSION DETECTION:
|
212
|
+
short_option :flag => '-sV', :name => :service_scan
|
213
|
+
long_option :flag => '--version-intensity'
|
214
|
+
long_option :flag => '--version-light'
|
215
|
+
long_option :flag => '--version-all'
|
216
|
+
long_option :flag => '--version-trace'
|
217
|
+
|
218
|
+
# SCRIPT SCAN:
|
219
|
+
short_option :flag => '-sC', :name => :default_script
|
220
|
+
long_option :flag => '--script'
|
221
|
+
long_option :flag => '--script-args',
|
222
|
+
:name => :script_params,
|
223
|
+
:separator => ','
|
224
|
+
long_option :flag => '--script-trace'
|
225
|
+
long_option :flag => '--script-updatedb', :name => :update_scriptdb
|
226
|
+
|
227
|
+
# OS DETECTION:
|
228
|
+
short_option :flag => '-O', :name => :os_fingerprint
|
229
|
+
long_option :flag => '--osscan_limit', :name => :limit_os_scan
|
230
|
+
long_option :flag => '--osscan_guess', :name => :max_os_scan
|
231
|
+
|
232
|
+
# TIMING AND PERFORMANCE:
|
233
|
+
long_option :flag => '--min-hostgroup', :name => :min_host_group
|
234
|
+
long_option :flag => '--max-hostgroup', :name => :max_host_group
|
235
|
+
long_option :flag => '--min-parallelism'
|
236
|
+
long_option :flag => '--max-parallelism'
|
237
|
+
long_option :flag => '--min-rtt-timeout'
|
238
|
+
long_option :flag => '--max-rtt-timeout'
|
239
|
+
long_option :flag => '--max-retries'
|
240
|
+
long_option :flag => '--host-timeout'
|
241
|
+
long_option :flag => '--scan-delay'
|
242
|
+
long_option :flag => '--max-scan-delay'
|
243
|
+
long_option :flag => '--min-rate'
|
244
|
+
long_option :flag => '--max-rate'
|
245
|
+
|
246
|
+
# FIREWALL/IDS EVASION AND SPOOFING:
|
247
|
+
short_option :flag => '-f', :name => :packet_fragments
|
248
|
+
long_option :flag => '--mtu'
|
249
|
+
short_option :flag => '-D', :name => :decoys
|
250
|
+
short_option :flag => '-S', :name => :spoof
|
251
|
+
short_option :flag => '-e', :name => :interface
|
252
|
+
short_option :flag => '-g', :name => :source_port
|
253
|
+
long_option :flag => '--data-length'
|
254
|
+
long_option :flag => '--ip-options'
|
255
|
+
long_option :flag => '--ttl'
|
256
|
+
long_option :flag => '--spoof-mac'
|
257
|
+
long_option :flag => '--badsum', :name => :bad_checksum
|
258
|
+
|
259
|
+
# OUTPUT:
|
260
|
+
short_option :flag => '-oN', :name => :save
|
261
|
+
short_option :flag => '-oX', :name => :xml
|
262
|
+
short_option :flag => '-oS', :name => :skiddie
|
263
|
+
short_option :flag => '-oG', :name => :grepable
|
264
|
+
short_option :flag => '-v', :name => :verbose
|
265
|
+
long_option :flag => '--open', :name => :show_open_ports
|
266
|
+
long_option :flag => '--packet-trace', :name => :show_packets
|
267
|
+
long_option :flag => '--iflist', :name => :show_interfaces
|
268
|
+
long_option :flag => '--log-errors', :name => :show_log_errors
|
269
|
+
long_option :flag => '--append-output', :name => :append
|
270
|
+
long_option :flag => '--resume'
|
271
|
+
long_option :flag => '--stylesheet'
|
272
|
+
long_option :flag => '--webxml', :name => :nmap_stylesheet
|
273
|
+
long_option :flag => '--no-stylesheet', :name => :disable_stylesheet
|
274
|
+
|
275
|
+
# MISC:
|
276
|
+
short_option :flag => '-6', :name => :ipv6
|
277
|
+
short_option :flag => '-A', :name => :all
|
278
|
+
long_option :flag => '--datadir', :name => :nmap_datadir
|
279
|
+
long_option :flag => '--send-eth', :name => :raw_ethernet
|
280
|
+
long_option :flag => '--send-ip', :name => :raw_ip
|
281
|
+
long_option :flag => '--privledged'
|
282
|
+
long_option :flag => '--unprivleged'
|
283
|
+
short_option :flag => '-V', :name => :version
|
284
|
+
short_option :flag => '-h', :name => :help
|
285
|
+
|
286
|
+
non_option :tailing => true, :name => :targets
|
287
|
+
|
288
|
+
end
|
289
|
+
end
|
290
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#
|
2
|
+
#--
|
3
|
+
# Ronin Scanners - A Ruby library for Ronin that provides Ruby interfaces to
|
4
|
+
# various third-party security scanners.
|
5
|
+
#
|
6
|
+
# Copyright (c) 2008-2009 Hal Brodigan (postmodern.mod3 at gmail.com)
|
7
|
+
#
|
8
|
+
# This program is free software; you can redistribute it and/or modify
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
10
|
+
# the Free Software Foundation; either version 2 of the License, or
|
11
|
+
# (at your option) any later version.
|
12
|
+
#
|
13
|
+
# This program is distributed in the hope that it will be useful,
|
14
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
15
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
16
|
+
# GNU General Public License for more details.
|
17
|
+
#
|
18
|
+
# You should have received a copy of the GNU General Public License
|
19
|
+
# along with this program; if not, write to the Free Software
|
20
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
21
|
+
#++
|
22
|
+
#
|
23
|
+
|
24
|
+
module Ronin
|
25
|
+
module Scanners
|
26
|
+
VERSION = '0.1.0'
|
27
|
+
end
|
28
|
+
end
|
data/spec/spec_helper.rb
ADDED
data/tasks/spec.rb
ADDED
metadata
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ronin-scanners
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Postmodern
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-01-08 00:00:00 -08:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: scandb
|
17
|
+
type: :runtime
|
18
|
+
version_requirement:
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: "0"
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rprogram
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.1.4
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: ronin
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.1.2
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: hoe
|
47
|
+
type: :development
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.8.2
|
54
|
+
version:
|
55
|
+
description: Ronin Scanners is a Ruby library for Ronin that provides Ruby interfaces to various third-party security scanners. Ronin is a Ruby platform designed for information security and data exploration tasks. Ronin allows for the rapid development and distribution of code over many of the common Source-Code-Management (SCM) systems.
|
56
|
+
email:
|
57
|
+
- postmodern.mod3@gmail.com
|
58
|
+
executables: []
|
59
|
+
|
60
|
+
extensions: []
|
61
|
+
|
62
|
+
extra_rdoc_files:
|
63
|
+
- History.txt
|
64
|
+
- Manifest.txt
|
65
|
+
- README.txt
|
66
|
+
files:
|
67
|
+
- History.txt
|
68
|
+
- Manifest.txt
|
69
|
+
- README.txt
|
70
|
+
- Rakefile
|
71
|
+
- lib/ronin/scanners.rb
|
72
|
+
- lib/ronin/scanners/nmap.rb
|
73
|
+
- lib/ronin/scanners/nmap_task.rb
|
74
|
+
- lib/ronin/scanners/version.rb
|
75
|
+
- tasks/spec.rb
|
76
|
+
- spec/spec_helper.rb
|
77
|
+
- spec/scanners_spec.rb
|
78
|
+
has_rdoc: true
|
79
|
+
homepage: http://ronin.rubyforge.org/scanners/
|
80
|
+
post_install_message:
|
81
|
+
rdoc_options:
|
82
|
+
- --main
|
83
|
+
- README.txt
|
84
|
+
require_paths:
|
85
|
+
- lib
|
86
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: "0"
|
91
|
+
version:
|
92
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: "0"
|
97
|
+
version:
|
98
|
+
requirements: []
|
99
|
+
|
100
|
+
rubyforge_project: ronin
|
101
|
+
rubygems_version: 1.3.1
|
102
|
+
signing_key:
|
103
|
+
specification_version: 2
|
104
|
+
summary: Ronin Scanners is a Ruby library for Ronin that provides Ruby interfaces to various third-party security scanners
|
105
|
+
test_files: []
|
106
|
+
|