ruby-nmap 0.9.3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.document +1 -0
- data/.editorconfig +11 -0
- data/.github/workflows/ruby.yml +31 -0
- data/ChangeLog.md +122 -67
- data/Gemfile +11 -5
- data/LICENSE.txt +1 -1
- data/README.md +88 -50
- data/Rakefile +8 -3
- data/UPGRADING.md +47 -0
- data/gemspec.yml +6 -6
- data/lib/nmap/command.rb +765 -0
- data/lib/nmap/version.rb +1 -1
- data/lib/nmap/xml/address.rb +38 -0
- data/lib/nmap/xml/cpe/url.rb +80 -0
- data/lib/nmap/xml/cpe.rb +47 -0
- data/lib/nmap/xml/hop.rb +22 -0
- data/lib/nmap/xml/host.rb +546 -0
- data/lib/nmap/xml/host_script.rb +26 -0
- data/lib/nmap/xml/hostname.rb +44 -0
- data/lib/nmap/xml/ip_id_sequence.rb +26 -0
- data/lib/nmap/xml/os.rb +131 -0
- data/lib/nmap/xml/os_class.rb +86 -0
- data/lib/nmap/xml/os_match.rb +22 -0
- data/lib/nmap/xml/port.rb +114 -0
- data/lib/nmap/xml/postscript.rb +26 -0
- data/lib/nmap/xml/prescript.rb +26 -0
- data/lib/nmap/xml/run_stat.rb +22 -0
- data/lib/nmap/xml/scan.rb +38 -0
- data/lib/nmap/xml/scan_task.rb +55 -0
- data/lib/nmap/xml/scanner.rb +22 -0
- data/lib/nmap/xml/script.rb +110 -0
- data/lib/nmap/xml/scripts.rb +33 -0
- data/lib/nmap/xml/sequence.rb +52 -0
- data/lib/nmap/xml/service.rb +172 -0
- data/lib/nmap/xml/status.rb +22 -0
- data/lib/nmap/xml/tcp_sequence.rb +48 -0
- data/lib/nmap/xml/tcp_ts_sequence.rb +26 -0
- data/lib/nmap/xml/traceroute.rb +73 -0
- data/lib/nmap/xml/uptime.rb +22 -0
- data/lib/nmap/xml.rb +46 -44
- data/ruby-nmap.gemspec +38 -83
- data/spec/command_spec.rb +726 -0
- data/spec/fixtures/down_host_scan.xml +16 -0
- data/spec/{local_scan.xml → fixtures/local_scan.xml} +1 -1
- data/spec/{scan.xml → fixtures/scan.xml} +1 -1
- data/spec/spec_helper.rb +2 -2
- data/spec/{address_spec.rb → xml/address_spec.rb} +2 -2
- data/spec/{cpe → xml/cpe}/url_spec.rb +1 -1
- data/spec/{cpe_examples.rb → xml/cpe_examples.rb} +1 -1
- data/spec/{hop_spec.rb → xml/hop_spec.rb} +2 -2
- data/spec/{host_script_spec.rb → xml/host_script_spec.rb} +2 -2
- data/spec/{host_spec.rb → xml/host_spec.rb} +12 -8
- data/spec/{hostname_spec.rb → xml/hostname_spec.rb} +2 -2
- data/spec/{ip_id_sequence_spec.rb → xml/ip_id_sequence_spec.rb} +3 -3
- data/spec/{os_class_spec.rb → xml/os_class_spec.rb} +3 -3
- data/spec/{os_match_spec.rb → xml/os_match_spec.rb} +2 -2
- data/spec/{os_spec.rb → xml/os_spec.rb} +3 -3
- data/spec/{port_spec.rb → xml/port_spec.rb} +10 -5
- data/spec/{postscript_spec.rb → xml/postscript_spec.rb} +2 -2
- data/spec/{prescript_spec.rb → xml/prescript_spec.rb} +2 -2
- data/spec/{run_stat_spec.rb → xml/run_stat_spec.rb} +2 -2
- data/spec/{scan_spec.rb → xml/scan_spec.rb} +2 -2
- data/spec/{scan_task_spec.rb → xml/scan_task_spec.rb} +6 -6
- data/spec/{scanner_spec.rb → xml/scanner_spec.rb} +3 -3
- data/spec/xml/script_spec.rb +137 -0
- data/spec/xml/scripts_examples.rb +19 -0
- data/spec/{sequence_examples.rb → xml/sequence_examples.rb} +1 -0
- data/spec/{service_spec.rb → xml/service_spec.rb} +31 -5
- data/spec/{status_spec.rb → xml/status_spec.rb} +4 -3
- data/spec/{tcp_sequence_spec.rb → xml/tcp_sequence_spec.rb} +3 -3
- data/spec/{tcp_ts_sequence_spec.rb → xml/tcp_ts_sequence_spec.rb} +3 -3
- data/spec/{traceroute_spec.rb → xml/traceroute_spec.rb} +3 -3
- data/spec/{uptime_spec.rb → xml/uptime_spec.rb} +2 -2
- data/spec/xml_spec.rb +93 -45
- metadata +78 -99
- data/.travis.yml +0 -14
- data/lib/nmap/address.rb +0 -34
- data/lib/nmap/cpe/url.rb +0 -78
- data/lib/nmap/cpe.rb +0 -45
- data/lib/nmap/hop.rb +0 -20
- data/lib/nmap/host.rb +0 -586
- data/lib/nmap/host_script.rb +0 -18
- data/lib/nmap/hostname.rb +0 -42
- data/lib/nmap/ip_id_sequence.rb +0 -24
- data/lib/nmap/os.rb +0 -127
- data/lib/nmap/os_class.rb +0 -82
- data/lib/nmap/os_match.rb +0 -18
- data/lib/nmap/port.rb +0 -99
- data/lib/nmap/postscript.rb +0 -16
- data/lib/nmap/prescript.rb +0 -16
- data/lib/nmap/program.rb +0 -102
- data/lib/nmap/run_stat.rb +0 -20
- data/lib/nmap/scan.rb +0 -34
- data/lib/nmap/scan_task.rb +0 -50
- data/lib/nmap/scanner.rb +0 -18
- data/lib/nmap/scripts.rb +0 -71
- data/lib/nmap/sequence.rb +0 -50
- data/lib/nmap/service.rb +0 -170
- data/lib/nmap/status.rb +0 -18
- data/lib/nmap/task.rb +0 -381
- data/lib/nmap/tcp_sequence.rb +0 -46
- data/lib/nmap/tcp_ts_sequence.rb +0 -22
- data/lib/nmap/traceroute.rb +0 -71
- data/lib/nmap/uptime.rb +0 -20
- data/spec/scripts_examples.rb +0 -35
- data/spec/task_spec.rb +0 -150
@@ -0,0 +1,16 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE nmaprun>
|
3
|
+
<?xml-stylesheet href="file:///usr/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
|
4
|
+
<!-- Nmap 7.93 scan initiated Thu Nov 3 05:44:42 2022 as: nmap -v -sS -oX spec/fixtures/down_host_scan.xml 225.0.0.1 -->
|
5
|
+
<nmaprun scanner="nmap" args="nmap -v -sS -oX spec/fixtures/down_host_scan.xml 225.0.0.1" start="1667479482" startstr="Thu Nov 3 05:44:42 2022" version="7.93" xmloutputversion="1.05">
|
6
|
+
<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"/>
|
7
|
+
<verbose level="1"/>
|
8
|
+
<debugging level="0"/>
|
9
|
+
<taskbegin task="ARP Ping Scan" time="1667479482"/>
|
10
|
+
<taskend task="ARP Ping Scan" time="1667479484" extrainfo="1 total hosts"/>
|
11
|
+
<host><status state="down" reason="no-response" reason_ttl="0"/>
|
12
|
+
<address addr="225.0.0.1" addrtype="ipv4"/>
|
13
|
+
</host>
|
14
|
+
<runstats><finished time="1667479484" timestr="Thu Nov 3 05:44:44 2022" summary="Nmap done at Thu Nov 3 05:44:44 2022; 1 IP address (0 hosts up) scanned in 1.47 seconds" elapsed="1.47" exit="success"/><hosts up="0" down="1" total="1"/>
|
15
|
+
</runstats>
|
16
|
+
</nmaprun>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<!DOCTYPE nmaprun PUBLIC "-//IDN nmap.org//DTD Nmap XML 1.04//EN" "https://svn.nmap.org/nmap/docs/nmap.dtd">
|
3
3
|
<?xml-stylesheet href="file:///usr/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
|
4
4
|
<!-- Nmap 6.45 scan initiated Thu Apr 16 20:12:47 2015 as: nmap -v -sS -A -O --script ssh2-enum-algos -oX spec/local_scan.xml 10.0.0.2 -->
|
5
|
-
<nmaprun scanner="nmap" args="nmap -v -sS -A -O --script ssh2-enum-algos -oX spec/local_scan.xml 10.0.0.2" start="1429240367" startstr="Thu Apr 16 20:12:47 2015" version="6.45" xmloutputversion="1.04">
|
5
|
+
<nmaprun scanner="nmap" args="nmap -v -sS -A -O --script ssh2-enum-algos -oX spec/fixtures/local_scan.xml 10.0.0.2" start="1429240367" startstr="Thu Apr 16 20:12:47 2015" version="6.45" xmloutputversion="1.04">
|
6
6
|
<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"/>
|
7
7
|
<verbose level="1"/>
|
8
8
|
<debugging level="0"/>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<!DOCTYPE nmaprun PUBLIC "-//IDN nmap.org//DTD Nmap XML 1.04//EN" "https://svn.nmap.org/nmap/docs/nmap.dtd">
|
3
3
|
<?xml-stylesheet href="file:///usr/bin/../share/nmap/nmap.xsl" type="text/xsl"?>
|
4
4
|
<!-- Nmap 6.45 scan initiated Fri Apr 17 13:23:10 2015 as: nmap -v -sS -sU -A -O --script ssh2-enum-algos,ssh-hostkey -oX spec/scan.xml scanme.nmap.org -->
|
5
|
-
<nmaprun scanner="nmap" args="nmap -v -sS -sU -A -O --script ssh2-enum-algos,ssh-hostkey -oX spec/scan.xml scanme.nmap.org" start="1429302190" startstr="Fri Apr 17 13:23:10 2015" version="6.45" xmloutputversion="1.04">
|
5
|
+
<nmaprun scanner="nmap" args="nmap -v -sS -sU -A -O --script ssh2-enum-algos,ssh-hostkey -oX spec/fixtures/scan.xml scanme.nmap.org" start="1429302190" startstr="Fri Apr 17 13:23:10 2015" version="6.45" xmloutputversion="1.04">
|
6
6
|
<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"/>
|
7
7
|
<scaninfo type="udp" protocol="udp" numservices="1000" services="2-3,7,9,13,17,19-23,37-38,42,49,53,67-69,80,88,111-113,120,123,135-139,158,161-162,177,192,199,207,217,363,389,402,407,427,434,443,445,464,497,500,502,512-515,517-518,520,539,559,593,623,626,631,639,643,657,664,682-689,764,767,772-776,780-782,786,789,800,814,826,829,838,902-903,944,959,965,983,989-990,996-1001,1007-1008,1012-1014,1019-1051,1053-1060,1064-1070,1072,1080-1081,1087-1088,1090,1100-1101,1105,1124,1200,1214,1234,1346,1419,1433-1434,1455,1457,1484-1485,1524,1645-1646,1701,1718-1719,1761,1782,1804,1812-1813,1885-1886,1900-1901,1993,2000,2002,2048-2049,2051,2148,2160-2161,2222-2223,2343,2345,2362,2967,3052,3130,3283,3296,3343,3389,3401,3456-3457,3659,3664,3702-3703,4000,4008,4045,4444,4500,4666,4672,5000-5003,5010,5050,5060,5093,5351,5353,5355,5500,5555,5632,6000-6002,6004,6050,6346-6347,6970-6971,7000,7938,8000-8001,8010,8181,8193,8900,9000-9001,9020,9103,9199-9200,9370,9876-9877,9950,10000,10080,11487,16086,16402,16420,16430,16433,16449,16498,16503,16545,16548,16573,16674,16680,16697,16700,16708,16711,16739,16766,16779,16786,16816,16829,16832,16838-16839,16862,16896,16912,16918-16919,16938-16939,16947-16948,16970,16972,16974,17006,17018,17077,17091,17101,17146,17184-17185,17205,17207,17219,17236-17237,17282,17302,17321,17331-17332,17338,17359,17417,17423-17424,17455,17459,17468,17487,17490,17494,17505,17533,17549,17573,17580,17585,17592,17605,17615-17616,17629,17638,17663,17673-17674,17683,17726,17754,17762,17787,17814,17823-17824,17836,17845,17888,17939,17946,17989,18004,18081,18113,18134,18156,18228,18234,18250,18255,18258,18319,18331,18360,18373,18449,18485,18543,18582,18605,18617,18666,18669,18676,18683,18807,18818,18821,18830,18832,18835,18869,18883,18888,18958,18980,18985,18987,18991,18994,18996,19017,19022,19039,19047,19075,19096,19120,19130,19140-19141,19154,19161,19165,19181,19193,19197,19222,19227,19273,19283,19294,19315,19322,19332,19374,19415,19482,19489,19500,19503-19504,19541,19600,19605,19616,19624-19625,19632,19639,19647,19650,19660,19662-19663,19682-19683,19687,19695,19707,19717-19719,19722,19728,19789,19792,19933,19935-19936,19956,19995,19998,20003-20004,20019,20031,20082,20117,20120,20126,20129,20146,20154,20164,20206,20217,20249,20262,20279,20288,20309,20313,20326,20359-20360,20366,20380,20389,20409,20411,20423-20425,20445,20449,20464-20465,20518,20522,20525,20540,20560,20665,20678-20679,20710,20717,20742,20752,20762,20791,20817,20842,20848,20851,20865,20872,20876,20884,20919,21000,21016,21060,21083,21104,21111,21131,21167,21186,21206-21207,21212,21247,21261,21282,21298,21303,21318,21320,21333,21344,21354,21358,21360,21364,21366,21383,21405,21454,21468,21476,21514,21524-21525,21556,21566,21568,21576,21609,21621,21625,21644,21649,21655,21663,21674,21698,21702,21710,21742,21780,21784,21800,21803,21834,21842,21847,21868,21898,21902,21923,21948,21967,22029,22043,22045,22053,22055,22105,22109,22123-22124,22341,22692,22695,22739,22799,22846,22914,22986,22996,23040,23176,23354,23531,23557,23608,23679,23781,23965,23980,24007,24279,24511,24594,24606,24644,24854,24910,25003,25157,25240,25280,25337,25375,25462,25541,25546,25709,25931,26407,26415,26720,26872,26966,27015,27195,27444,27473,27482,27707,27892,27899,28122,28369,28465,28493,28543,28547,28641,28840,28973,29078,29243,29256,29810,29823,29977,30263,30303,30365,30544,30656,30697,30704,30718,30975,31059,31073,31109,31189,31195,31335,31337,31365,31625,31681,31731,31891,32345,32385,32528,32768-32780,32798,32815,32818,32931,33030,33249,33281,33354-33355,33459,33717,33744,33866,33872,34038,34079,34125,34358,34422,34433,34555,34570,34577-34580,34758,34796,34855,34861-34862,34892,35438,35702,35777,35794,36108,36206,36384,36458,36489,36669,36778,36893,36945,37144,37212,37393,37444,37602,37761,37783,37813,37843,38037,38063,38293,38412,38498,38615,39213,39217,39632,39683,39714,39723,39888,40019,40116,40441,40539,40622,40708,40711,40724,40732,40805,40847,40866,40915,41058,41081,41308,41370,41446,41524,41638,41702,41774,41896,41967,41971,42056,42172,42313,42431,42434,42508,42557,42577,42627,42639,43094,43195,43370,43514,43686,43824,43967,44101,44160,44179,44185,44190,44253,44334,44508,44923,44946,44968,45247,45380,45441,45685,45722,45818,45928,46093,46532,46836,47624,47765,47772,47808,47915,47981,48078,48189,48255,48455,48489,48761,49152-49163,49165-49182,49184-49202,49204-49205,49207-49216,49220,49222,49226,49259,49262,49306,49350,49360,49393,49396,49503,49640,49968,50099,50164,50497,50612,50708,50919,51255,51456,51554,51586,51690,51717,51905,51972,52144,52225,52503,53006,53037,53571,53589,53838,54094,54114,54281,54321,54711,54807,54925,55043,55544,55587,56141,57172,57409-57410,57813,57843,57958,57977,58002,58075,58178,58419,58631,58640,58797,59193,59207,59765,59846,60172,60381,60423,61024,61142,61319,61322,61370,61412,61481,61550,61685,61961,62154,62287,62575,62677,62699,62958,63420,63555,64080,64481,64513,64590,64727,65024"/>
|
8
8
|
<verbose level="1"/>
|
data/spec/spec_helper.rb
CHANGED
@@ -8,7 +8,7 @@ include Nmap
|
|
8
8
|
|
9
9
|
RSpec.configure do |spec|
|
10
10
|
spec.before(:all) do
|
11
|
-
@xml = XML.open('spec/scan.xml')
|
12
|
-
@local_xml = XML.open('spec/local_scan.xml')
|
11
|
+
@xml = XML.open('spec/fixtures/scan.xml')
|
12
|
+
@local_xml = XML.open('spec/fixtures/local_scan.xml')
|
13
13
|
end
|
14
14
|
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'scripts_examples'
|
2
|
+
require 'xml/scripts_examples'
|
3
3
|
|
4
4
|
require 'nmap/xml'
|
5
|
-
require 'nmap/host'
|
5
|
+
require 'nmap/xml/host'
|
6
6
|
|
7
|
-
describe Host do
|
7
|
+
describe Nmap::XML::Host do
|
8
8
|
subject { @xml.hosts.first }
|
9
9
|
|
10
10
|
describe "#start_time" do
|
@@ -24,7 +24,7 @@ describe Host do
|
|
24
24
|
subject { super().uptime }
|
25
25
|
|
26
26
|
it "should return an Uptime object" do
|
27
|
-
expect(subject).to be_kind_of(Uptime)
|
27
|
+
expect(subject).to be_kind_of(Nmap::XML::Uptime)
|
28
28
|
end
|
29
29
|
|
30
30
|
it "should parse the seconds attribute" do
|
@@ -39,19 +39,19 @@ describe Host do
|
|
39
39
|
describe "#tcp_sequence" do
|
40
40
|
subject { super().tcp_sequence }
|
41
41
|
|
42
|
-
it { is_expected.to be_kind_of(TcpSequence) }
|
42
|
+
it { is_expected.to be_kind_of(Nmap::XML::TcpSequence) }
|
43
43
|
end
|
44
44
|
|
45
45
|
describe "#ip_ip_sequence" do
|
46
46
|
subject { super().ip_id_sequence }
|
47
47
|
|
48
|
-
it { is_expected.to be_kind_of(IpIdSequence) }
|
48
|
+
it { is_expected.to be_kind_of(Nmap::XML::IpIdSequence) }
|
49
49
|
end
|
50
50
|
|
51
51
|
describe "#tcp_ts_sequence" do
|
52
52
|
subject { super().tcp_ts_sequence }
|
53
53
|
|
54
|
-
it { is_expected.to be_kind_of(TcpTsSequence) }
|
54
|
+
it { is_expected.to be_kind_of(Nmap::XML::TcpTsSequence) }
|
55
55
|
end
|
56
56
|
|
57
57
|
describe "#status" do
|
@@ -67,6 +67,10 @@ describe Host do
|
|
67
67
|
eq('echo-reply').or \
|
68
68
|
eq('reset')
|
69
69
|
end
|
70
|
+
|
71
|
+
it "should parse the reason_ttl" do
|
72
|
+
expect(subject.reason_ttl).to be_kind_of(Integer)
|
73
|
+
end
|
70
74
|
end
|
71
75
|
|
72
76
|
let(:ipv4) { '45.33.32.156' }
|
@@ -145,7 +149,7 @@ describe Host do
|
|
145
149
|
subject { super().os }
|
146
150
|
|
147
151
|
it { is_expected.not_to be_nil }
|
148
|
-
it { is_expected.to be_kind_of(OS) }
|
152
|
+
it { is_expected.to be_kind_of(Nmap::XML::OS) }
|
149
153
|
end
|
150
154
|
|
151
155
|
describe "#ports" do
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'sequence_examples'
|
2
|
+
require 'xml/sequence_examples'
|
3
3
|
|
4
|
-
require 'nmap/ip_id_sequence'
|
4
|
+
require 'nmap/xml/ip_id_sequence'
|
5
5
|
|
6
|
-
describe IpIdSequence do
|
6
|
+
describe Nmap::XML::IpIdSequence do
|
7
7
|
subject { @xml.hosts.first.ip_id_sequence }
|
8
8
|
|
9
9
|
describe "#description" do
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'cpe_examples'
|
2
|
+
require 'xml/cpe_examples'
|
3
3
|
|
4
|
-
require 'nmap/os'
|
4
|
+
require 'nmap/xml/os'
|
5
5
|
require 'cgi'
|
6
6
|
|
7
|
-
describe OS do
|
7
|
+
describe Nmap::XML::OS do
|
8
8
|
subject { @xml.hosts.first.os.classes.first }
|
9
9
|
|
10
10
|
describe "#type" do
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
require 'nmap/os'
|
3
|
+
require 'nmap/xml/os'
|
4
4
|
require 'cgi'
|
5
5
|
|
6
|
-
describe OS do
|
6
|
+
describe Nmap::XML::OS do
|
7
7
|
subject { @xml.hosts.first.os }
|
8
8
|
|
9
9
|
describe "#classes" do
|
@@ -12,7 +12,7 @@ describe OS do
|
|
12
12
|
it { is_expected.not_to be_empty }
|
13
13
|
|
14
14
|
it "should return OSClass objects" do
|
15
|
-
expect(subject).to all(be_kind_of(OSClass))
|
15
|
+
expect(subject).to all(be_kind_of(Nmap::XML::OSClass))
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'scripts_examples'
|
2
|
+
require 'xml/scripts_examples'
|
3
3
|
|
4
|
-
require 'nmap/port'
|
4
|
+
require 'nmap/xml/port'
|
5
5
|
|
6
|
-
describe Port do
|
6
|
+
describe Nmap::XML::Port do
|
7
7
|
subject { @xml.hosts.first.ports.first }
|
8
8
|
|
9
9
|
describe "#protocol" do
|
@@ -30,16 +30,21 @@ describe Port do
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
+
describe "#reason_ttl" do
|
34
|
+
it "should parse the reason_ttl attribute" do
|
35
|
+
expect(subject.reason_ttl).to be_kind_of(Integer)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
33
39
|
describe "#service" do
|
34
40
|
subject { super().service }
|
35
41
|
|
36
42
|
it "should return a Service object" do
|
37
|
-
expect(subject).to be_kind_of(Service)
|
43
|
+
expect(subject).to be_kind_of(Nmap::XML::Service)
|
38
44
|
end
|
39
45
|
end
|
40
46
|
|
41
47
|
include_examples "#scripts"
|
42
|
-
include_examples "#script_data"
|
43
48
|
|
44
49
|
describe "#inspect" do
|
45
50
|
it "should include the number" do
|
@@ -1,19 +1,19 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'nmap/scan_task'
|
2
|
+
require 'nmap/xml/scan_task'
|
3
3
|
|
4
|
-
describe ScanTask do
|
4
|
+
describe Nmap::XML::ScanTask do
|
5
5
|
let(:name) { 'SYN Stealth Scan' }
|
6
6
|
let(:end_time) { Time.now }
|
7
7
|
let(:duration) { 10 }
|
8
8
|
let(:start_time) { end_time - duration }
|
9
|
-
let(:
|
9
|
+
let(:extra_info) { '1000 total ports' }
|
10
10
|
|
11
11
|
subject do
|
12
12
|
described_class.new(
|
13
13
|
name,
|
14
14
|
start_time,
|
15
15
|
end_time,
|
16
|
-
|
16
|
+
extra_info
|
17
17
|
)
|
18
18
|
end
|
19
19
|
|
@@ -28,8 +28,8 @@ describe ScanTask do
|
|
28
28
|
end
|
29
29
|
|
30
30
|
describe "#to_s" do
|
31
|
-
it "should include the start_time, name and
|
32
|
-
expect(subject.to_s).to eq("#{start_time}: #{name} (#{
|
31
|
+
it "should include the start_time, name and extra_info" do
|
32
|
+
expect(subject.to_s).to eq("#{start_time}: #{name} (#{extra_info})")
|
33
33
|
end
|
34
34
|
end
|
35
35
|
end
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'nmap/scanner'
|
2
|
+
require 'nmap/xml/scanner'
|
3
3
|
|
4
|
-
describe Scanner do
|
4
|
+
describe Nmap::XML::Scanner do
|
5
5
|
describe "#to_s" do
|
6
6
|
let(:name) { 'nmap' }
|
7
7
|
let(:version) { '6.01' }
|
8
8
|
let(:args) { 'nmap -v -sS -sU -A -O -oX spec/scan.xml scanme.nmap.org' }
|
9
|
-
let(:start_time) { Time.
|
9
|
+
let(:start_time) { Time.parse('Sat Jul 20 23:55:27 2013') }
|
10
10
|
|
11
11
|
subject do
|
12
12
|
described_class.new(
|
@@ -0,0 +1,137 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'nmap/xml/script'
|
3
|
+
|
4
|
+
describe Nmap::XML::Script do
|
5
|
+
let(:id) { 'ssh-hostkey' }
|
6
|
+
|
7
|
+
subject { @xml.hosts.first.ports.first.scripts[id] }
|
8
|
+
|
9
|
+
describe "#id" do
|
10
|
+
it "must return the 'id' attribute" do
|
11
|
+
expect(subject.id).to eq(id)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "#output" do
|
16
|
+
it "must return the 'output' attribute" do
|
17
|
+
expect(subject.output).to eq(
|
18
|
+
[
|
19
|
+
'',
|
20
|
+
' 1024 ac:00:a0:1a:82:ff:cc:55:99:dc:67:2b:34:97:6b:75 (DSA)',
|
21
|
+
'ssh-dss AAAAB3NzaC1kc3MAAACBAOe8o59vFWZGaBmGPVeJBObEfi1AR8yEUYC/Ufkku3sKhGF7wM2m2ujIeZDK5vqeC0S5EN2xYo6FshCP4FQRYeTxD17nNO4PhwW65qAjDRRU0uHFfSAh5wk+vt4yQztOE++sTd1G9OBLzA8HO99qDmCAxb3zw+GQDEgPjzgyzGZ3AAAAFQCBmE1vROP8IaPkUmhM5xLFta/xHwAAAIEA3EwRfaeOPLL7TKDgGX67Lbkf9UtdlpCdC4doMjGgsznYMwWH6a7Lj3vi4/KmeZZdix6FMdFqq+2vrfT1DRqx0RS0XYdGxnkgS+2g333WYCrUkDCn6RPUWR/1TgGMPHCj7LWCa1ZwJwLWS2KX288Pa2gLOWuhZm2VYKSQx6NEDOIAAACBANxIfprSdBdbo4Ezrh6/X6HSvrhjtZ7MouStWaE714ByO5bS2coM9CyaCwYyrE5qzYiyIfb+1BG3O5nVdDuN95sQ/0bAdBKlkqLFvFqFjVbETF0ri3v97w6MpUawfF75ouDrQ4xdaUOLLEWTso6VFJcM6Jg9bDl0FA0uLZUSDEHL',
|
22
|
+
' 2048 20:3d:2d:44:62:2a:b0:5a:9d:b5:b3:05:14:c2:a6:b2 (RSA)',
|
23
|
+
'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6afooTZ9mVUGFNEhkMoRR1Btzu64XXwElhCsHw/zVlIx/HXylNbb9+11dm2VgJQ21pxkWDs+L6+EbYyDnvRURTrMTgHL0xseB0EkNqexs9hYZSiqtMx4jtGNtHvsMxZnbxvVUk2dasWvtBkn8J5JagSbzWTQo4hjKMOI1SUlXtiKxAs2F8wiq2EdSuKw/KNk8GfIp1TA+8ccGeAtnsVptTJ4D/8MhAWsROkQzOowQvnBBz2/8ecEvoMScaf+kDfNQowK3gENtSSOqYw9JLOza6YJBPL/aYuQQ0nJ74Rr5vL44aNIlrGI9jJc2x0bV7BeNA5kVuXsmhyfWbbkB8yGd',
|
24
|
+
' 256 96:02:bb:5e:57:54:1c:4e:45:2f:56:4c:4a:24:b2:57 (ECDSA)',
|
25
|
+
'ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBMD46g67x6yWNjjQJnXhiz/TskHrqQ0uPcOspFrIYW382uOGzmWDZCFV8FbFwQyH90u+j0Qr1SGNAxBZMhOQ8pc='
|
26
|
+
].join($/)
|
27
|
+
)
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "#data" do
|
31
|
+
context "when the <script> contains named <table> XML elements" do
|
32
|
+
subject { @xml.hosts.first.ports.first.scripts['ssh2-enum-algos'] }
|
33
|
+
|
34
|
+
it "must return a Hash of Hashes" do
|
35
|
+
expect(subject.data).to eq(
|
36
|
+
{
|
37
|
+
'kex_algorithms' => %w[
|
38
|
+
curve25519-sha256@libssh.org
|
39
|
+
ecdh-sha2-nistp256
|
40
|
+
ecdh-sha2-nistp384
|
41
|
+
ecdh-sha2-nistp521
|
42
|
+
diffie-hellman-group-exchange-sha256
|
43
|
+
diffie-hellman-group-exchange-sha1
|
44
|
+
diffie-hellman-group14-sha1
|
45
|
+
diffie-hellman-group1-sha1
|
46
|
+
],
|
47
|
+
|
48
|
+
'server_host_key_algorithms' => %w[
|
49
|
+
ssh-rsa
|
50
|
+
ssh-dss
|
51
|
+
ecdsa-sha2-nistp256
|
52
|
+
ssh-ed25519
|
53
|
+
],
|
54
|
+
|
55
|
+
'encryption_algorithms' => %w[
|
56
|
+
aes128-ctr
|
57
|
+
aes192-ctr
|
58
|
+
aes256-ctr
|
59
|
+
arcfour256
|
60
|
+
arcfour128
|
61
|
+
aes128-gcm@openssh.com
|
62
|
+
aes256-gcm@openssh.com
|
63
|
+
chacha20-poly1305@openssh.com
|
64
|
+
aes128-cbc
|
65
|
+
3des-cbc
|
66
|
+
blowfish-cbc
|
67
|
+
cast128-cbc
|
68
|
+
aes192-cbc
|
69
|
+
aes256-cbc
|
70
|
+
arcfour
|
71
|
+
rijndael-cbc@lysator.liu.se
|
72
|
+
],
|
73
|
+
|
74
|
+
'mac_algorithms' => %w[
|
75
|
+
hmac-md5-etm@openssh.com
|
76
|
+
hmac-sha1-etm@openssh.com
|
77
|
+
umac-64-etm@openssh.com
|
78
|
+
umac-128-etm@openssh.com
|
79
|
+
hmac-sha2-256-etm@openssh.com
|
80
|
+
hmac-sha2-512-etm@openssh.com
|
81
|
+
hmac-ripemd160-etm@openssh.com
|
82
|
+
hmac-sha1-96-etm@openssh.com
|
83
|
+
hmac-md5-96-etm@openssh.com
|
84
|
+
hmac-md5
|
85
|
+
hmac-sha1
|
86
|
+
umac-64@openssh.com
|
87
|
+
umac-128@openssh.com
|
88
|
+
hmac-sha2-256
|
89
|
+
hmac-sha2-512
|
90
|
+
hmac-ripemd160
|
91
|
+
hmac-ripemd160@openssh.com
|
92
|
+
hmac-sha1-96
|
93
|
+
hmac-md5-96
|
94
|
+
],
|
95
|
+
|
96
|
+
'compression_algorithms' => %w[
|
97
|
+
none
|
98
|
+
zlib@openssh.com
|
99
|
+
]
|
100
|
+
}
|
101
|
+
)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
context "when the <script> contains unnamed <table> XML elements" do
|
106
|
+
subject { @xml.hosts.first.ports.first.scripts['ssh-hostkey'] }
|
107
|
+
|
108
|
+
it "must return an Array of Hashes" do
|
109
|
+
expect(subject.data).to eq(
|
110
|
+
[
|
111
|
+
{
|
112
|
+
'fingerprint' => 'ac00a01a82ffcc5599dc672b34976b75',
|
113
|
+
'key' => 'QUFBQUIzTnphQzFrYzNNQUFBQ0JBT2U4bzU5dkZXWkdhQm1HUFZlSkJPYkVmaTFBUjh5RVVZQy9VZmtrdTNzS2hHRjd3TTJtMnVqSWVaREs1dnFlQzBTNUVOMnhZbzZGc2hDUDRGUVJZZVR4RDE3bk5PNFBod1c2NXFBakRSUlUwdUhGZlNBaDV3ayt2dDR5UXp0T0UrK3NUZDFHOU9CTHpBOEhPOTlxRG1DQXhiM3p3K0dRREVnUGp6Z3l6R1ozQUFBQUZRQ0JtRTF2Uk9QOElhUGtVbWhNNXhMRnRhL3hId0FBQUlFQTNFd1JmYWVPUExMN1RLRGdHWDY3TGJrZjlVdGRscENkQzRkb01qR2dzem5ZTXdXSDZhN0xqM3ZpNC9LbWVaWmRpeDZGTWRGcXErMnZyZlQxRFJxeDBSUzBYWWRHeG5rZ1MrMmczMzNXWUNyVWtEQ242UlBVV1IvMVRnR01QSENqN0xXQ2ExWndKd0xXUzJLWDI4OFBhMmdMT1d1aFptMlZZS1NReDZORURPSUFBQUNCQU54SWZwclNkQmRibzRFenJoNi9YNkhTdnJoanRaN01vdVN0V2FFNzE0QnlPNWJTMmNvTTlDeWFDd1l5ckU1cXpZaXlJZmIrMUJHM081blZkRHVOOTVzUS8wYkFkQktsa3FMRnZGcUZqVmJFVEYwcmkzdjk3dzZNcFVhd2ZGNzVvdURyUTR4ZGFVT0xMRVdUc282VkZKY002Smc5YkRsMEZBMHVMWlVTREVITA==',
|
114
|
+
'type' => 'ssh-dss',
|
115
|
+
'bits' => '1024'
|
116
|
+
},
|
117
|
+
|
118
|
+
{
|
119
|
+
'fingerprint' => '203d2d44622ab05a9db5b30514c2a6b2',
|
120
|
+
'key' => 'QUFBQUIzTnphQzF5YzJFQUFBQURBUUFCQUFBQkFRQzZhZm9vVFo5bVZVR0ZORWhrTW9SUjFCdHp1NjRYWHdFbGhDc0h3L3pWbEl4L0hYeWxOYmI5KzExZG0yVmdKUTIxcHhrV0RzK0w2K0ViWXlEbnZSVVJUck1UZ0hMMHhzZUIwRWtOcWV4czloWVpTaXF0TXg0anRHTnRIdnNNeFpuYnh2VlVrMmRhc1d2dEJrbjhKNUphZ1NieldUUW80aGpLTU9JMVNVbFh0aUt4QXMyRjh3aXEyRWRTdUt3L0tOazhHZklwMVRBKzhjY0dlQXRuc1ZwdFRKNEQvOE1oQVdzUk9rUXpPb3dRdm5CQnoyLzhlY0V2b01TY2FmK2tEZk5Rb3dLM2dFTnRTU09xWXc5SkxPemE2WUpCUEwvYVl1UVEwbko3NFJyNXZMNDRhTklsckdJOWpKYzJ4MGJWN0JlTkE1a1Z1WHNtaHlmV2Jia0I4eUdk',
|
121
|
+
'type' => 'ssh-rsa',
|
122
|
+
'bits' => '2048'
|
123
|
+
},
|
124
|
+
|
125
|
+
{
|
126
|
+
'fingerprint' => '9602bb5e57541c4e452f564c4a24b257',
|
127
|
+
'key' => 'QUFBQUUyVmpaSE5oTFhOb1lUSXRibWx6ZEhBeU5UWUFBQUFJYm1semRIQXlOVFlBQUFCQkJNRDQ2ZzY3eDZ5V05qalFKblhoaXovVHNrSHJxUTB1UGNPc3BGcklZVzM4MnVPR3ptV0RaQ0ZWOEZiRndReUg5MHUrajBRcjFTR05BeEJaTWhPUThwYz0=',
|
128
|
+
'type' => 'ecdsa-sha2-nistp256',
|
129
|
+
'bits' => '256'
|
130
|
+
}
|
131
|
+
]
|
132
|
+
)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'rspec'
|
2
|
+
require 'nmap/xml/script'
|
3
|
+
|
4
|
+
shared_examples_for "#scripts" do
|
5
|
+
describe "#scripts" do
|
6
|
+
subject { super().scripts }
|
7
|
+
|
8
|
+
it { is_expected.to be_kind_of(Hash) }
|
9
|
+
it { is_expected.not_to be_empty }
|
10
|
+
|
11
|
+
it "should contain String keys" do
|
12
|
+
expect(subject.keys).to all(be_kind_of(String))
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should contain Nmap::XML::Script values" do
|
16
|
+
expect(subject.values).to all(be_kind_of(Nmap::XML::Script))
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,10 +1,10 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'cpe_examples'
|
2
|
+
require 'xml/cpe_examples'
|
3
3
|
|
4
4
|
require 'nmap/xml'
|
5
|
-
require 'nmap/service'
|
5
|
+
require 'nmap/xml/service'
|
6
6
|
|
7
|
-
describe Service do
|
7
|
+
describe Nmap::XML::Service do
|
8
8
|
let(:port) { @xml.host.open_ports.find { |port| port.number == 80 } }
|
9
9
|
|
10
10
|
subject { port.service }
|
@@ -16,8 +16,18 @@ describe Service do
|
|
16
16
|
end
|
17
17
|
|
18
18
|
describe "#ssl?" do
|
19
|
-
|
20
|
-
|
19
|
+
context "when the tunnel attribute equals 'ssl'" do
|
20
|
+
let(:port) { @xml.host.open_ports.find { |port| port.number == 31337 } }
|
21
|
+
|
22
|
+
it "must return true" do
|
23
|
+
expect(subject.ssl?).to be(true)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "otherwise" do
|
28
|
+
it "must return false" do
|
29
|
+
expect(subject.ssl?).to be(false)
|
30
|
+
end
|
21
31
|
end
|
22
32
|
end
|
23
33
|
|
@@ -69,6 +79,14 @@ describe Service do
|
|
69
79
|
end
|
70
80
|
end
|
71
81
|
|
82
|
+
describe "#fingerprint" do
|
83
|
+
let(:port) { @xml.host.open_ports.find { |port| port.number == 22 } }
|
84
|
+
|
85
|
+
it "should parse the servicefp attribute" do
|
86
|
+
expect(subject.fingerprint).to eq("SF-Port22-TCP:V=6.45%I=7%D=4/17%Time=55316FE1%P=x86_64-redhat-linux-gnu%r(NULL,29,\"SSH-2\\.0-OpenSSH_6\\.6\\.1p1\\x20Ubuntu-2ubuntu2\\r\\n\");")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
72
90
|
describe "#confidence" do
|
73
91
|
it "should parse the conf attribute" do
|
74
92
|
expect(subject.confidence).to be_between(0,10)
|
@@ -81,6 +99,14 @@ describe Service do
|
|
81
99
|
expect(subject.to_s).to be == "#{subject.product} #{subject.version}"
|
82
100
|
end
|
83
101
|
end
|
102
|
+
|
103
|
+
context "when #product and #version are nil" do
|
104
|
+
let(:port) { @xml.host.ports.find { |port| port.number == 68 } }
|
105
|
+
|
106
|
+
it "must return #name" do
|
107
|
+
expect(subject.to_s).to eq(subject.name)
|
108
|
+
end
|
109
|
+
end
|
84
110
|
end
|
85
111
|
|
86
112
|
it_should_behave_like "CPE"
|
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
-
require 'nmap/status'
|
2
|
+
require 'nmap/xml/status'
|
3
3
|
|
4
|
-
describe Status do
|
4
|
+
describe Nmap::XML::Status do
|
5
5
|
describe "#to_s" do
|
6
6
|
let(:state) { :up }
|
7
7
|
let(:reason) { 'syn-ack' }
|
8
|
+
let(:reason_ttl) { 100 }
|
8
9
|
|
9
|
-
subject { described_class.new(state,reason) }
|
10
|
+
subject { described_class.new(state,reason,reason_ttl) }
|
10
11
|
|
11
12
|
it "should return the state" do
|
12
13
|
expect(subject.to_s).to eq(state.to_s)
|