漏洞简介:
该漏洞为DNS 放大攻击,是 DDoS 攻击,攻击者利用 DNS 服务器中的漏洞将小查询转换为可能破坏目标服务器的更大负载。
在 NXNSAttack 的情况下,远程攻击者可以通过向易受攻击的解析器发送 DNS 查询来放大网络流量,而要查询的权威域名服务器由攻击者所控制。攻击者的服务器响应虚假域名服务器名称(NS记录)指向受害者 DNS 域,导致解析器生成对受害者 DNS 服务器的查询。攻击可导致放大系数超过 1620。
DNS解析过程:
假设从浏览器访问www.mircrosoft.com,需要去得到它的ip地址。首先是查看自己的浏览器缓存,再查看存根解析器(OS内)的缓存,如果有转发器,还会去查看转发器的缓存,再去查看递归解析器的缓存。①递归解析器向根域名服务器发出查询。②根域名服务器作出NS 响应,告诉.com域 的顶级域名服务器。③递归解析器接着向.com顶级域名服务器发出查询。④DNS顶级域名服务器 进行NS记录的响应,告诉microsoft.com 的权威域名服务器的地址。⑤DNS解析器向 权威域名服务器发出查询,权威域名服务器,作出A记录的响应。
具体解析过程,可看博客之前DNS的相关内容。
攻击原理:
1.攻击者作为客户端,向解析器发出查询rand123.sub.attacker.com 的ip地址
2.解析器向攻击者控制的权威域名服务器发出查询。
3.攻击者控制权威域名服务器,应答好多个rand x.vitcim.com 假冒的ns记录,指向受害者的域名。
4.解析器根据返回的ns记录向受害者权威域名服务器做出查询。大大占用受害者的资源,形成放大攻击,可造成DDOS攻击。
复现代码:
poc:https://github.com/sischkg/nxnsattack
防御措施:
在流量设备侧对DNS响应包中对满足如下条件的包进行拦截
- 含有大量的NS转发查询请求
- 复数指向同一服务器的二级/多级子域名请求
不响应非信任服务器的 DNS 查询结果
- 同传统的防护策略采用流量黑白名单进行