Bil*_*ray 5 security domain-name-system
我一直在阅读关于 kaminsky DNS 的错误,试图更好地了解它是如何工作的。我想我已经掌握了它的要点,但 Dan 提到了用于定位防火墙后面的 DNS 服务器的bailiwicks。
有人可以解释一下bailiwick 是什么,并举例说明如何使用它来定位防火墙后面的服务器以利用 kaminsky 漏洞吗?
正如 Mark Johnson 所提到的,DNS 服务器的辖区是它授权的域集。有一段时间,递归名称服务器接受来自权威名称服务器的域外数据。因此,foo.example 的权威名称服务器可以在他的回答中添加额外的数据,说明 www.bar.example 的 IP 地址,他被相信了。这是卡什普雷夫攻击的基础。长期以来,名称服务器不再相信域外数据,如RFC 2181 的第 5.4.1 节所指示。
该卡明斯基发作时不使用外的辖区数据,因此最近的名称服务器工作过。Luke Quinane 提到的 Linux Journal文章对此进行了很好的解释(但 Luke Quinane 的其余帖子,特别是关于防火墙的,是有问题的。)
关于防火墙,这主要是一个无关的问题。如果名称服务器想要接收其查询的答案,则它需要是可访问的,因此它是否具有防火墙或在其前面都没有关系:Kaminsky 攻击只需要一个通道,即 DNS 通道。
由于 Kaminsky 攻击发生在客户端机器将使用的名称服务器上,这些机器是否受防火墙保护并不重要。(一个很好的例子说明了为什么防火墙不是一个神奇的设备并且不能保护一切。)
Ehtyar发布的Linux Journal文章很好地解释了 bailiwick 是什么以及它与 DNS 的关系。基本上,额外的记录会添加到 DNS 响应中以帮助查找委托 DNS 服务器。引用文章中的例子:
$ dig @ns1.example.com www.example.com
;; ANSWER SECTION:
www.example.com. 120 IN A 192.168.1.10
;; AUTHORITY SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
;; ADDITIONAL SECTION:
ns1.example.com. 604800 IN A 192.168.2.20
ns2.example.com. 604800 IN A 192.168.3.30
Run Code Online (Sandbox Code Playgroud)
有关攻击的详细信息请参见 Dan 的幻灯片(参见幻灯片 24/25)。要攻击防火墙后面的服务器:
1.badguy.com
触发对攻击者控制的域(例如“ ”)的子域的查找。debian.org
”)。这会导致从目标到“ debian.org
”的 DNS 查询。security.debian.org
指向“ badguy.com
”的 IP 地址)。security.debian.org
”解析为坏人的地址。有很多方法可以让防火墙后面的服务器查找 IP 地址、内部客户端请求、解析服务器日志中的 IP 地址等。正如bortzmeyer提到的那样,防火墙在这次攻击中很大程度上无关紧要。