⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ip_protocol_scan.nasl

📁 漏洞扫描源码,可以扫描linux,windows,交换机路由器
💻 NASL
字号:
# This plugin was written by Michel Arboi <mikhail@nessus.org># It is released under the GNU Public Licence (GPLv2)## References: http://www.iana.org/assignments/protocol-numbers#if(description){  script_id(14788);  script_version ("$Revision: 38 $");  name["english"] = "IP protocols scan";  script_name(english:name["english"]);   desc["english"] = "This plugin detects the protocols understood by the remote IP stack.Risk factor : None";  script_description(english:desc["english"]);   summary["english"] = "Scans IP protocols";  script_summary(english:summary["english"]);  script_category(ACT_GATHER_INFO);   script_copyright(english:"This script is Copyright (C) 2004 Michel Arboi");  family["english"] = "Misc.";  family["francais"] = "Divers";  script_family(english:family["english"], francais:family["francais"]);  script_timeout(900);	# So far, I've run in less than 10 minutes  script_require_keys("Settings/ThoroughTests");  exit(0);}include("global_settings.inc");include("network_func.inc");if (! thorough_tests) exit(0);	# Too long / possibly unsafeif (islocalhost()) exit(0); # pcap problemss = this_host();d = get_host_ip();f = "icmp and src " +  d + " and dst " + s + " and icmp[0]=3 and icmp[1]=2";reject_nb = 0;if (debug_level && defined_func("unixtime"))  start_time = unixtime();function test_proto(proto, timeout){  local_var ip, id, j, hl, r, icmp, orig, pr;  id = rand() & 0xFFFF;  ip = forge_ip_packet(ip_v: 4, ip_hl: 5, ip_tos: 0, ip_p: proto, ip_id: id, 	ip_ttl: 64, ip_off: 0, ip_src: s, ip_dst: d, ip_len: 20);  for (j = 0; j < 3; j ++)  {   r = send_packet(ip, pcap_active: TRUE, pcap_filter: f, pcap_timeout: timeout);   if (isnull(r)) return 0;   hl = ord(r[0]) & 0xF; hl *= 4;   icmp = substr(r, hl);   orig = substr(icmp, 8);   pr = ord(orig[9]);   if (pr == proto)    return 1;   else    if (debug_level) display("ip_protocol_scan(", d, "): ", "\tpr=", pr, "\tproto=", proto, "\n");  } return 0;}tictac = 1;old_reject_nb = -1; reject_nb = 0;for (j = 0; old_reject_nb != reject_nb; j ++){ old_reject_nb = reject_nb; for (p = 255; p >= 0 ; p --) {  if (! rejected[p])   if (test_proto(proto: p, timeout: tictac + j))   {    rejected[p] = 1;    reject_nb ++;    if (debug_level > 1) display("ip_protocol_scan(", d, "): ", p, ' rejected - pass # ', j, '\n');   }  if (reject_nb == 0)  {   # if (thorough_tests && tictac < 4) tictac ++;   if (p < 240)   {    if (debug_level) display("ip_protocol_scan(", d, "): no answer on 16 first protocols. Exiting\n");    exit(0);   }  } } if (debug_level) display("ip_protocol_scan(", d, "): reject_nb=", reject_nb, "\tj=", j, "\n");}if (reject_nb == 0) exit(0);   report = 'The following IP protocols are accepted on this host:\n';# Do not use name[i++]="..."; as there are holes in this listname[0]   = "HOPOPT";name[1]   = "ICMP";name[2]   = "IGMP";name[3]   = "GGP";name[4]   = "IP";name[5]   = "ST";name[6]   = "TCP";name[7]   = "CBT";name[8]   = "EGP";name[9]   = "IGP";name[10]  = "BBN-RCC-MON";name[11]  = "NVP-II";name[12]  = "PUP";name[13]  = "ARGUS";name[14]  = "EMCON";name[15]  = "XNET";name[16]  = "CHAOS";name[17]  = "UDP";name[18]  = "MUX";name[19]  = "DCN-MEAS";name[20]  = "HMP";name[21]  = "PRM";name[22]  = "XNS-IDP";name[23]  = "TRUNK-1";name[24]  = "TRUNK-2";name[25]  = "LEAF-1";name[26]  = "LEAF-2";name[27]  = "RDP";name[28]  = "IRTP";name[29]  = "ISO-TP4";name[30]  = "NETBLT";name[31]  = "MFE-NSP";name[32]  = "MERIT-INP";name[33]  = "SEP";name[34]  = "3PC";name[35]  = "IDPR";name[36]  = "XTP";name[37]  = "DDP";name[38]  = "IDPR-CMTP";name[39]  = "TP++";name[40]  = "IL";name[41]  = "IPv6";name[42]  = "SDRP";name[43]  = "IPv6-Route";name[44]  = "IPv6-Frag";name[45]  = "IDRP";name[46]  = "RSVP";name[47]  = "GRE";name[48]  = "MHRP";name[49]  = "BNA";name[50]  = "ESP";name[51]  = "AH";name[52]  = "I-NLSP";name[53]  = "SWIPE";name[54]  = "NARP";name[55]  = "MOBILE";name[56]  = "TLSP";name[57]  = "SKIP";name[58]  = "IPv6-ICMP";name[59]  = "IPv6-NoNxt";name[60]  = "IPv6-Opts";#    61                 any host internal protocol           [IANA]name[62]  = "CFTP";#    63                 any local network                    [IANA]name[64]  = "SAT-EXPAK";name[65]  = "KRYPTOLAN";name[66]  = "RVD";name[67]  = "IPPC";#    68                 any distributed file system          [IANA]name[69]  = "SAT-MON";name[70]  = "VISA";name[71]  = "IPCV";name[72]  = "CPNX";name[73]  = "CPHB";name[74]  = "WSN";name[75]  = "PVP";name[76]  = "BR-SAT-MON";name[77]  = "SUN-ND";name[78]  = "WB-MON";name[79]  = "WB-EXPAK";name[80]  = "ISO-IP";name[81]  = "VMTP";name[82]  = "SECURE-VMTP";name[83]  = "VINES";name[84]  = "TTP";name[85]  = "NSFNET-IGP";name[86]  = "DGP";name[87]  = "TCF";name[88]  = "EIGRP";name[89]  = "OSPFIGP";name[90]  = "Sprite-RPC";name[91]  = "LARP";name[92]  = "MTP";name[93]  = "AX.25";name[94]  = "IPIP";name[95]  = "MICP";name[96]  = "SCC-SP";name[97]  = "ETHERIP";name[98]  = "ENCAP";#    99                 any private encryption scheme        [IANA]name[100] = "GMTP";name[101] = "IFMP";name[102] = "PNNI";name[103] = "PIM";name[104] = "ARIS";name[105] = "SCPS";name[106] = "QNX";name[107] = "A/N";	# Active Networks                    [Braden]name[108] = "IPComp";name[109] = "SNP";name[110] = "Compaq-Peer";name[111] = "IPX-in-IP";name[112] = "VRRP";name[113] = "PGM";#    114                 any 0-hop protocol                   [IANA]name[115] = "L2TP";	#        Layer Two Tunneling Protocol        [Aboba]name[116] = "DDX";	#	       D-II Data Exchange (DDX)           [Worley] name[117] = "IATP";	#      Interactive Agent Transfer Protocol  [Murphy]name[118] = "STP";	#         Schedule Transfer Protocol            [JMP]name[119] = "SRP";	#	       SpectraLink Radio Protocol       [Hamilton]	name[120] = "UTI";	#      UTI                                 [Lothberg]	name[121] = "SMP";	#      Simple Message Protocol               [Ekblad]name[122] = "SM";	#       SM                                 [Crowcroft]name[123] = "PTP";	#      Performance Transparency Protocol      [Welzl]name[124] = "ISIS-over-IPv4";	#                             [Przygienda]name[125] = "FIRE";	#                                        [Partridge]name[126] = "CRTP";	#     Combat Radio Transport Protocol      [Sautter]name[127] = "CRUDP";	#    Combat Radio User Datagram           [Sautter]name[128] = "SSCOPMCE";	#                                        [Waber]name[129] = "IPLT";	#                                         [Hollbach]name[130] = "SPS";	#    Secure Packet Shield                  [McIntosh] name[131] = "PIPE";	#   Private IP Encapsulation within IP       [Petri]name[132] = "SCTP";	#   Stream Control Transmission Protocol   [Stewart]name[133] = "FC";name[134] = "RSVP-E2E-IGNORE";	# [RFC3175]name[135] = "Mobility Header";	# [RFC3775]name[136] = "UDPLite";		# [RFC3828]name[137] = "MPLS-in-IP";	# [RFC-ietf-mpls-in-ip-or-gre-08.txt]# 138-252 Unassigned# 253     Use for experimentation and testing           [RFC3692] # 254     Use for experimentation and testing           [RFC3692] # 255                 Reserved                             [IANA]for (i = 0; i < 256; i ++){  if (! rejected[i])  {   if (name[i]) report = strcat(report, i , '\t', name[i], '\n');   else         report = strcat(report, i , '\n');   set_kb_item(name: 'IPProtocol/'+i, value: 1);  }}security_note(port: 0, data: report);set_kb_item(name: "Host/protocol_scanned", value: 1);if (debug_level && defined_func("unixtime"))  display("ip_protocol_scan(", d, ") ran in ", unixtime() - start_time, " s\n");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -