dradis-nmap 3.18.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,72 @@
1
+ <?xml version="1.0"?>
2
+ <?xml-stylesheet href="file:///usr/local/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
3
+ <!-- Nmap 5.59BETA3 scan initiated Fri Sep 9 18:33:41 2011 as:
4
+ nmap -T4 -A -p 1-1000 -oX - scanme.nmap.org -->
5
+ <nmaprun scanner="nmap" args="nmap -T4 -A -p 1-1000 -oX - scanme.nmap.org" start="1315618421"
6
+ startstr="Fri Sep 9 18:33:41 2011" version="5.59BETA3" xmloutputversion="1.03">
7
+ <scaninfo type="syn" protocol="tcp" numservices="1000" services="1-1000"/>
8
+ <verbose level="0"/>
9
+ <debugging level="0"/>
10
+ <host starttime="1315618421" endtime="1315618434">
11
+ <status state="up" reason="echo-reply"/>
12
+ <address addr="74.207.244.221" addrtype="ipv4"/>
13
+ <hostnames>
14
+ <hostname name="scanme.nmap.org" type="user"/>
15
+ <hostname name="li86-221.members.linode.com" type="PTR"/>
16
+ </hostnames>
17
+ <ports>
18
+ <extraports state="closed" count="997">
19
+ <extrareasons reason="resets" count="997"/>
20
+ </extraports>
21
+ <port protocol="tcp" portid="22">
22
+ <state state="open" reason="syn-ack" reason_ttl="53"/>
23
+ <service name="ssh" product="OpenSSH" version="5.3p1 Debian 3ubuntu7"
24
+ extrainfo="protocol 2.0" ostype="Linux" method="probed" conf="10">
25
+ <cpe>cpe:/a:openbsd:openssh:5.3p1</cpe>
26
+ <cpe>cpe:/o:linux:kernel</cpe>
27
+ </service>
28
+ <script id="ssh-hostkey"
29
+ output="1024 8d:60:f1:7c:ca:b7:3d:0a:d6:67:54:9d:69:d9:b9:dd (DSA)&#xa;
30
+ 2048 79:f8:09:ac:d4:e2:32:42:10:49:d3:bd:20:82:85:ec (RSA)"/>
31
+ </port>
32
+ <port protocol="tcp" portid="80">
33
+ <state state="open" reason="syn-ack" reason_ttl="53"/>
34
+ <service name="http" product="Apache httpd" version="2.2.14"
35
+ extrainfo="(Ubuntu)" method="probed" conf="10">
36
+ <cpe>cpe:/a:apache:http_server:2.2.14</cpe>
37
+ </service>
38
+ <script id="http-title" output="Go ahead and ScanMe!"/>
39
+ </port>
40
+ </ports>
41
+ <os>
42
+ <portused state="open" proto="tcp" portid="22"/>
43
+ <portused state="closed" proto="tcp" portid="1"/>
44
+ <portused state="closed" proto="udp" portid="31289"/>
45
+ <osclass type="general purpose" vendor="Linux" osfamily="Linux"
46
+ osgen="2.6.X" accuracy="100">
47
+ <cpe>cpe:/o:linux:linux_kernel:2.6.39</cpe>
48
+ </osclass>
49
+ <osmatch name="Linux 2.6.39" accuracy="100" line="39278"/>
50
+ </os>
51
+ <uptime seconds="23450" lastboot="Fri Sep 9 12:03:04 2011"/>
52
+ <distance value="11"/>
53
+ <tcpsequence index="199" difficulty="Good luck!"
54
+ values="49018209,48C3EBED,495A2E7F,493EF30C,48ED43B3,495A9B0C"/>
55
+ <ipidsequence class="All zeros" values="0,0,0,0,0,0"/>
56
+ <tcptssequence class="1000HZ"
57
+ values="165CC09,165CC6E,165CCD2,165CD36,165CD9A,165CE48"/>
58
+ <trace port="256" proto="tcp">
59
+ <!-- Several hop elements removed for brevity -->
60
+ <hop ttl="9" ipaddr="72.52.92.109" rtt="15.69" host="10gigabitethernet1-1.core1.fmt1.he.net"/>
61
+ <hop ttl="10" ipaddr="64.62.250.6" rtt="12.06" host="linode-llc.10gigabitethernet2-3.core1.fmt1.he.net"/>
62
+ <hop ttl="11" ipaddr="74.207.244.221" rtt="16.55" host="li86-221.members.linode.com"/>
63
+ </trace>
64
+ <times srtt="26517" rttvar="19989" to="106473"/>
65
+ </host>
66
+ <runstats>
67
+ <finished time="1315618434" timestr="Fri Sep 9 18:33:54 2011" elapsed="13.66"
68
+ summary="Nmap done at Fri Sep 9 18:33:54 2011; 1 IP address (1 host up)
69
+ scanned in 13.66 seconds" exit="success"/>
70
+ <hosts up="1" down="0" total="1"/>
71
+ </runstats>
72
+ </nmaprun>
@@ -0,0 +1,71 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Nmap upload plugin' do
4
+ describe "Importer" do
5
+
6
+ before(:each) do
7
+ # Stub template service
8
+ templates_dir = File.expand_path('../../templates', __FILE__)
9
+ expect_any_instance_of(Dradis::Plugins::TemplateService)
10
+ .to receive(:default_templates_dir).and_return(templates_dir)
11
+
12
+ # Init services
13
+ plugin = Dradis::Plugins::Nmap
14
+
15
+ @content_service = Dradis::Plugins::ContentService::Base.new(plugin: plugin)
16
+
17
+ @importer = plugin::Importer.new(
18
+ content_service: @content_service
19
+ )
20
+ end
21
+
22
+ it "creates an error note when the xml is not valid" do
23
+ expect(@content_service).to receive(:create_note) do |args|
24
+ expect(args[:text]).to include("#[Title]#\nInvalid file format")
25
+ OpenStruct.new(args)
26
+ end.once
27
+
28
+ # Run the import
29
+ @importer.import(file: 'spec/fixtures/files/invalid.xml')
30
+ end
31
+
32
+ it "creates nodes, issues, notes and an evidences as needed" do
33
+ expect(@content_service).to receive(:create_node) do |args|
34
+ puts "create_node: #{ args.inspect }"
35
+ expect(args[:label]).to eq('74.207.244.221')
36
+ expect(args[:type]).to eq(:host)
37
+ obj = OpenStruct.new(args)
38
+ obj.define_singleton_method(:set_property) { |*| }
39
+ obj.define_singleton_method(:set_service) { |*| }
40
+ obj
41
+ end.once
42
+ expect(@content_service).to receive(:create_note) do |args|
43
+ puts "create_note: #{ args.inspect }"
44
+ expect(args[:text]).to include("#[Title]#\nNmap info: 74.207.244.221")
45
+ expect(args[:text]).to_not include("not recognized by the plugin")
46
+ expect(args[:node].label).to eq("74.207.244.221")
47
+ OpenStruct.new(args)
48
+ end.once
49
+ expect(@content_service).to receive(:create_note) do |args|
50
+ puts "create_note: #{ args.inspect }"
51
+ expect(args[:text]).to include("#[Title]#\n22/tcp is open (syn-ack)")
52
+ expect(args[:text]).to_not include("not recognized by the plugin")
53
+ expect(args[:text]).to include("#[Host]#\n74.207.244.221")
54
+ expect(args[:node].label).to eq("74.207.244.221")
55
+ OpenStruct.new(args)
56
+ end.once
57
+ expect(@content_service).to receive(:create_note) do |args|
58
+ puts "create_note: #{ args.inspect }"
59
+ expect(args[:text]).to include("#[Title]#\n80/tcp is open (syn-ack)")
60
+ expect(args[:text]).to_not include("not recognized by the plugin")
61
+ expect(args[:text]).to include("#[Host]#\n74.207.244.221")
62
+ expect(args[:node].label).to eq("74.207.244.221")
63
+ OpenStruct.new(args)
64
+ end.once
65
+
66
+ # Run the import
67
+ @importer.import(file: 'spec/fixtures/files/sample.xml')
68
+ end
69
+
70
+ end
71
+ end
@@ -0,0 +1,9 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'nokogiri'
4
+ require 'combustion'
5
+
6
+ Combustion.initialize!
7
+
8
+ RSpec.configure do |config|
9
+ end
@@ -0,0 +1,4 @@
1
+ host.hostnames
2
+ host.ip
3
+ host.service_table
4
+ host.os
@@ -0,0 +1,37 @@
1
+ <host starttime="1378483073" endtime="1378483078">
2
+ <status state="up" reason="localhost-response" reason_ttl="0"/>
3
+ <address addr="127.0.0.1" addrtype="ipv4"/>
4
+ <hostnames>
5
+ <hostname name="localhost" type="user"/>
6
+ <hostname name="localhost" type="PTR"/>
7
+ </hostnames>
8
+ <ports>
9
+ <extraports state="closed" count="65529">
10
+ <extrareasons reason="resets" count="65529"/>
11
+ </extraports>
12
+ <port protocol="tcp" portid="25">
13
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
14
+ <service name="smtp" method="table" conf="3"/>
15
+ </port>
16
+ <port protocol="tcp" portid="80">
17
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
18
+ <service name="http" method="table" conf="3"/>
19
+ </port>
20
+ <port protocol="tcp" portid="443">
21
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
22
+ <service name="https" method="table" conf="3"/>
23
+ </port>
24
+ <port protocol="tcp" portid="3000">
25
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
26
+ <service name="ppp" method="table" conf="3"/>
27
+ </port>
28
+ <port protocol="tcp" portid="3306">
29
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
30
+ <service name="mysql" method="table" conf="3"/>
31
+ </port>
32
+ <port protocol="tcp" portid="22007">
33
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
34
+ </port>
35
+ </ports>
36
+ <times srtt="35" rttvar="5" to="100000"/>
37
+ </host>
@@ -0,0 +1,19 @@
1
+ #[Title]#
2
+ Nmap info: %host.ip%
3
+
4
+ #[IP]#
5
+ %host.ip%
6
+
7
+ #[Hostnames]#
8
+ %host.hostnames%
9
+
10
+ #[OS]#
11
+ %host.os%
12
+
13
+ #[Services]#
14
+ |_. Port number |_. Protocol |_. State |_. Service |_. Product |_. Version |
15
+ %host.service_table%
16
+
17
+
18
+ #[Type]#
19
+ Properties
@@ -0,0 +1,9 @@
1
+ port.number
2
+ port.protocol
3
+ port.state
4
+ port.reason
5
+ port.service.name
6
+ port.service.product
7
+ port.service.tunnel
8
+ port.service.version
9
+ port.host
@@ -0,0 +1,15 @@
1
+ <port
2
+ protocol="tcp"
3
+ portid="25">
4
+
5
+ <state
6
+ state="open"
7
+ reason="syn-ack"
8
+ reason_ttl="64"/>
9
+
10
+ <service
11
+ name="smtp"
12
+ method="table"
13
+ conf="3"
14
+ tunnel="ssl"/>
15
+ </port>
@@ -0,0 +1,14 @@
1
+ #[Title]#
2
+ %port.number%/%port.protocol% is %port.state% (%port.reason%)
3
+
4
+ #[Service]#
5
+ %port.service.name%
6
+
7
+ #[Product]#
8
+ %port.service.product%
9
+
10
+ #[Version]#
11
+ %port.service.version%
12
+
13
+ #[Host]#
14
+ %port.host%
metadata ADDED
@@ -0,0 +1,163 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: dradis-nmap
3
+ version: !ruby/object:Gem::Version
4
+ version: 3.18.0
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Martin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-07-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dradis-plugins
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.6'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ruby-nmap
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.7'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.7'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '10.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '10.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-rails
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: combustion
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.5.2
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.5.2
97
+ description: This add-on allows you to upload and parse output produced from Nmap
98
+ web server scanner into Dradis.
99
+ email:
100
+ - etd@nomejortu.com
101
+ executables: []
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - ".github/issue_template.md"
106
+ - ".github/pull_request_template.md"
107
+ - ".gitignore"
108
+ - ".rspec"
109
+ - CHANGELOG.md
110
+ - CONTRIBUTING.md
111
+ - Gemfile
112
+ - LICENSE
113
+ - README.md
114
+ - Rakefile
115
+ - dradis-nmap.gemspec
116
+ - lib/dradis-nmap.rb
117
+ - lib/dradis/plugins/nmap.rb
118
+ - lib/dradis/plugins/nmap/engine.rb
119
+ - lib/dradis/plugins/nmap/field_processor.rb
120
+ - lib/dradis/plugins/nmap/gem_version.rb
121
+ - lib/dradis/plugins/nmap/importer.rb
122
+ - lib/dradis/plugins/nmap/version.rb
123
+ - lib/tasks/thorfile.rb
124
+ - spec/fixtures/files/invalid.xml
125
+ - spec/fixtures/files/nse-01.xml
126
+ - spec/fixtures/files/sample.xml
127
+ - spec/nmap_upload_spec.rb
128
+ - spec/spec_helper.rb
129
+ - templates/host.fields
130
+ - templates/host.sample
131
+ - templates/host.template
132
+ - templates/port.fields
133
+ - templates/port.sample
134
+ - templates/port.template
135
+ homepage: http://dradisframework.org
136
+ licenses:
137
+ - GPL-2
138
+ metadata: {}
139
+ post_install_message:
140
+ rdoc_options: []
141
+ require_paths:
142
+ - lib
143
+ required_ruby_version: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - ">="
146
+ - !ruby/object:Gem::Version
147
+ version: '0'
148
+ required_rubygems_version: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ requirements: []
154
+ rubygems_version: 3.1.2
155
+ signing_key:
156
+ specification_version: 4
157
+ summary: Nmap add-on for the Dradis Framework.
158
+ test_files:
159
+ - spec/fixtures/files/invalid.xml
160
+ - spec/fixtures/files/nse-01.xml
161
+ - spec/fixtures/files/sample.xml
162
+ - spec/nmap_upload_spec.rb
163
+ - spec/spec_helper.rb