我正在尝试使用Pcap库和C代码执行DNS攻击。目前我可以:1。读取DNS查询2.根据DNS查询,创建DNS答案并注入恶意IP。 3.将虚假响应注入网络。
使用Wireshark时,我可以看到我的数据包已成功注入网络。然而,IP地址没有改变,即在ns查询时,它表示“连接超时;无法访问服务器”。相反,它接受来自DNS服务器的实际响应。
知道为什么这不起作用?我哪里可能出错?
答案 0 :(得分:2)
确保交易ID匹配。另外,根据客户端的不同,您可能需要欺骗源IP地址。根据RFC 1035,TTL可能很重要,但如果它很小,即可以阻止超过1周。
另请注意,第一个有效的DNS响应是被接受的响应。因此,您需要确保回复速度比其他服务器快。
这也可以帮助http://www.sans.org/reading_room/whitepapers/dns/dns-spoofing-man-middle_1567。
答案 1 :(得分:0)
您生成的数据包可能有问题。您是否更新了所需的标志并设置了正确的部分?并正确复制交易ID? 在创建新答案之前,您可以尝试捕获真实答案并进行修改。
作为旁注,我建议使用Python进行此练习,编写更简单的方法; - )
答案 2 :(得分:0)
首先,请确保您的虚假服务器可以对直接发送给它的数据包做出响应,这样就不必首先“赢得比赛”。
然后,您可以使用简单的dig
命令来确保您实际上符合DNS协议规范。
除了这里提到的其他内容之外,您还需要确保您的数据包在IP层也是一致的。如果您正在欺骗响应,则需要确保已正确计算IP校验和字段 - 如果不正确,您的数据包可能永远不会达到预期受害者计算机的更高级别。