ruby-nmap 0.4.1 → 0.5.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/.gemtest +0 -0
- data/ChangeLog.md +6 -0
- data/README.md +2 -2
- data/Rakefile +3 -2
- data/gemspec.yml +4 -4
- data/lib/nmap/host.rb +54 -0
- data/lib/nmap/ip_id_sequence.rb +19 -0
- data/lib/nmap/os.rb +2 -2
- data/lib/nmap/program.rb +15 -4
- data/lib/nmap/sequence.rb +57 -0
- data/lib/nmap/task.rb +2 -2
- data/lib/nmap/tcp_sequence.rb +41 -0
- data/lib/nmap/tcp_ts_sequence.rb +19 -0
- data/lib/nmap/version.rb +1 -1
- data/lib/nmap/xml.rb +2 -2
- data/ruby-nmap.gemspec +7 -2
- data/spec/sequence_spec.rb +75 -0
- data/spec/spec_helper.rb +2 -2
- metadata +18 -40
data/.gemtest
ADDED
File without changes
|
data/ChangeLog.md
CHANGED
data/README.md
CHANGED
@@ -74,8 +74,8 @@ Print NSE script output from an XML scan file:
|
|
74
74
|
## Requirements
|
75
75
|
|
76
76
|
* [nmap](http://www.insecure.org/) >= 5.00
|
77
|
-
* [nokogiri](http://nokogiri.rubyforge.org/)
|
78
|
-
* [rprogram](http://github.com/postmodern/rprogram) ~> 0.
|
77
|
+
* [nokogiri](http://nokogiri.rubyforge.org/) ~> 1.3
|
78
|
+
* [rprogram](http://github.com/postmodern/rprogram) ~> 0.3
|
79
79
|
|
80
80
|
## Install
|
81
81
|
|
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
|
4
4
|
begin
|
5
|
-
gem 'ore-tasks', '~> 0.
|
5
|
+
gem 'ore-tasks', '~> 0.4'
|
6
6
|
require 'ore/tasks'
|
7
7
|
|
8
8
|
Ore::Tasks.new
|
@@ -12,7 +12,7 @@ rescue LoadError => e
|
|
12
12
|
end
|
13
13
|
|
14
14
|
begin
|
15
|
-
gem 'rspec', '~> 2.
|
15
|
+
gem 'rspec', '~> 2.4'
|
16
16
|
require 'rspec/core/rake_task'
|
17
17
|
|
18
18
|
RSpec::Core::RakeTask.new
|
@@ -22,6 +22,7 @@ rescue LoadError => e
|
|
22
22
|
end
|
23
23
|
end
|
24
24
|
task :default => :spec
|
25
|
+
task :test => :spec
|
25
26
|
|
26
27
|
begin
|
27
28
|
gem 'yard', '~> 0.6.0'
|
data/gemspec.yml
CHANGED
@@ -13,10 +13,10 @@ has_yard: true
|
|
13
13
|
requirements: nmap >= 5.00
|
14
14
|
|
15
15
|
dependencies:
|
16
|
-
nokogiri:
|
17
|
-
rprogram: ~> 0.
|
16
|
+
nokogiri: ~> 1.3
|
17
|
+
rprogram: ~> 0.3
|
18
18
|
|
19
19
|
development_dependencies:
|
20
|
-
ore-tasks: ~> 0.
|
21
|
-
rspec: ~> 2.
|
20
|
+
ore-tasks: ~> 0.4
|
21
|
+
rspec: ~> 2.4
|
22
22
|
yard: ~> 0.6.0
|
data/lib/nmap/host.rb
CHANGED
@@ -2,6 +2,9 @@ require 'nmap/status'
|
|
2
2
|
require 'nmap/address'
|
3
3
|
require 'nmap/os'
|
4
4
|
require 'nmap/port'
|
5
|
+
require 'nmap/ip_id_sequence'
|
6
|
+
require 'nmap/tcp_sequence'
|
7
|
+
require 'nmap/tcp_ts_sequence'
|
5
8
|
|
6
9
|
require 'nokogiri'
|
7
10
|
|
@@ -229,6 +232,57 @@ module Nmap
|
|
229
232
|
end
|
230
233
|
end
|
231
234
|
|
235
|
+
# Parses the Tcp Sequence number analysis of the host.
|
236
|
+
#
|
237
|
+
# @yield [tcpsequence]
|
238
|
+
# If a block is given, it will be passed the resulting object
|
239
|
+
#
|
240
|
+
# @yieldparam [TcpSequence] tcpsequence
|
241
|
+
# Tcp Sequence number analysis.
|
242
|
+
#
|
243
|
+
# @return [TcpSequence]
|
244
|
+
# The parsed object.
|
245
|
+
#
|
246
|
+
def tcpsequence(&block)
|
247
|
+
if (seq = @node.at('tcpsequence'))
|
248
|
+
@tcpsequence = TcpSequence.new(seq,&block)
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
# Parses the IPID sequence number analysis of the host.
|
253
|
+
#
|
254
|
+
# @yield [ipidsequence]
|
255
|
+
# If a block is given, it will be passed the resulting object
|
256
|
+
#
|
257
|
+
# @yieldparam [IpidSequence] ipidsequence
|
258
|
+
# IPID Sequence number analysis.
|
259
|
+
#
|
260
|
+
# @return [IpidSequence]
|
261
|
+
# The parsed object.
|
262
|
+
#
|
263
|
+
def ipidsequence(&block)
|
264
|
+
if (seq = @node.at('ipidsequence'))
|
265
|
+
@ipidsequence = IpidSequence.new(seq,&block)
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
# Parses the TCP Timestamp sequence number analysis of the host.
|
270
|
+
#
|
271
|
+
# @yield [tcptssequence]
|
272
|
+
# If a block is given, it will be passed the resulting object
|
273
|
+
#
|
274
|
+
# @yieldparam [TcpTsSequence] tcptssequence
|
275
|
+
# TCP Timestamp Sequence number analysis.
|
276
|
+
#
|
277
|
+
# @return [TcpTsSequence]
|
278
|
+
# The parsed object.
|
279
|
+
#
|
280
|
+
def tcptssequence(&block)
|
281
|
+
if (seq = @node.at('tcptssequence'))
|
282
|
+
@tcptssequence = TcpTsSequence.new(seq,&block)
|
283
|
+
end
|
284
|
+
end
|
285
|
+
|
232
286
|
#
|
233
287
|
# Parses the scanned ports of the host.
|
234
288
|
#
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'nmap/sequence'
|
2
|
+
|
3
|
+
module Nmap
|
4
|
+
class IpidSequence < Sequence
|
5
|
+
|
6
|
+
#
|
7
|
+
# Converts the IpidSequence class to a String.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
# The String form of the object.
|
11
|
+
#
|
12
|
+
# @since 0.5.0
|
13
|
+
#
|
14
|
+
def to_s
|
15
|
+
"description=#{description.inspect} values=#{values.inspect}"
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/nmap/os.rb
CHANGED
@@ -61,7 +61,7 @@ module Nmap
|
|
61
61
|
# The OS class information.
|
62
62
|
#
|
63
63
|
def classes
|
64
|
-
|
64
|
+
each_class.to_a
|
65
65
|
end
|
66
66
|
|
67
67
|
#
|
@@ -99,7 +99,7 @@ module Nmap
|
|
99
99
|
# The OS match information.
|
100
100
|
#
|
101
101
|
def matches
|
102
|
-
|
102
|
+
each_match.to_a
|
103
103
|
end
|
104
104
|
|
105
105
|
#
|
data/lib/nmap/program.rb
CHANGED
@@ -13,6 +13,9 @@ module Nmap
|
|
13
13
|
# @param [Hash{Symbol => Object}] options
|
14
14
|
# Additional options for nmap.
|
15
15
|
#
|
16
|
+
# @param [Hash{Symbol => Object}] exec_options
|
17
|
+
# Additional exec-options.
|
18
|
+
#
|
16
19
|
# @yield [task]
|
17
20
|
# If a block is given, it will be passed a task object
|
18
21
|
# used to specify options for nmap.
|
@@ -37,8 +40,10 @@ module Nmap
|
|
37
40
|
# nmap.verbose = true
|
38
41
|
# end
|
39
42
|
#
|
40
|
-
|
41
|
-
|
43
|
+
# @see #scan
|
44
|
+
#
|
45
|
+
def self.scan(options={},exec_options={},&block)
|
46
|
+
find.scan(options,exec_options,&block)
|
42
47
|
end
|
43
48
|
|
44
49
|
#
|
@@ -47,6 +52,9 @@ module Nmap
|
|
47
52
|
# @param [Hash{Symbol => Object}] options
|
48
53
|
# Additional options for nmap.
|
49
54
|
#
|
55
|
+
# @param [Hash{Symbol => Object}] exec_options
|
56
|
+
# Additional exec-options.
|
57
|
+
#
|
50
58
|
# @yield [task]
|
51
59
|
# If a block is given, it will be passed a task object
|
52
60
|
# used to specify options for nmap.
|
@@ -57,8 +65,11 @@ module Nmap
|
|
57
65
|
# @return [Boolean]
|
58
66
|
# Specifies whether the command exited normally.
|
59
67
|
#
|
60
|
-
|
61
|
-
|
68
|
+
# @see http://rubydoc.info/gems/rprogram/0.3.0/RProgram/Program#run-instance_method
|
69
|
+
# For additional exec-options.
|
70
|
+
#
|
71
|
+
def scan(options={},exec_options={},&block)
|
72
|
+
run_task(Task.new(options,&block),exec_options)
|
62
73
|
end
|
63
74
|
|
64
75
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
module Nmap
|
2
|
+
class Sequence
|
3
|
+
|
4
|
+
#
|
5
|
+
# Creates a new sequence object.
|
6
|
+
#
|
7
|
+
# @param [Nokogiri::XML::Node] node
|
8
|
+
# The node that contains the sequence information.
|
9
|
+
#
|
10
|
+
# @yield [sequence]
|
11
|
+
# If a block is given, it will passed the newly created sequence.
|
12
|
+
#
|
13
|
+
# @yieldparam [Sequence] sequence
|
14
|
+
# The newly created sequence object.
|
15
|
+
#
|
16
|
+
# @since 0.5.0
|
17
|
+
#
|
18
|
+
def initialize(node)
|
19
|
+
@node = node
|
20
|
+
|
21
|
+
yield self if block_given?
|
22
|
+
end
|
23
|
+
|
24
|
+
#
|
25
|
+
# The description of the sequence.
|
26
|
+
#
|
27
|
+
# @return [String]
|
28
|
+
# The sequence class from nmap.
|
29
|
+
#
|
30
|
+
# @since 0.5.0
|
31
|
+
#
|
32
|
+
def description
|
33
|
+
@node['class']
|
34
|
+
end
|
35
|
+
|
36
|
+
#
|
37
|
+
# The values within the sequence.
|
38
|
+
#
|
39
|
+
# @return [Array<Numeric>]
|
40
|
+
# A sample of sequence numbers taken by nmap.
|
41
|
+
#
|
42
|
+
# @since 0.5.0
|
43
|
+
#
|
44
|
+
def values
|
45
|
+
unless @values
|
46
|
+
@values = []
|
47
|
+
|
48
|
+
if (string = @node['values'])
|
49
|
+
string.scan(/[^\s,]+/) { |match| @values << match.to_i(16) }
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
return @values
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
data/lib/nmap/task.rb
CHANGED
@@ -46,7 +46,7 @@ module Nmap
|
|
46
46
|
# * `--scanflags` - `nmap.tcp_scan_flags`
|
47
47
|
# * `-sZ` - `nmap.sctp_cookie_echo_scan`
|
48
48
|
# * `-sI` - `nmap.idle_scan`
|
49
|
-
# * `-
|
49
|
+
# * `-sO` - `nmap.ip_scan`
|
50
50
|
# * `-b` - `nmap.ftp_bounce_scan`
|
51
51
|
#
|
52
52
|
# ### Port Specification and Scan Order:
|
@@ -208,7 +208,7 @@ module Nmap
|
|
208
208
|
long_option :flag => '--scanflags', :name => :tcp_scan_flags
|
209
209
|
short_option :flag => '-sZ', :name => :sctp_cookie_echo_scan
|
210
210
|
short_option :flag => '-sI', :name => :idle_scan
|
211
|
-
short_option :flag => '-
|
211
|
+
short_option :flag => '-sO', :name => :ip_scan
|
212
212
|
short_option :flag => '-b', :name => :ftp_bounce_scan
|
213
213
|
|
214
214
|
# PORT SPECIFICATION AND SCAN ORDER:
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'nmap/sequence'
|
2
|
+
|
3
|
+
module Nmap
|
4
|
+
class TcpSequence < Sequence
|
5
|
+
|
6
|
+
#
|
7
|
+
# @return [Numeric]
|
8
|
+
# The difficulty index from nmap
|
9
|
+
#
|
10
|
+
# @since 0.5.0
|
11
|
+
#
|
12
|
+
def index
|
13
|
+
@index ||= if (index_string = @node['index'])
|
14
|
+
index_string.to_i
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
#
|
19
|
+
# @return [String]
|
20
|
+
# The difficulty description from nmap
|
21
|
+
#
|
22
|
+
# @since 0.5.0
|
23
|
+
#
|
24
|
+
def difficulty
|
25
|
+
@node['difficulty']
|
26
|
+
end
|
27
|
+
|
28
|
+
#
|
29
|
+
# Converts the TcpSequence class to a String.
|
30
|
+
#
|
31
|
+
# @return [String]
|
32
|
+
# The String form of the object.
|
33
|
+
#
|
34
|
+
# @since 0.5.0
|
35
|
+
#
|
36
|
+
def to_s
|
37
|
+
"index=#{index} difficulty=#{difficulty.inspect} values=#{values.inspect}"
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'nmap/sequence'
|
2
|
+
|
3
|
+
module Nmap
|
4
|
+
class TcpTsSequence < Sequence
|
5
|
+
|
6
|
+
#
|
7
|
+
# Converts the TcpTsSequence class to a String.
|
8
|
+
#
|
9
|
+
# @return [String]
|
10
|
+
# The String form of the object.
|
11
|
+
#
|
12
|
+
# @since 0.5.0
|
13
|
+
#
|
14
|
+
def to_s
|
15
|
+
"description=#{description.inspect} values=#{values.inspect}"
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
data/lib/nmap/version.rb
CHANGED
data/lib/nmap/xml.rb
CHANGED
@@ -150,7 +150,7 @@ module Nmap
|
|
150
150
|
# The hosts in the scan.
|
151
151
|
#
|
152
152
|
def hosts
|
153
|
-
|
153
|
+
each_host.to_a
|
154
154
|
end
|
155
155
|
|
156
156
|
#
|
@@ -183,7 +183,7 @@ module Nmap
|
|
183
183
|
# The hosts in the scan.
|
184
184
|
#
|
185
185
|
def up_hosts
|
186
|
-
|
186
|
+
each_up_host.to_a
|
187
187
|
end
|
188
188
|
|
189
189
|
#
|
data/ruby-nmap.gemspec
CHANGED
@@ -5,6 +5,11 @@ begin
|
|
5
5
|
# custom logic here
|
6
6
|
end
|
7
7
|
rescue NameError
|
8
|
-
|
9
|
-
|
8
|
+
begin
|
9
|
+
require 'ore/specification'
|
10
|
+
retry
|
11
|
+
rescue LoadError
|
12
|
+
STDERR.puts "The 'ruby-nmap.gemspec' file requires Ore."
|
13
|
+
STDERR.puts "Run `gem install ore-core` to install Ore."
|
14
|
+
end
|
10
15
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'helpers/xml'
|
3
|
+
|
4
|
+
require 'nmap/tcp_sequence'
|
5
|
+
require 'nmap/tcp_ts_sequence'
|
6
|
+
require 'nmap/ip_id_sequence'
|
7
|
+
require 'nmap/xml'
|
8
|
+
require 'cgi'
|
9
|
+
|
10
|
+
describe TcpSequence do
|
11
|
+
include Helpers
|
12
|
+
|
13
|
+
before(:all) do
|
14
|
+
@xml = XML.new(Helpers::SCAN_FILE)
|
15
|
+
@tcpsequence = @xml.hosts.first.tcpsequence
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be accessible from host objects" do
|
19
|
+
@tcpsequence.should be_kind_of(TcpSequence)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should parse the index" do
|
23
|
+
@tcpsequence.index.should == 25
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should parse the difficulty description" do
|
27
|
+
@tcpsequence.difficulty.should == "Good luck!"
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should parse the values" do
|
31
|
+
@tcpsequence.values.should == [0xAF1B39BD,0xAF1C33BD,0xAF1F21BD,0xAF201BBD,0xAF2115BD,0xAF220FBD]
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe IpidSequence do
|
36
|
+
include Helpers
|
37
|
+
|
38
|
+
before(:all) do
|
39
|
+
@xml = XML.new(Helpers::SCAN_FILE)
|
40
|
+
@ipidsequence = @xml.hosts.first.ipidsequence
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should be accessible from host objects" do
|
44
|
+
@ipidsequence.should be_kind_of(IpidSequence)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should parse the description" do
|
48
|
+
@ipidsequence.description.should == "Incremental"
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should parse the values" do
|
52
|
+
@ipidsequence.values.should == [0x1FB0,0x1FB2,0x1FB4,0x1FB6,0x1FB8,0x1FBA]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe TcpTsSequence do
|
57
|
+
include Helpers
|
58
|
+
|
59
|
+
before(:all) do
|
60
|
+
@xml = XML.new(Helpers::SCAN_FILE)
|
61
|
+
@tcptssequence = @xml.hosts.first.tcptssequence
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should be accessible from host objects" do
|
65
|
+
@tcptssequence.should be_kind_of(TcpTsSequence)
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should parse the description" do
|
69
|
+
@tcptssequence.description.should == "2HZ"
|
70
|
+
end
|
71
|
+
|
72
|
+
it "should parse the values" do
|
73
|
+
@tcptssequence.values.should == [0x1858,0x1858,0x1859,0x1859,0x1859,0x1859]
|
74
|
+
end
|
75
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,12 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-nmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
prerelease:
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 4
|
8
|
-
- 1
|
9
|
-
version: 0.4.1
|
4
|
+
prerelease:
|
5
|
+
version: 0.5.0
|
10
6
|
platform: ruby
|
11
7
|
authors:
|
12
8
|
- Postmodern
|
@@ -14,8 +10,7 @@ autorequire:
|
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
12
|
|
17
|
-
date:
|
18
|
-
default_executable:
|
13
|
+
date: 2011-04-11 00:00:00 Z
|
19
14
|
dependencies:
|
20
15
|
- !ruby/object:Gem::Dependency
|
21
16
|
name: nokogiri
|
@@ -23,13 +18,9 @@ dependencies:
|
|
23
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
19
|
none: false
|
25
20
|
requirements:
|
26
|
-
- -
|
21
|
+
- - ~>
|
27
22
|
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 1
|
30
|
-
- 3
|
31
|
-
- 0
|
32
|
-
version: 1.3.0
|
23
|
+
version: "1.3"
|
33
24
|
type: :runtime
|
34
25
|
version_requirements: *id001
|
35
26
|
- !ruby/object:Gem::Dependency
|
@@ -40,11 +31,7 @@ dependencies:
|
|
40
31
|
requirements:
|
41
32
|
- - ~>
|
42
33
|
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
- 0
|
45
|
-
- 2
|
46
|
-
- 0
|
47
|
-
version: 0.2.0
|
34
|
+
version: "0.3"
|
48
35
|
type: :runtime
|
49
36
|
version_requirements: *id002
|
50
37
|
- !ruby/object:Gem::Dependency
|
@@ -55,11 +42,7 @@ dependencies:
|
|
55
42
|
requirements:
|
56
43
|
- - ~>
|
57
44
|
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
- 0
|
60
|
-
- 3
|
61
|
-
- 0
|
62
|
-
version: 0.3.0
|
45
|
+
version: "0.4"
|
63
46
|
type: :development
|
64
47
|
version_requirements: *id003
|
65
48
|
- !ruby/object:Gem::Dependency
|
@@ -70,11 +53,7 @@ dependencies:
|
|
70
53
|
requirements:
|
71
54
|
- - ~>
|
72
55
|
- !ruby/object:Gem::Version
|
73
|
-
|
74
|
-
- 2
|
75
|
-
- 1
|
76
|
-
- 0
|
77
|
-
version: 2.1.0
|
56
|
+
version: "2.4"
|
78
57
|
type: :development
|
79
58
|
version_requirements: *id004
|
80
59
|
- !ruby/object:Gem::Dependency
|
@@ -85,15 +64,12 @@ dependencies:
|
|
85
64
|
requirements:
|
86
65
|
- - ~>
|
87
66
|
- !ruby/object:Gem::Version
|
88
|
-
segments:
|
89
|
-
- 0
|
90
|
-
- 6
|
91
|
-
- 0
|
92
67
|
version: 0.6.0
|
93
68
|
type: :development
|
94
69
|
version_requirements: *id005
|
95
70
|
description: A Ruby interface to Nmap, the exploration tool and security / port scanner.
|
96
|
-
email:
|
71
|
+
email:
|
72
|
+
- postmodern.mod3@gmail.com
|
97
73
|
executables: []
|
98
74
|
|
99
75
|
extensions: []
|
@@ -101,6 +77,7 @@ extensions: []
|
|
101
77
|
extra_rdoc_files:
|
102
78
|
- README.md
|
103
79
|
files:
|
80
|
+
- .gemtest
|
104
81
|
- .rspec
|
105
82
|
- .yardopts
|
106
83
|
- ChangeLog.md
|
@@ -111,6 +88,7 @@ files:
|
|
111
88
|
- lib/nmap.rb
|
112
89
|
- lib/nmap/address.rb
|
113
90
|
- lib/nmap/host.rb
|
91
|
+
- lib/nmap/ip_id_sequence.rb
|
114
92
|
- lib/nmap/os.rb
|
115
93
|
- lib/nmap/os_class.rb
|
116
94
|
- lib/nmap/os_match.rb
|
@@ -119,8 +97,11 @@ files:
|
|
119
97
|
- lib/nmap/scan.rb
|
120
98
|
- lib/nmap/scan_task.rb
|
121
99
|
- lib/nmap/scanner.rb
|
100
|
+
- lib/nmap/sequence.rb
|
122
101
|
- lib/nmap/status.rb
|
123
102
|
- lib/nmap/task.rb
|
103
|
+
- lib/nmap/tcp_sequence.rb
|
104
|
+
- lib/nmap/tcp_ts_sequence.rb
|
124
105
|
- lib/nmap/version.rb
|
125
106
|
- lib/nmap/xml.rb
|
126
107
|
- ruby-nmap.gemspec
|
@@ -131,10 +112,10 @@ files:
|
|
131
112
|
- spec/nmap_spec.rb
|
132
113
|
- spec/os_spec.rb
|
133
114
|
- spec/port_spec.rb
|
115
|
+
- spec/sequence_spec.rb
|
134
116
|
- spec/spec_helper.rb
|
135
117
|
- spec/task_spec.rb
|
136
118
|
- spec/xml_spec.rb
|
137
|
-
has_rdoc: yard
|
138
119
|
homepage: http://github.com/sophsec/ruby-nmap
|
139
120
|
licenses:
|
140
121
|
- MIT
|
@@ -148,21 +129,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
148
129
|
requirements:
|
149
130
|
- - ">="
|
150
131
|
- !ruby/object:Gem::Version
|
151
|
-
segments:
|
152
|
-
- 0
|
153
132
|
version: "0"
|
154
133
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
134
|
none: false
|
156
135
|
requirements:
|
157
136
|
- - ">="
|
158
137
|
- !ruby/object:Gem::Version
|
159
|
-
segments:
|
160
|
-
- 0
|
161
138
|
version: "0"
|
162
139
|
requirements:
|
163
140
|
- nmap >= 5.00
|
164
141
|
rubyforge_project: ruby-nmap
|
165
|
-
rubygems_version: 1.
|
142
|
+
rubygems_version: 1.7.2
|
166
143
|
signing_key:
|
167
144
|
specification_version: 3
|
168
145
|
summary: A Ruby interface to Nmap.
|
@@ -170,6 +147,7 @@ test_files:
|
|
170
147
|
- spec/host_spec.rb
|
171
148
|
- spec/port_spec.rb
|
172
149
|
- spec/nmap_spec.rb
|
150
|
+
- spec/sequence_spec.rb
|
173
151
|
- spec/os_spec.rb
|
174
152
|
- spec/xml_spec.rb
|
175
153
|
- spec/task_spec.rb
|