DOS+DNS放大攻击工具编写

本文介绍了一种利用DOS+DNS放大攻击的原理和实现方式,通过QT框架构建用户界面,用户可输入参数调节攻击强度。程序通过构造IP伪首部、IP头部、UDP头部和DNS报文,伪造源IP发送DNS请求,实现DNS放大攻击。实验结果显示,攻击强度可调,能观察到明显的流量放大效应。
摘要由CSDN通过智能技术生成

1.前言:

 

     DOS攻击原理:发送大量的数据包消耗目标主机资源,使其无法正常工作。

     DNS放大攻击的原理伪造DNS数据包,向DNS服务器发送域名查询报文了,而DNS服务器返回的应答报文则会发送给被攻击主机。放大体现在请求DNS回复的类型为ANY,攻击者向服务器请求的包长度为69个字节,而服务器向被攻击主机回复的ANY类型DNS包长度为535字节,大约放大了7倍。

     本次实验实现的是DOS+DNS放大攻击,在传输层使用UDP协议,应用层使用DNS协议,程序有界面,接受用户输入,用户还能调节发包的速度改变攻击强度。

 

2.程序框图:

      

    

3.DOS+DNS简易界面的设计

 

 

添加5个文本框,用来接受用户输入的被攻击的ip,发送的端口,服务器ip,发送接口名称,查询的域名。

添加一个滑块用来控制攻击的强度。

添加两个按钮控制攻击的开始和停止。

 

核心代码是attack按钮槽函数的实现,接受输入,并调用攻击函数。

 

void Widget::on_attack_pushButton_clicked()

{

    QByteArray dstipstr = ui->dst_ip_Edit->text().toLatin1();

    QByteArray ifnamestr =  ui->ifname_Edit->text().toLatin1();

    QByteArray dnsipstr = ui->dns_Edit->text().toLatin1();

    QByteArray domainstr = ui->Domain_Edit->text().toLatin1();

dosattack=

new DosAttack(dstipstr,ifnamestr,ui->port_spinBox->value(),dnsipstr,ui->AttackLEVEL_Slider->value(),domainstr);

    dosattack->start();

}

 

 

4.构造发送DNS报文

 

 

因为我们要伪造源IP,发送DNS请求,所以我们的报文应该从IP头部开始构造,一直到UDP报文的数据部分。这里分为两个部分,IP头部和UDP头部作为一个部分,UDP的数据即DNS报文作为一个部分。

 

 

 

(1)IP伪首部+IP头部+UDP

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值