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

📄 mssql_version.nasl

📁 漏洞扫描源码,可以扫描linux,windows,交换机路由器
💻 NASL
字号:
## modified by Michael Scheidell SECNAP Network security# to poll the smb registry (udp ping returned wrong info)## modified by Tenable Network Security to get file version# to reduce false possitive (registry key is not allways correct)## Supercedes MS02-034 MS02-020 MS02-007 MS01-060 MS01-032 MS00-092 MS00-048#            MS00-041 MS00-014 MS01-041### CAN-2002-0056, CAN-2002-0154, CAN-2002-0624, # CAN-2002-0641, CAN-2002-0642  CVE-2001-0879# CVE-2000-0603  CAN-2000-1082  CAN-2000-1083# CAN-2000-1084  CAN-2000-1085  CAN-2001-0509# CAN-2000-1086	       if(description){ script_id(11217); script_bugtraq_id(1292, 2030, 2042, 2043, 2863, 3733, 4135, 4847, 5014, 5205); script_version ("$Revision: 1315 $"); name["english"] = "Microsoft's SQL Version Query"; script_name(english:name["english"]);  script_cve_id("CAN-2000-1081", "CVE-2000-0202", "CVE-2000-0485", 	       "CAN-2000-1087", "CAN-2000-1088", "CAN-2002-0982", 	       "CAN-2001-0542", "CVE-2001-0344" );	        if(defined_func("script_xref"))script_xref(name:"IAVA", value:"2002-B-0004");   desc["english"] = "The plugin attempts a smb connection to read version fromthe registry key SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersionto determine the Version of SQL and Service Pack the hostis running.Some versions may allow remote access, denial of serviceattacks, and the ability of a hacker to run code of theirchoice.Risk factor : HighSolution : Apply current service packs and hotfixes"; script_description(english:desc["english"]); summary["english"] = "Microsoft's SQL Version Query"; script_summary(english:summary["english"]); script_category(ACT_GATHER_INFO); script_copyright(english:"This script is Copyright (C) 2003 John Lampe"); family["english"] = "Windows"; script_family(english:family["english"]); script_dependencies("netbios_name_get.nasl",                     "smb_login.nasl", "smb_registry_access.nasl",		     "mssqlserver_detect.nasl"); script_require_keys("SMB/transport", "SMB/name", "SMB/login",                     "SMB/password", "SMB/registry_full_access"); script_require_ports(139, 445, 1433, "Services/mssql"); exit(0);}mssql_port = get_kb_item("Services/mssql");if(!mssql_port)mssql_port = 1433;# versions culled from http://www.sqlsecurity.comversion[0] = "8.00.760";  desc[0] = "2000 SP3   ";version[1] = "8.00.679";  desc[1] = "2000 SP2+Q316333   ";version[2] = "8.00.667";  desc[2] = "2000 SP2+8/14 fix  ";version[3] = "8.00.665";  desc[3] = "2000 SP2+8/8 fix  ";version[4] = "8.00.655";  desc[4] = "2000 SP2+7/24 fix  ";version[5] = "8.00.650";  desc[5] = "2000 SP2+Q322853   ";version[6] = "8.00.608";  desc[6] = "2000 SP2+Q319507   ";version[7] = "8.00.604";  desc[7] = "2000 SP2+3/29 fix  ";version[8] = "8.00.578";  desc[8] = "2000 SP2+Q317979   ";version[9] = "8.00.561";  desc[9] = "2000 SP2+1/29 fix  ";version[10] = "8.00.534";  desc[10] = "2000 SP2.01   ";version[11] = "8.00.532";  desc[11] = "2000 SP2   ";version[12] = "8.00.475";  desc[12] = "2000 SP1+1/29 fix  ";version[13] = "8.00.452";  desc[13] = "2000 SP1+Q308547   ";version[14] = "8.00.444";  desc[14] = "2000 SP1+Q307540/307655   ";version[15] = "8.00.443";  desc[15] = "2000 SP1+Q307538   ";version[16] = "8.00.428";  desc[16] = "2000 SP1+Q304850   ";version[17] = "8.00.384";  desc[17] = "2000 SP1   ";version[18] = "8.00.287";  desc[18] = "2000 No SP+Q297209  ";version[19] = "8.00.250";  desc[19] = "2000 No SP+Q291683  ";version[20] = "8.00.249";  desc[20] = "2000 No SP+Q288122  ";version[21] = "8.00.239";  desc[21] = "2000 No SP+Q285290  ";version[22] = "8.00.233";  desc[22] = "2000 No SP+Q282416  ";version[23] = "8.00.231";  desc[23] = "2000 No SP+Q282279  ";version[24] = "8.00.226";  desc[24] = "2000 No SP+Q278239  ";version[25] = "8.00.225";  desc[25] = "2000 No SP+Q281663  ";version[26] = "8.00.223";  desc[26] = "2000 No SP+Q280380  ";version[27] = "8.00.222";  desc[27] = "2000 No SP+Q281769  ";version[28] = "8.00.218";  desc[28] = "2000 No SP+Q279183  ";version[29] = "8.00.217";  desc[29] = "2000 No SP+Q279293/279296  ";version[30] = "8.00.211";  desc[30] = "2000 No SP+Q276329  ";version[31] = "8.00.210";  desc[31] = "2000 No SP+Q275900  ";version[32] = "8.00.205";  desc[32] = "2000 No SP+Q274330  ";version[33] = "8.00.204";  desc[33] = "2000 No SP+Q274329  ";version[34] = "8.00.194";  desc[34] = "2000 No SP  ";version[35] = "8.00.190";  desc[35] = "2000 Gold, no SP ";version[36] = "8.00.100";  desc[36] = "2000 Beta 2  ";version[37] = "8.00.078";  desc[37] = "2000 EAP5   ";version[38] = "8.00.047";  desc[38] = "2000 EAP4   ";version[39] = "7.00.1077";  desc[39] = "7.0 SP4+Q316333   ";version[40] = "7.00.1063";  desc[40] = "7.0 SP4   ";version[41] = "7.00.1004";  desc[41] = "7.0 SP3+Q304851   ";version[42] = "7.00.996";  desc[42] = "7.0 SP3 + hotfix ";version[43] = "7.00.978";  desc[43] = "7.0 SP3+Q285870   ";version[44] = "7.00.977";  desc[44] = "7.0 SP3+Q284351   ";version[45] = "7.00.970";  desc[45] = "7.0 SP3+Q283837/282243   ";version[46] = "7.00.961";  desc[46] = "7.0 SP3   ";version[47] = "7.00.921";  desc[47] = "7.0 SP2+Q283837   ";version[48] = "7.00.919";  desc[48] = "7.0 SP2+Q282243   ";version[49] = "7.00.918";  desc[49] = "7.0 SP2+Q280380   ";version[50] = "7.00.917";  desc[50] = "7.0 SP2+Q279180   ";version[51] = "7.00.910";  desc[51] = "7.0 SP2+Q275901   ";version[52] = "7.00.905";  desc[52] = "7.0 SP2+Q274266   ";version[53] = "7.00.889";  desc[53] = "7.0 SP2+Q243741   ";version[54] = "7.00.879";  desc[54] = "7.0 SP2+Q281185   ";version[55] = "7.00.857";  desc[55] = "7.0 SP2+Q260346   ";version[56] = "7.00.842";  desc[56] = "7.0 SP2   ";version[57] = "7.00.835";  desc[57] = "7.0 SP2 Beta  ";version[58] = "7.00.776";  desc[58] = "7.0 SP1+Q258087   ";version[59] = "7.00.770";  desc[59] = "7.0 SP1+Q252905   ";version[60] = "7.00.745";  desc[60] = "7.0 SP1+Q253738   ";version[61] = "7.00.722";  desc[61] = "7.0 SP1+Q239458   ";version[62] = "7.00.699";  desc[62] = "7.0 SP1   ";version[63] = "7.00.689";  desc[63] = "7.0 SP1 Beta  ";version[64] = "7.00.677";  desc[64] = "7.0 MSDE O2K Dev ";version[65] = "7.00.662";  desc[65] = "7.0 Gold+Q232707   ";version[66] = "7.00.658";  desc[66] = "7.0 Gold+Q244763   ";version[67] = "7.00.657";  desc[67] = "7.0 Gold+Q229875   ";version[68] = "7.00.643";  desc[68] = "7.0 Gold+Q220156   ";version[69] = "7.00.623";  desc[69] = "7.0 Gold, no SP ";version[70] = "7.00.583";  desc[70] = "7.0 RC1   ";version[71] = "7.00.517";  desc[71] = "7.0 Beta 3  ";version[72] = "7.00.416";  desc[72] = "7.0 SP5a   ";version[73] = "7.00.415";  desc[73] = "7.0 SP5 ** BAD **";version[74] = "7.00.339";  desc[74] = "7.0 SP4 + y2k ";version[75] = "7.00.297";  desc[75] = "7.0 SP4 + SBS ";version[76] = "7.00.281";  desc[76] = "7.0 SP4   ";version[77] = "7.00.259";  desc[77] = "7.0 SP3 + SBS ";version[78] = "7.00.258";  desc[78] = "7.0 SP3   ";version[79] = "7.00.252";  desc[79] = "7.0 SP3 ** BAD **";version[80] = "7.00.240";  desc[80] = "7.0 SP2   ";version[81] = "7.00.213";  desc[81] = "7.0 SP1   ";version[82] = "7.00.201";  desc[82] = "7.0 No SP  ";version[83] = "7.00.198";  desc[83] = "7.0 Beta 1  ";version[84] = "7.00.151";  desc[84] = "7.0 SP3   ";version[85] = "7.00.139";  desc[85] = "7.0 SP2   ";version[86] = "7.00.124";  desc[86] = "7.0 SP1   ";version[87] = "7.00.121";  desc[87] = "7.0 No SP  ";version[88] = "6.50.479";  desc[88] = "6.5 Post SP5a  ";version[89] = "6.50.464";  desc[89] = "6.5 SP5a+Q275483   ";version[90] = "6.50.416";  desc[90] = "6.5 SP5a   ";version[91] = "6.50.415";  desc[91] = "6.5 Bad SP5  ";version[92] = "6.50.339";  desc[92] = "6.5 Y2K Hotfix  ";version[93] = "6.50.297";  desc[93] = "6.5 Site Server 3 ";version[94] = "6.50.281";  desc[94] = "6.5 SP4   ";version[95] = "6.50.259";  desc[95] = "6.5 SBS only  ";version[96] = "6.50.258";  desc[96] = "6.5 SP3   ";version[97] = "6.50.252";  desc[97] = "6.5 Bad SP3  ";version[98] = "6.50.240";  desc[98] = "6.5 SP2   ";version[99] = "6.50.213";  desc[99] = "6.5 SP1   ";version[100] = "6.50.201";  desc[100] = "6.5 Gold   ";version[101] = "6.00.151";  desc[101] = "6.0 SP3   ";version[102] = "6.00.139";  desc[102] = "6.0 SP2   ";version[103] = "6.00.124";  desc[103] = "6.0 SP1   ";version[104] = "6.00.121";  desc[104] = "6.0 No SP  ";## The script code starts here#include("smb_nt.inc");function GetRealFileVersion(socket, uid, tid, fid){ local_var i, fsize, data, off, tmp, version, v, len, tab; fsize = smb_get_file_size(socket:socket, uid:uid, tid:tid, fid:fid); if  ( fsize < 180224 ) 	off = 0; else 	off = fsize - 180224; for ( i = 0 ; off < fsize ; i ++ ) {   tmp = ReadAndX(socket:soc, uid:uid, tid:tid, fid:fid, count:16384, off:off);   if (!tmp) return NULL;   info = strstr (tmp, 'V\x00S\x00_\x00V\x00E\x00R\x00S\x00I\x00O\x00N\x00_\x00I\x00N\x00F\x00O\x00');   if ( strlen (info) >= 0x35 )   {     tab[0] = ord(info[0x1E+22]) + ord(info[0x1E+23])*256;     tab[1] = ord(info[0x1E+20]) + ord(info[0x1E+21])*256;     tab[2] = ord(info[0x1E+18]) + ord(info[0x1E+19])*256;     tab[3] = ord(info[0x1E+16]) + ord(info[0x1E+17])*256;     if (tab[1] == 0)       return string (tab[0], ".00.", tab[2]);     else       return string (tab[0], ".", tab[1], ".", tab[2]);   }   off += 16384; } return NULL;}port    =  kb_smb_transport();if(!port) port = 139;rootfile = registry_get_sz(key:"SOFTWARE\Microsoft\MSSQLServer\SQLServerAgent\SubSystems", item:"CmdExec");if(rootfile){ share = ereg_replace(pattern:"([A-Z]):.*", replace:"\1$", string:rootfile); exe =  ereg_replace(pattern:"[A-Z]:(.*\.(DLL|dll)).*", replace:"\1", string:rootfile); name 	=  kb_smb_name(); login	=  kb_smb_login(); pass  	=  kb_smb_password(); domain 	=  kb_smb_domain(); if(!get_port_state(port))exit(0); soc = open_sock_tcp(port); if(!soc) break; if ( port == 139 ) {  r = smb_session_request(soc:soc, remote:name);  if(!r) break; } prot = smb_neg_prot(soc:soc); if(!prot) break; r = smb_session_setup(soc:soc, login:login, password:pass, domain:domain, prot:prot); if(!r) break; uid = session_extract_uid(reply:r); r = smb_tconx(soc:soc, name:name, uid:uid, share:share); tid = tconx_extract_tid(reply:r); if(!tid) break; fid = OpenAndX(socket:soc, uid:uid, tid:tid, file:exe); if(fid) {  value = GetRealFileVersion(socket:soc, uid:uid, tid:tid, fid:fid);  set_kb_item(name:"mssql/SQLVersion",value:value); }}  key = "SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\CurrentVersion";item = "CSDVersion";if (!value){ value = registry_get_sz(key:key, item:item); if(!value)value = registry_get_sz(key:key, item:"CurrentVersion"); if(!value)exit(0); set_kb_item(name:"mssql/SQLVersion",value:value);}for (i=0; version[i] ; i = i + 1) { if ( version[i] >< value ) {  myret = string("The server is running MS SQL ", desc[i], value,"\n");  if( (i == 0) || (i == 39) )  {   security_note(port:mssql_port, data:myret);   exit(0);  }  if (i < 39)    myret = string(myret,"but needs ", desc[0],"due to security flaws\n");  else    myret = string(myret,"but needs ", desc[39],"due to security flaws\n");  security_hole(port:mssql_port, data:myret);  exit(0); }}

⌨️ 快捷键说明

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