[Paper-Review2]DNS Cache Poisoning Attack Resurrections with Side Channels
Github 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 在