我刚刚阅读了这篇关于DNScaching中毒的文章 ,虽然我明白了,但我是否正确地说,当服务器位于使用地址或端口受限的锥形NAT的路由器后面时,DNScaching中毒是不可能的?
没有。
在caching中毒攻击中,攻击者会欺骗来自真实域名服务器的响应。 一个伪造的响应,成功毒害recurser的caching具有正确的源IP,正确的端口信息和正确的查询ID – NAT设备将转发这样的数据包到服务器上。
NAT设备上的源端口随机化(而不是每个查询都来自UDP 53)都会为攻击者提供一些额外的复杂性来克服,但是在一个攻击中,您要强制NAT转换以保持不变的查询,翻译将保持原样 – 源端口只需要被猜测一次,而不是每一个查询。
recurser的DNS过程中的源端口随机化对于这种攻击的半正式防护来说是非常必要的。
基本上,据我所知,这个攻击通过提供错误的响应比真正的服务器提供了正确的答案更快。 问题是有一些攻击者不知道的东西,除非他能像查看端口号那样访问查询包。 这意味着攻击者需要尝试所有可能的组合。 一些devise缺陷,如单一或顺序的源端口,使得尝试更less的组合。
防火墙的问题在于防火墙需要将正确的响应传递回查询发起者。 因此,如果它正在执行NAT和/或无状态防火墙,则会将传出的DNS查询分组端口logging到NAT和/或连接表中。 当响应数据包到达并匹配端口时,无论是真实的还是虚假的,它都将被传递或者去除。
那么这取决于,如果你可以相信任何你发送一个包,也许是的。 但是,也有可能的,因为他仍然能够发送欺骗性IP的包。 他将从中发送的IP将是一个可以与之通信的IP,恶意IP将仅位于数据包的内容中。 (如果我正确理解这一点)