dradis-nmap 3.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.
@@ -0,0 +1,8 @@
1
+ # Hook to the framework base clases
2
+ require 'dradis-plugins'
3
+
4
+ # Load this add-on's engine
5
+ require 'dradis/plugins/nmap'
6
+
7
+ # Require ruby-nmap gem classes
8
+ require 'nmap/xml'
@@ -0,0 +1,11 @@
1
+ module Dradis
2
+ module Plugins
3
+ module Nmap
4
+ end
5
+ end
6
+ end
7
+
8
+ require 'dradis/plugins/nmap/engine'
9
+ require 'dradis/plugins/nmap/field_processor'
10
+ require 'dradis/plugins/nmap/importer'
11
+ require 'dradis/plugins/nmap/version'
@@ -0,0 +1,13 @@
1
+ module Dradis
2
+ module Plugins
3
+ module Nmap
4
+ class Engine < ::Rails::Engine
5
+ isolate_namespace Dradis::Plugins::Nmap
6
+
7
+ include ::Dradis::Plugins::Base
8
+ description 'Processes Nmap output'
9
+ provides :upload
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,74 @@
1
+ module Dradis
2
+ module Plugins
3
+ module Nmap
4
+ class FieldProcessor < Dradis::Plugins::Upload::FieldProcessor
5
+ def post_initialize(args={})
6
+ if data.kind_of?(::Nmap::Host) || data.kind_of?(::Nmap::Port)
7
+ @nmap_object = data
8
+ elsif data.name == 'host'
9
+ @nmap_object = ::Nmap::Host.new(data)
10
+ elsif data.name == 'port'
11
+ @nmap_object = ::Nmap::Port.new(data)
12
+ end
13
+ end
14
+
15
+ def value(args={})
16
+ field = args[:field]
17
+ # fields in the template are of the form <foo>.<field>, where <foo>
18
+ # is common across all fields for a given template (and meaningless).
19
+ type, name, attribute = field.split('.')
20
+ if type == 'host'
21
+ host_value(name)
22
+ elsif type == 'port'
23
+ port_value(name, attribute)
24
+ end
25
+ end
26
+
27
+ private
28
+ def host_value(name)
29
+ if name == 'hostnames'
30
+ @nmap_object.hostnames.uniq.map(&:to_s).sort.join(', ')
31
+ elsif name == 'service_table'
32
+ host_service_table
33
+ else
34
+ @nmap_object.try(name) || 'n/a'
35
+ end
36
+ end
37
+
38
+ def port_value(name, attribute = nil)
39
+ if attribute
40
+ # port.service.name
41
+ # port.service.product
42
+ # port.service.version
43
+ if @nmap_object.service
44
+ @nmap_object.service.try(attribute) || 'n/a'
45
+ end
46
+ else
47
+ @nmap_object.try(name) || 'n/a'
48
+ end
49
+ end
50
+
51
+ def host_service_table
52
+ ports = []
53
+ # Build up a Services table with all the available information about each
54
+ # individual port.
55
+ @nmap_object.each_port do |port|
56
+ port_info = ''
57
+ port_info << "| #{port.number} | #{port.protocol} | #{port.state} (#{port.reason}) |"
58
+ if (srv = port.service)
59
+ port_info << " #{srv.try('name') || ''} |"
60
+ port_info << " #{srv.try('product') || ''} |"
61
+ port_info << " #{srv.try('version') || ''} |"
62
+ else
63
+ port_info << " | | |"
64
+ end
65
+ port_info << "\n"
66
+ ports << port_info
67
+ end
68
+ ports.join
69
+ end
70
+
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,19 @@
1
+ module Dradis
2
+ module Plugins
3
+ module Nmap
4
+ # Returns the version of the currently loaded Dradis as a <tt>Gem::Version</tt>
5
+ def self.gem_version
6
+ Gem::Version.new VERSION::STRING
7
+ end
8
+
9
+ module VERSION
10
+ MAJOR = 3
11
+ MINOR = 1
12
+ TINY = 0
13
+ PRE = nil
14
+
15
+ STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,74 @@
1
+ module Dradis::Plugins::Nmap
2
+ class Importer < Dradis::Plugins::Upload::Importer
3
+ # The framework will call this function if the user selects this plugin from
4
+ # the dropdown list and uploads a file.
5
+ # @returns true if the operation was successful, false otherwise
6
+ def import(params={})
7
+
8
+ logger.info{ "Parsing Nmap output from #{ params[:file] }..." }
9
+ doc = Nmap::XML::new(params[:file])
10
+ logger.info{ 'Done.' }
11
+
12
+ logger.info{ 'Validating Nmap output...' }
13
+ if doc.hosts.empty?
14
+ error = {
15
+ 'Title' => 'Invalid file format',
16
+ 'File name' => File.basename(params[:file]),
17
+ 'Description' => "The file you uploaded doesn't seem to be a valid Nmap XML file."
18
+ }
19
+ logger.fatal{ error['Description'] }
20
+ error = error.map{|k,v| "#[%s]#\n%s\n" % [k, v] }.join("\n\n")
21
+ content_service.create_note text: error
22
+ return false
23
+ end
24
+ logger.info{ 'Done.' }
25
+
26
+ # TODO: do something with the Nmap::Parser::Session information
27
+ port_notes_to_add = {}
28
+
29
+ doc.each_host do |host|
30
+ host_label = host.ip
31
+ host_node = content_service.create_node(label: host_label, type: :host)
32
+ logger.info{ "New host: #{ host_label }" }
33
+
34
+ # Set basic host properties
35
+ host_node.set_property(:ip, host.ip)
36
+ host_node.set_property(:hostname, host.hostnames.map(&:name)) if host.hostnames.present?
37
+ host_node.set_property(:os, host.os.matches.map(&:name)) if host.os.present?
38
+
39
+ # Old-style properties-in-a-note approach
40
+ host_text = template_service.process_template(template: 'host', data: host)
41
+ content_service.create_note(text: host_text, node: host_node)
42
+
43
+ host.each_port do |port|
44
+ logger.info{ "\tNew port: #{ port.number }/#{ port.protocol }" }
45
+
46
+ # Add service to host properties
47
+ host_node.set_property(:services, {
48
+ port: port.number,
49
+ protocol: port.protocol,
50
+ state: port.state,
51
+ reason: port.reason,
52
+ name: port.try('service').try('name'),
53
+ product: port.try('service').try('product'),
54
+ scripts: port.try('scripts'),
55
+ version: port.try('service').try('version')
56
+ })
57
+
58
+ # HACK: patch in a `host` method to `Nmap::Port`
59
+ # so we can use it in the template:
60
+ port.class.module_eval { attr_accessor :host }
61
+ port.host = host.ip
62
+
63
+ # Add a note with the port information
64
+ port_text = template_service.process_template(template: 'port', data: port)
65
+ content_service.create_note(
66
+ text: port_text,
67
+ node: host_node)
68
+ end
69
+
70
+ host_node.save
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,13 @@
1
+ require_relative 'gem_version'
2
+
3
+ module Dradis
4
+ module Plugins
5
+ module Nmap
6
+ # Returns the version of the currently loaded Nmap as a
7
+ # <tt>Gem::Version</tt>.
8
+ def self.version
9
+ gem_version
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,42 @@
1
+ class NmapTasks < Thor
2
+ include Core::Pro::ProjectScopedTask if defined?(::Core::Pro)
3
+
4
+ namespace "dradis:plugins:nmap"
5
+
6
+ desc "upload FILE", "upload the results of an Nmap scan"
7
+ long_desc "Upload an Nmap scan to create nodes and notes for the hosts and "\
8
+ "ports discovered during scanning."
9
+ def upload(file_path)
10
+ require 'config/environment'
11
+
12
+ unless File.exists?(file_path)
13
+ $stderr.puts "** the file [#{file_path}] does not exist"
14
+ exit(-1)
15
+ end
16
+
17
+ # Set project scope from the PROJECT_ID env variable:
18
+ detect_and_set_project_scope if defined?(::Core::Pro)
19
+
20
+ plugin = Dradis::Plugins::Nmap
21
+
22
+ Dradis::Plugins::Nmap::Importer.new(
23
+ logger: logger,
24
+ content_service: service_namespace::ContentService.new(plugin: plugin),
25
+ template_service: service_namespace::TemplateService.new(plugin: plugin)
26
+ ).import(file: file_path)
27
+
28
+ logger.close
29
+ end
30
+
31
+
32
+ private
33
+
34
+ def logger
35
+ @logger ||= Logger.new(STDOUT).tap { |l| l.level = Logger::DEBUG }
36
+ end
37
+
38
+ def service_namespace
39
+ defined?(Dradis::Pro) ? Dradis::Pro::Plugins : Dradis::Plugins
40
+ end
41
+
42
+ end
@@ -0,0 +1 @@
1
+ <foo></foo>
@@ -0,0 +1,127 @@
1
+ <?xml version="1.0"?>
2
+ <?xml-stylesheet href="file:///usr/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
3
+ <!-- Nmap 6.00 scan initiated Fri Aug 5 01:49:41 2016 as: nmap -sC -vv -T4 -oX scanme-01.xml scanme.nmap.org -->
4
+ <nmaprun scanner="nmap" args="nmap -sC -vv -T4 -oX scanme-01.xml scanme.nmap.org" start="1470376181" startstr="Fri Aug 5 01:49:41 2016" version="6.00" xmloutputversion="1.04">
5
+ <scaninfo type="syn" protocol="tcp" numservices="1000" services="1,3-4,6-7,9,13,17,19-26,30,32-33,37,42-43,49,53,70,79-85,88-90,99-100,106,109-111,113,119,125,135,139,143-144,146,161,163,179,199,211-212,222,254-256,259,264,280,301,306,311,340,366,389,406-407,416-417,425,427,443-445,458,464-465,481,497,500,512-515,524,541,543-545,548,554-555,563,587,593,616-617,625,631,636,646,648,666-668,683,687,691,700,705,711,714,720,722,726,749,765,777,783,787,800-801,808,843,873,880,888,898,900-903,911-912,981,987,990,992-993,995,999-1002,1007,1009-1011,1021-1100,1102,1104-1108,1110-1114,1117,1119,1121-1124,1126,1130-1132,1137-1138,1141,1145,1147-1149,1151-1152,1154,1163-1166,1169,1174-1175,1183,1185-1187,1192,1198-1199,1201,1213,1216-1218,1233-1234,1236,1244,1247-1248,1259,1271-1272,1277,1287,1296,1300-1301,1309-1311,1322,1328,1334,1352,1417,1433-1434,1443,1455,1461,1494,1500-1501,1503,1521,1524,1533,1556,1580,1583,1594,1600,1641,1658,1666,1687-1688,1700,1717-1721,1723,1755,1761,1782-1783,1801,1805,1812,1839-1840,1862-1864,1875,1900,1914,1935,1947,1971-1972,1974,1984,1998-2010,2013,2020-2022,2030,2033-2035,2038,2040-2043,2045-2049,2065,2068,2099-2100,2103,2105-2107,2111,2119,2121,2126,2135,2144,2160-2161,2170,2179,2190-2191,2196,2200,2222,2251,2260,2288,2301,2323,2366,2381-2383,2393-2394,2399,2401,2492,2500,2522,2525,2557,2601-2602,2604-2605,2607-2608,2638,2701-2702,2710,2717-2718,2725,2800,2809,2811,2869,2875,2909-2910,2920,2967-2968,2998,3000-3001,3003,3005-3007,3011,3013,3017,3030-3031,3052,3071,3077,3128,3168,3211,3221,3260-3261,3268-3269,3283,3300-3301,3306,3322-3325,3333,3351,3367,3369-3372,3389-3390,3404,3476,3493,3517,3527,3546,3551,3580,3659,3689-3690,3703,3737,3766,3784,3800-3801,3809,3814,3826-3828,3851,3869,3871,3878,3880,3889,3905,3914,3918,3920,3945,3971,3986,3995,3998,4000-4006,4045,4111,4125-4126,4129,4224,4242,4279,4321,4343,4443-4446,4449,4550,4567,4662,4848,4899-4900,4998,5000-5004,5009,5030,5033,5050-5051,5054,5060-5061,5080,5087,5100-5102,5120,5190,5200,5214,5221-5222,5225-5226,5269,5280,5298,5357,5405,5414,5431-5432,5440,5500,5510,5544,5550,5555,5560,5566,5631,5633,5666,5678-5679,5718,5730,5800-5802,5810-5811,5815,5822,5825,5850,5859,5862,5877,5900-5904,5906-5907,5910-5911,5915,5922,5925,5950,5952,5959-5963,5987-5989,5998-6007,6009,6025,6059,6100-6101,6106,6112,6123,6129,6156,6346,6389,6502,6510,6543,6547,6565-6567,6580,6646,6666-6669,6689,6692,6699,6779,6788-6789,6792,6839,6881,6901,6969,7000-7002,7004,7007,7019,7025,7070,7100,7103,7106,7200-7201,7402,7435,7443,7496,7512,7625,7627,7676,7741,7777-7778,7800,7911,7920-7921,7937-7938,7999-8002,8007-8011,8021-8022,8031,8042,8045,8080-8090,8093,8099-8100,8180-8181,8192-8194,8200,8222,8254,8290-8292,8300,8333,8383,8400,8402,8443,8500,8600,8649,8651-8652,8654,8701,8800,8873,8888,8899,8994,9000-9003,9009-9011,9040,9050,9071,9080-9081,9090-9091,9099-9103,9110-9111,9200,9207,9220,9290,9415,9418,9485,9500,9502-9503,9535,9575,9593-9595,9618,9666,9876-9878,9898,9900,9917,9929,9943-9944,9968,9998-10004,10009-10010,10012,10024-10025,10082,10180,10215,10243,10566,10616-10617,10621,10626,10628-10629,10778,11110-11111,11967,12000,12174,12265,12345,13456,13722,13782-13783,14000,14238,14441-14442,15000,15002-15004,15660,15742,16000-16001,16012,16016,16018,16080,16113,16992-16993,17877,17988,18040,18101,18988,19101,19283,19315,19350,19780,19801,19842,20000,20005,20031,20221-20222,20828,21571,22939,23502,24444,24800,25734-25735,26214,27000,27352-27353,27355-27356,27715,28201,30000,30718,30951,31038,31337,32768-32785,33354,33899,34571-34573,35500,38292,40193,40911,41511,42510,44176,44442-44443,44501,45100,48080,49152-49161,49163,49165,49167,49175-49176,49400,49999-50003,50006,50300,50389,50500,50636,50800,51103,51493,52673,52822,52848,52869,54045,54328,55055-55056,55555,55600,56737-56738,57294,57797,58080,60020,60443,61532,61900,62078,63331,64623,64680,65000,65129,65389"/>
6
+ <verbose level="2"/>
7
+ <debugging level="0"/>
8
+ <taskbegin task="Ping Scan" time="1470376181"/>
9
+ <taskend task="Ping Scan" time="1470376181" extrainfo="1 total hosts"/>
10
+ <taskbegin task="Parallel DNS resolution of 1 host." time="1470376181"/>
11
+ <taskend task="Parallel DNS resolution of 1 host." time="1470376181"/>
12
+ <taskbegin task="SYN Stealth Scan" time="1470376181"/>
13
+ <taskend task="SYN Stealth Scan" time="1470376187" extrainfo="1000 total ports"/>
14
+ <taskbegin task="NSE" time="1470376187"/>
15
+ <taskend task="NSE" time="1470376192"/>
16
+ <host starttime="1470376181" endtime="1470376192">
17
+ <status state="up" reason="reset"/>
18
+ <address addr="45.33.32.156" addrtype="ipv4"/>
19
+ <hostnames>
20
+ <hostname name="scanme.nmap.org" type="user"/>
21
+ <hostname name="scanme.nmap.org" type="PTR"/>
22
+ </hostnames>
23
+ <ports>
24
+ <extraports state="closed" count="979">
25
+ <extrareasons reason="resets" count="979"/>
26
+ </extraports>
27
+ <port protocol="tcp" portid="22">
28
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
29
+ <service name="ssh" method="table" conf="3"/>
30
+ <script id="ssh-hostkey" output="1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)&#10;ssh-dss AAAAB3NzaC1kc3MAAACBAOe8o59vFWZGaBmGPVeJBObEfi1AR8yEUYC/Ufkku3sKhGF7wM2m2ujIeZDK5vqeC0S5EN2xYo6FshCP4FQRYeTxD17nNO4PhwW65qAjDRRU0uHFfSAh5wk+vt4yQztOE++sTd1G9OBLzA8HO99qDmCAxb3zw+GQDEgPjzgyzGZ3AAAAFQCBmE1vROP8IaPkUmhM5xLFta/xHwAAAIEA3EwRfaeOPLL7TKDgGX67Lbkf9UtdlpCdC4doMjGgsznYMwWH6a7Lj3vi4/KmeZZdix6FMdFqq+2vrfT1DRqx0RS0XYdGxnkgS+2g333WYCrUkDCn6RPUWR/1TgGMPHCj7LWCa1ZwJwLWS2KX288Pa2gLOWuhZm2VYKSQx6NEDOIAAACBANxIfprSdBdbo4Ezrh6/X6HSvrhjtZ7MouStWaE714ByO5bS2coM9CyaCwYyrE5qzYiyIfb+1BG3O5nVdDuN95sQ/0bAdBKlkqLFvFqFjVbETF0ri3v97w6MpUawfF75ouDrQ4xdaUOLLEWTso6VFJcM6Jg9bDl0FA0uLZUSDEHL&#10;2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)&#10;ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6afooTZ9mVUGFNEhkMoRR1Btzu64XXwElhCsHw/zVlIx/HXylNbb9+11dm2VgJQ21pxkWDs+L6+EbYyDnvRURTrMTgHL0xseB0EkNqexs9hYZSiqtMx4jtGNtHvsMxZnbxvVUk2dasWvtBkn8J5JagSbzWTQo4hjKMOI1SUlXtiKxAs2F8wiq2EdSuKw/KNk8GfIp1TA+8ccGeAtnsVptTJ4D/8MhAWsROkQzOowQvnBBz2/8ecEvoMScaf+kDfNQowK3gENtSSOqYw9JLOza6YJBPL/aYuQQ0nJ74Rr5vL44aNIlrGI9jJc2x0bV7BeNA5kVuXsmhyfWbbkB8yGd"/>
31
+ </port>
32
+ <port protocol="tcp" portid="25">
33
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
34
+ <service name="smtp" method="table" conf="3"/>
35
+ <script id="smtp-commands" output="linqhotel-auth.coxhn.net Hello scanme.nmap.org [10.11.25.150], SIZE 52428800, 8BITMIME, PIPELINING, HELP, &#10; Commands supported: AUTH HELO EHLO MAIL RCPT DATA NOOP QUIT RSET HELP "/>
36
+ </port>
37
+ <port protocol="tcp" portid="53">
38
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
39
+ <service name="domain" method="table" conf="3"/>
40
+ <script id="dns-nsid" output="&#10; bind.version: 9.6.1&#10;"/>
41
+ </port>
42
+ <port protocol="tcp" portid="80">
43
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
44
+ <service name="http" method="table" conf="3"/>
45
+ <script id="http-methods" output="GET HEAD POST OPTIONS"/>
46
+ <script id="http-title" output="Go ahead and ScanMe!"/>
47
+ <script id="http-favicon" output="Unknown favicon MD5: 156515DA3C0F7DC6B2493BD5CE43F795"/>
48
+ </port>
49
+ <port protocol="tcp" portid="135">
50
+ <state state="filtered" reason="no-response" reason_ttl="0"/>
51
+ <service name="msrpc" method="table" conf="3"/>
52
+ </port>
53
+ <port protocol="tcp" portid="161">
54
+ <state state="filtered" reason="no-response" reason_ttl="0"/>
55
+ <service name="snmp" method="table" conf="3"/>
56
+ </port>
57
+ <port protocol="tcp" portid="163">
58
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
59
+ <service name="cmip-man" method="table" conf="3"/>
60
+ </port>
61
+ <port protocol="tcp" portid="445">
62
+ <state state="filtered" reason="no-response" reason_ttl="0"/>
63
+ <service name="microsoft-ds" method="table" conf="3"/>
64
+ </port>
65
+ <port protocol="tcp" portid="749">
66
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
67
+ <service name="kerberos-adm" method="table" conf="3"/>
68
+ </port>
69
+ <port protocol="tcp" portid="2381">
70
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
71
+ <service name="compaq-https" method="table" conf="3"/>
72
+ </port>
73
+ <port protocol="tcp" portid="2920">
74
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
75
+ <service name="roboeda" method="table" conf="3"/>
76
+ </port>
77
+ <port protocol="tcp" portid="5000">
78
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
79
+ <service name="upnp" method="table" conf="3"/>
80
+ </port>
81
+ <port protocol="tcp" portid="6669">
82
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
83
+ <service name="irc" method="table" conf="3"/>
84
+ <script id="irc-info" output="Unable to open connection"/>
85
+ </port>
86
+ <port protocol="tcp" portid="7496">
87
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
88
+ <service name="unknown" method="table" conf="3"/>
89
+ </port>
90
+ <port protocol="tcp" portid="7920">
91
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
92
+ <service name="unknown" method="table" conf="3"/>
93
+ </port>
94
+ <port protocol="tcp" portid="9929">
95
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
96
+ <service name="nping-echo" method="table" conf="3"/>
97
+ </port>
98
+ <port protocol="tcp" portid="10778">
99
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
100
+ <service name="unknown" method="table" conf="3"/>
101
+ </port>
102
+ <port protocol="tcp" portid="31337">
103
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
104
+ <service name="Elite" method="table" conf="3"/>
105
+ </port>
106
+ <port protocol="tcp" portid="42510">
107
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
108
+ <service name="caerpc" method="table" conf="3"/>
109
+ </port>
110
+ <port protocol="tcp" portid="44176">
111
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
112
+ <service name="unknown" method="table" conf="3"/>
113
+ </port>
114
+ <port protocol="tcp" portid="49163">
115
+ <state state="open" reason="syn-ack" reason_ttl="64"/>
116
+ <service name="unknown" method="table" conf="3"/>
117
+ </port>
118
+ </ports>
119
+ <times srtt="23838" rttvar="2863" to="100000"/>
120
+ </host>
121
+ <taskbegin task="NSE" time="1470376192"/>
122
+ <taskend task="NSE" time="1470376192"/>
123
+ <runstats>
124
+ <finished time="1470376192" timestr="Fri Aug 5 01:49:52 2016" elapsed="11.13" summary="Nmap done at Fri Aug 5 01:49:52 2016; 1 IP address (1 host up) scanned in 11.13 seconds" exit="success"/>
125
+ <hosts up="1" down="0" total="1"/>
126
+ </runstats>
127
+ </nmaprun>
@@ -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>