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

📄 telnet_func.inc

📁 漏洞扫描源码,可以扫描linux,windows,交换机路由器
💻 INC
字号:
# -*- Fundamental -*-## (C) 2002 Michel Arboi <arboi@alussinan.org># $Revision: 1.8 $OPT_WILL 	= 0xfb;OPT_WONT 	= 0xfc;OPT_DO   	= 0xfd;OPT_DONT 	= 0xfe;OPT_SUBOPT 	= 0xfa;OPT_ENDSUBOPT 	= 0xf0;function get_telnet_banner(port){  local_var sb, banner, soc;  sb = string("telnet/banner/", port);  banner = get_kb_item(sb);  if (banner) return(banner);  soc = open_sock_tcp(port);  if(!soc) return (0);  banner = telnet_negotiate(socket:soc);  close(soc);  if(strlen(banner)){	if ( defined_func("replace_kb_item") )		replace_kb_item(name: sb, value: str_replace(find:raw_string(0), replace:'', string:banner));	else		set_kb_item(name: sb, value: str_replace(find:raw_string(0), replace:'', string:banner));	}  return(banner);}function telnet_negotiate(socket){ local_var opt, code, s, counter, counter2, buf, prev; counter = 0; while ( TRUE ) {  s   = recv(socket:socket, length:1, timeout:3);  if ( !strlen(s) ) break;  if ( ord(s[0]) != 0xff) buf += s;  else {   counter ++;   s  = recv(socket:socket, length:2);   if ( ord(s[0]) == OPT_DO ) send(socket:socket,data:raw_string(0xff, OPT_WONT) + s[1]);   if ( ord(s[0]) == OPT_WILL ) send(socket:socket,data:raw_string(0xff, OPT_DONT) + s[1]);   if ( ord(s[0]) == OPT_SUBOPT )	{	 # The remote telnet server is autistic :/	 prev = recv(socket:socket, length:1);         counter2 = 0;	 while ( ord(prev) != 0xff && ord(s[0]) != OPT_ENDSUBOPT )	   {	    prev = s; 	    # No timeout - the answer is supposed to be cached	    s    = recv(socket:socket, length:1, timeout:0);	    if ( ! strlen(s) ) return buf;	    counter2++;	    if ( counter2 >= 100 ) return buf;	   }	}     # Not necessary and may introduce endless loops   #if ( ord(s[0]) == OPT_DONT ) send(socket:socket,data:raw_string(0xff, OPT_WONT) + s[1]);   #if ( ord(s[0]) == OPT_WONT ) send(socket:socket,data:raw_string(0xff, OPT_DONT) + s[1]);  }  if ( counter >= 100 || strlen(buf) >= 4096 ) break; }  return buf;}function set_telnet_banner(port, banner){  local_var sb;  sb = string("telnet/banner/", port);  if ( defined_func("replace_kb_item") )	replace_kb_item(name: sb, value: str_replace(find:raw_string(0), replace:'', string:banner));  else	set_kb_item(name: sb, value: str_replace(find:raw_string(0), replace:'', string:banner));}

⌨️ 快捷键说明

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