ronin-scanners 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,6 @@
1
+ === 0.1.0 / 2009-01-08
2
+
3
+ * Initial release.
4
+ * Provides a Rubyful interface to Nmap.
5
+ * Allows for the recording of Nmap scan results using ScanDB.
6
+
data/Manifest.txt ADDED
@@ -0,0 +1,11 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ lib/ronin/scanners.rb
6
+ lib/ronin/scanners/nmap.rb
7
+ lib/ronin/scanners/nmap_task.rb
8
+ lib/ronin/scanners/version.rb
9
+ tasks/spec.rb
10
+ spec/spec_helper.rb
11
+ spec/scanners_spec.rb
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
@@ -0,0 +1,11 @@
1
+ require 'ronin/scanners/version'
2
+
3
+ require 'spec_helper'
4
+
5
+ describe Ronin do
6
+ it "should have a version" do
7
+ @version = Ronin::Scanners.const_get('VERSION')
8
+ @version.should_not be_nil
9
+ @version.should_not be_empty
10
+ end
11
+ end
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ gem 'rspec', '>=1.1.3'
3
+ require 'spec'
4
+
5
+ include Ronin
data/tasks/spec.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'spec/rake/spectask'
2
+
3
+ desc "Run all specifications"
4
+ Spec::Rake::SpecTask.new(:spec) do |t|
5
+ t.libs += ['lib', 'spec']
6
+ t.spec_opts = ['--colour', '--format', 'specdoc']
7
+ end
8
+
9
+ task :default => :spec
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
+