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

📄 find_service.c

📁 漏洞扫描源码,可以扫描linux,windows,交换机路由器
💻 C
📖 第 1 页 / 共 5 页
字号:
	/* Do NOT use plug_replace_key! */	plug_set_key(desc, "Services/wrapped", ARG_INT, (void *) port);}#endifstatic const char *port_to_name(int port){	/* Note: only includes services that are recognized by this plugin! */	switch (port) {		case 7:return "Echo";	case 19:		return "Chargen";	case 21:		return "FTP";	case 22:		return "SSH";	case 23:		return "Telnet";	case 25:		return "SMTP";	case 37:		return "Time";	case 70:		return "Gopher";	case 79:		return "Finger";	case 80:		return "HTTP";	case 98:		return "Linuxconf";	case 109:		return "POP2";	case 110:		return "POP3";	case 113:		return "AUTH";	case 119:		return "NNTP";	case 143:		return "IMAP";	case 220:		return "IMAP3";	case 443:		return "HTTPS";	case 465:		return "SMTPS";	case 563:		return "NNTPS";	case 593:		return "Http-Rpc-Epmap";	case 873:		return "Rsyncd";	case 901:		return "SWAT";	case 993:		return "IMAPS";	case 995:		return "POP3S";#if 0	case 1080:		return "SOCKS";#endif	case 1109:		return "KPOP";	/* ? */	case 2309:		return "Compaq Management Server";	case 2401:		return "CVSpserver";	case 3128:		return "Squid";	case 3306:		return "MySQL";	case 5000:		return "VTUN";	case 5432:		return "Postgres";	case 8080:		return "HTTP-Alt";	}	return NULL;}static voidmark_unknown_svc(desc, port, banner, trp)	struct arglist *desc;	int             port, trp;	const unsigned char *banner;{	char            tmp[1600], *norm = NULL;	/* Do NOT use plug_replace_key! */	plug_set_key(desc, "Services/unknown", ARG_INT, (void *) port);	snprintf(tmp, sizeof(tmp), "unknown/banner/%d", port);	plug_replace_key(desc, tmp, ARG_STRING, (char *) banner);}static voidmark_gnuserv(desc, port)	struct arglist *desc;	int             port;{	register_service(desc, port, "gnuserv");	post_note(desc, port, "gnuserv is running on this port");}static voidmark_iss_realsecure(desc, port)	struct arglist *desc;	int             port;{	register_service(desc, port, "issrealsecure");	post_note(desc, port, "ISS RealSecure is running on this port");}static voidmark_vmware_auth(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "vmware_auth");	snprintf(ban, sizeof(ban), "A VMWare authentication daemon is running on this port%s:\n%s",		 get_encaps_through(trp), buffer);	post_note(desc, port, ban);}static voidmark_interscan_viruswall(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "interscan_viruswall");	snprintf(ban, sizeof(ban), "An interscan viruswall is running on this port%s:\n%s",		 get_encaps_through(trp), buffer);	post_note(desc, port, ban);}static voidmark_ppp_daemon(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "pppd");	snprintf(ban, sizeof(ban), "A PPP daemon is running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}static voidmark_zebra_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "zebra");	snprintf(ban, sizeof(ban), "zebra/banner/%d", port);	plug_replace_key(desc, ban, ARG_STRING, buffer);	snprintf(ban, sizeof(ban), "A zebra daemon (bgpd or zebrad) is running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}static voidmark_ircxpro_admin_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "ircxpro_admin");	snprintf(ban, sizeof(ban), "An IRCXPro administrative server is running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}static voidmark_gnocatan_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "gnocatan");	snprintf(ban, sizeof(ban), "A gnocatan game server is running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}/* Thanks to Owell Crow */static voidmark_pbmaster_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "power-broker-master");	snprintf(ban, sizeof(ban), "A PowerBroker master server is running on this port%s:\n%s",		 get_encaps_through(trp), buffer);	post_note(desc, port, ban);}/* Thanks to Paulo Jorge */static voidmark_dictd_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "dicts");	snprintf(ban, sizeof(ban), "A dictd server is running on this port%s:\n%s",		 get_encaps_through(trp), buffer);	post_note(desc, port, ban);}/* Thanks to Tony van Lingen */static voidmark_pnsclient(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "pNSClient");	snprintf(ban, sizeof(ban), "A Nagios plugin (pNSClient.exe) is running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}/* Thanks to Jesus D. Munoz */static voidmark_veritas_backup(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "VeritasNetBackup");	snprintf(ban, sizeof(ban), "VeritasNetBackup is running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}static voidmark_pblocald_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "power-broker-master");	snprintf(ban, sizeof(ban), "A PowerBroker locald server is running on this port%s:\n%s",		 get_encaps_through(trp), buffer);	post_note(desc, port, ban);}voidmark_jabber_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[255];	register_service(desc, port, "jabber");	snprintf(ban, sizeof(ban), "jabber daemon seems to be running on this port%s",		 get_encaps_through(trp));	post_note(desc, port, ban);}static voidmark_avotus_mm_server(desc, port, buffer, trp)	struct arglist *desc;	int             port, trp;	char           *buffer;{	char            ban[512];	register_service(desc, port, "avotus_mm");	snprintf(ban, sizeof(ban), "An avotus 'mm' server is running on this port%s:\n%s",		 get_encaps_through(trp), buffer);	post_note(desc, port, ban);}static voidmark_socks_proxy(desc, port, ver)	struct arglist *desc;	int             port, ver;{	char            str[256];	snprintf(str, sizeof(str), "socks%d", ver);	register_service(desc, port, str);	snprintf(str, sizeof(str), "A SOCKS%d proxy is running on this port. ", ver);	post_note(desc, port, str);}static voidmark_direct_connect_hub(desc, port, trp)	struct arglist *desc;	int             port, trp;{	char            str[256];	register_service(desc, port, "DirectConnectHub");	snprintf(str, sizeof(str), "A Direct Connect Hub is running on this port%s", get_encaps_through(trp));	post_note(desc, port, str);}/* * We determine if the 4 bytes we received look like a date. We * accept clocks desynched up to 3 years; * * MA 2002-09-09 : time protocol (RFC 738) returns number of seconds since * 1900-01-01, while time() returns nb of sec since 1970-01-01. * The difference is 2208988800 seconds. * By the way, although the RFC is imprecise, it seems that the returned * integer is in "network byte order" (i.e. big endian) */#define MAX_SHIFT	(3*365*86400)#define DIFF_1970_1900	2208988800Ustatic intmay_be_time(time_t * rtime){#ifndef ABS#define ABS(x) (((x) < 0) ? -(x):(x))#endif	time_t          now = time(NULL);	int             rt70 = ntohl(*rtime) - DIFF_1970_1900;	if (ABS(now - rt70) < MAX_SHIFT)		return 1;	else		return 0;}/* * References: * IANA assigned number * * http://www.tivoli.com/support/public/Prodman/public_manuals/td/ITAME/GC32-0848-00/en_US/HTML/amwebmst09.htm * http://java.sun.com/webservices/docs/1.0/tutorial/doc/WebAppSecurity6.html * http://support.dell.com/support/edocs/software/smsom/4.4/en/ug/security.htm */static intknown_ssl_port(int port){	switch (port) {		case 261:	/* Nsiiops = IIOP name service over tls/ssl */		case 443:	/* HTTPS */		case 448:	/* ddm-ssl */		case 465:	/* SMTPS */		case 563:	/* NNTPS */		case 585:	/* imap4-ssl (not recommended) */		case 614:	/* SSLshell */		case 636:	/* LDAPS */		case 684:	/* Corba IIOP SSL */		case 902:	/* VMWare auth daemon */		case 989:	/* FTPS data */		case 990:	/* FTPS control */		case 992:	/* telnets */		case 993:	/* IMAPS */		case 994:	/* IRCS */		case 995:	/* POP3S */		case 1241:	/* Nessus */	        case 1311:	/* Dell OpenManage */		case 2050:	/* Domino */		case 2381:	/* Compaq Web Management (HTTPS) */		case 2478:	/* SecurSight Authentication Server (SSL) */		case 2479:	/* SecurSight Event Logging Server (SSL) */		case 2482:	/* Oracle GIOP SSL */		case 2484:	/* Oracle TTC SSL */		case 2679:	/* Sync Server SSL */		case 3077:	/* Orbix 2000 Locator SSL */		case 3078:	/* Orbix 2000 Locator SSL */		case 3269:	/* Microsoft Global Catalog w/ LDAP/SSL */		case 3471:	/* jt400 SSL */		case 5007:	/* WSM Server SSL */		case 7002:	/* WebLogic */		case 7135:	/* IBM Tivoli Access Manager runtime				 * environment - SSL Server Port */		case 8443:	/* Tomcat */		case 9443:	/* Websphere internal secure server */		case 10000:	/* WebMin+SSL */		case 19201:	/* SilkPerformer agent (secure connection) */		return 1;	default:		return 0;	}	/* NOTREACHED */}#ifndef MSG_DONTWAIT/* From http://www.kegel.com/dkftpbench/nonblocking.html */static intsetNonblocking(int fd){	int             flags;	/* If they have O_NONBLOCK, use the Posix way to do it */#if defined(O_NONBLOCK)	/*	 * Fixme: O_NONBLOCK is defined but broken on SunOS 4.1.x and AIX	 * 3.2.5.	 */	if (-1 == (flags = fcntl(fd, F_GETFL, 0)))		flags = 0;	return fcntl(fd, F_SETFL, flags | O_NONBLOCK);#else	/* Otherwise, use the old way of doing it */	flags = 1;	return ioctl(fd, FIONBIO, &flags);#endif}#endifstatic int plugin_do_run(desc, h, test_ssl)	struct arglist *desc;	struct arglist *h;	int             test_ssl;{	char           *head = "Ports/tcp/";	u_short         unknown[65535];

⌨️ 快捷键说明

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