使用Pcap和C进行DNS查找

时间:2011-10-09 19:58:14

标签: dns

我正在尝试使用Pcap库和C代码执行DNS攻击。目前我可以:1。读取DNS查询2.根据DNS查询,创建DNS答案并注入恶意IP。 3.将虚假响应注入网络。

使用Wireshark时,我可以看到我的数据包已成功注入网络。然而,IP地址没有改变,即在ns查询时,它表示“连接超时;无法访问服务器”。相反,它接受来自DNS服务器的实际响应。

知道为什么这不起作用?我哪里可能出错?

3 个答案:

答案 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校验和字段 - 如果不正确,您的数据包可能永远不会达到预期受害者计算机的更高级别。