[Paper-Review2]DNS Cache Poisoning Attack Resurrections with Side Channels
Github link
link
Fragment needed based attack
1.公开的端口 攻击者使用自己的 IP 发送需要 ICMP 片段的消息。嵌入的 UDP 标头包含猜测的临时端口。 在片段需要的消息中,攻击者告诉解析器“前一条消息”(Linux 接受内部 ICMP 消息,只要内部源地址和端口正确)太大并显示攻击者设置的 MTU。解析器会将此路径 MTU(PMTU) 更改为攻击者提供的 MTU。攻击者会向解析器发送一个大于 MTU 的 PING。如果猜到的端口是正确的,回复就会被分片。如果错误,解析器将发回与 PING 相同字节的回复。 2.私密的端口 在此设置中,解析器将检查 4 元组以在连接中定位套接字。因此,目标IP应该是name server的IP。下一跳异常缓存对攻击者也是不可见的(看不到MTU是否改变),因为它会直接到name server。 linux哈希表中有2048个桶,每个桶是一个有5个槽的链表。密钥哈希函数是公开的并且有一个秘密。除非重新启动,否则秘密不会被更新。这里的一个策略是找到 5 个与权威名称服务器 IP 具有相同哈希值的不同 IP。另一种是猜测秘密(32位)。在第二种情况下,我们只需要在受害者解析器中为哈希函数找到 5 个与任何 IP 发生冲突的 IP。并通过输入 6 个 IP 在我们自己的环境中尝试不同的秘密。使它们散列到同一个桶中的秘密是解析器中使用的秘密的可能值。有了这个秘密,很容易找到5个与权威名称服务器具有相同哈希值的IP(其中一个IP应该在攻击者的控制之下)。攻击者首先将目的端口设置为自己的 IP,其余 4 个 IP 发送低 MTU 的植物数据包。然后攻击者将以权威名称服务器IP作为目标端口发送片段需要的消息。由于所有槽都被消耗,攻击者的 IP 将被替换为权威名称服务器 IP。然后,攻击者使用默认 MTU 发送验证 PING。如果回复发送回具有相同默认 MTU 的数据包,则攻击者成功。
Redirect based attack
攻击者向解析器发送 ICMP 重定向消息。 如果源端口与临时端口匹配,则解析器将更新其路由表并通过重定向消息中的网关将未来的数据包路由给攻击者。 网关配置为仅接受数据包。 然后,攻击者将向解析器发送验证 PING。 如果猜测的端口号正确,攻击者将不会收到任何响应。 否则,攻击者将收到来自解析器的验证回复。
全局浏览
攻击模式图
背景知识
详细请查看Github Repo
|