Python Scapy 递归 DNS 查询

Python Scapy a Recursive DNS Query

我正在尝试使用 Python scapy 创建递归 DNS 查询数据包,以展示开放式 DNS 解析器上的放大漏洞。以下是数据包:

p = IP(src=srcIP,dst=destIP) / UDP(sport=53,dport=53) / DNS(qd=DNSQR(qname="isc.org", qtype="ANY"))
send(p)

但是,回复没有显示任何放大。事实上,响应的大小小于发送的数据包。

我上面的数据包结构是否正确?如何使其成为递归查询?

您的数据包是正确的,应该可以使用。我刚刚查看了Google的public DNS服务器8.8.8.8,我发送的数据包长53字节,得到的答案是107。

"recursion desired"位在Scapy中默认是激活的(可以输入DNS().rd勾选returns1),这里就不用多做了。

我能看到的唯一奇怪的事情是你正在使用源端口 53,一些防火墙可能会过滤源端口 < 1024 的数据包。你可以尝试使用随机源端口,看看它是否更好。