dradis-nmap 3.18.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,27 @@
1
+ # Nmap plugin for Dradis
2
+
3
+ [![Build Status](https://secure.travis-ci.org/dradis/dradis-nmap.png?branch=master)](http://travis-ci.org/dradis/dradis-nmap) [![Code Climate](https://codeclimate.com/github/dradis/dradis-nmap.png)](https://codeclimate.com/github/dradis/dradis-nmap.png)
4
+
5
+ Upload Nmap files into Dradis.
6
+
7
+ The add-on requires [Dradis CE](https://dradisframework.org/) > 3.0, or [Dradis Pro](https://dradisframework.com/pro/).
8
+
9
+
10
+ ## More information
11
+
12
+ See the Dradis Framework's [README.md](https://github.com/dradis/dradisframework/blob/master/README.md)
13
+
14
+
15
+ ## Contributing
16
+
17
+ See the Dradis Framework's [CONTRIBUTING.md](https://github.com/dradis/dradisframework/blob/master/CONTRIBUTING.md)
18
+
19
+
20
+ ## License
21
+
22
+ Dradis Framework and all its components are released under [GNU General Public License version 2.0](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html) as published by the Free Software Foundation and appearing in the file LICENSE included in the packaging of this file.
23
+
24
+
25
+ ## Feature requests and bugs
26
+
27
+ Please use the [Dradis Framework issue tracker](https://github.com/dradis/dradis-ce/issues) for add-on improvements and bug reports.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,34 @@
1
+ $:.push File.expand_path('../lib', __FILE__)
2
+ require 'dradis/plugins/nmap/version'
3
+ version = Dradis::Plugins::Nmap::VERSION::STRING
4
+
5
+ # Describe your gem and declare its dependencies:
6
+ Gem::Specification.new do |spec|
7
+ spec.platform = Gem::Platform::RUBY
8
+ spec.name = 'dradis-nmap'
9
+ spec.version = version
10
+ spec.summary = 'Nmap add-on for the Dradis Framework.'
11
+ spec.description = 'This add-on allows you to upload and parse output produced from Nmap web server scanner into Dradis.'
12
+
13
+ spec.license = 'GPL-2'
14
+
15
+ spec.authors = ['Daniel Martin']
16
+ spec.email = ['etd@nomejortu.com']
17
+ spec.homepage = 'http://dradisframework.org'
18
+
19
+ spec.files = `git ls-files`.split($\)
20
+ spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
21
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
22
+
23
+ # By not including Rails as a dependency, we can use the gem with different
24
+ # versions of Rails (a sure recipe for disaster, I'm sure), which is needed
25
+ # until we bump Dradis Pro to 4.1.
26
+ # s.add_dependency 'rails', '~> 4.1.1'
27
+ spec.add_dependency 'dradis-plugins', '~> 3.6'
28
+ spec.add_dependency 'ruby-nmap', '~> 0.7'
29
+
30
+ spec.add_development_dependency 'bundler'
31
+ spec.add_development_dependency 'rake', '~> 10.0'
32
+ spec.add_development_dependency 'rspec-rails'
33
+ spec.add_development_dependency 'combustion', '~> 0.5.2'
34
+ end
@@ -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,78 @@
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
+ if attribute == 'tunnel'
45
+ @nmap_object.service.try(:ssl?) ? 'ssl' : 'n/a'
46
+ else
47
+ @nmap_object.service.try(attribute) || 'n/a'
48
+ end
49
+ end
50
+ else
51
+ @nmap_object.try(name) || 'n/a'
52
+ end
53
+ end
54
+
55
+ def host_service_table
56
+ ports = []
57
+ # Build up a Services table with all the available information about each
58
+ # individual port.
59
+ @nmap_object.each_port do |port|
60
+ port_info = ''
61
+ port_info << "| #{port.number} | #{port.protocol} | #{port.state} (#{port.reason}) |"
62
+ if (srv = port.service)
63
+ port_info << " #{srv.try('name') || ''} |"
64
+ port_info << " #{srv.try('product') || ''} |"
65
+ port_info << " #{srv.try('version') || ''} |"
66
+ else
67
+ port_info << " | | |"
68
+ end
69
+ port_info << "\n"
70
+ ports << port_info
71
+ end
72
+ ports.join
73
+ end
74
+
75
+ end
76
+ end
77
+ end
78
+ 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 = 18
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,80 @@
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
+ service = {
47
+ port: port.number,
48
+ protocol: port.protocol.to_s,
49
+ state: port.state.to_s,
50
+ reason: port.reason,
51
+ name: port.try(:service).try(:name),
52
+ product: port.try(:service).try(:product),
53
+ tunnel: port.try(:service).try(:ssl?) ? 'ssl' : 'n/a',
54
+ version: port.try(:service).try(:version),
55
+ source: :nmap,
56
+ }
57
+
58
+ # Node#set_service will store these under
59
+ # Node#properties[:service_extras]:
60
+ port.scripts.each { |k, v| service[k] = v } if port.try(:scripts)
61
+
62
+ host_node.set_service(service)
63
+
64
+ # HACK: patch in a `host` method to `Nmap::Port`
65
+ # so we can use it in the template:
66
+ port.class.module_eval { attr_accessor :host }
67
+ port.host = host.ip
68
+
69
+ # Add a note with the port information
70
+ port_text = template_service.process_template(template: 'port', data: port)
71
+ content_service.create_note(
72
+ text: port_text,
73
+ node: host_node)
74
+ end
75
+
76
+ host_node.save
77
+ end
78
+ end
79
+ end
80
+ 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,23 @@
1
+ class NmapTasks < Thor
2
+ include Rails.application.config.dradis.thor_helper_module
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
+
10
+ def upload(file_path)
11
+ require 'config/environment'
12
+
13
+ unless File.exists?(file_path)
14
+ $stderr.puts "** the file [#{file_path}] does not exist"
15
+ exit(-1)
16
+ end
17
+
18
+ detect_and_set_project_scope
19
+
20
+ importer = Dradis::Plugins::Nmap::Importer.new(task_options)
21
+ importer.import(file: file_path)
22
+ end
23
+ 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>