dnsspoof 不欺骗(请求并转发真实的 DNS 数据包)

信息安全 欺骗 ARP欺骗 dns 欺骗
2021-08-26 00:23:55

我试图使用dnsspoof,但它没有按预期工作。这些是我遵循的步骤:

  1. 将内核中的 IP 转发设置为 1
  2. arpspoof -i eth0 -t 192.168.1.39 -r 192.168.1.1arpspoof -i eth0 -t 192.168.1.1 -r 192.168.1.39检查arp -a并有效
  3. 使用以下命令创建 file.txt: 137.222.0.38 *.hello.com
  4. dnsspoof -i eth0 -f file.txt

192.168.1.39从我浏览到的受害者计算机www.hello.com,它被重定向到真实站点。输出dnsspoof为:

dnsspoof: listening on eth0 [udp dst port 53 and not src 192.168.1.35]
192.168.1.39.1113 > 8.8.8.8.53:  3864+ A? www.hello.com
192.168.1.39.1113 > 8.8.8.8.53:  3864+ A? www.hello.com

我已经检查过了Wireshark,似乎受害者正在接收来自同一个 IP 的响应,路由器 MAC(第一个)和攻击者 MAC(第二个)。我已经刷新了 DNS 并尝试了新的请求,尽管理论上这不是必需的。我的问题是:

1)为什么这不起作用?有人建议使用iptables来阻止来自路由器的数据包,但它自己dnsspoof不这样做似乎很奇怪,而且我检查过的教程(1234都不需要这一步。此外,我无法获得正确的iptables规则来使其正常工作。

2)许多教程似乎没有dnsspoof使用arpspoof. 后者真的有必要吗?我提到是因为曾经(偶然)DNS 欺骗似乎在另一台没有“arpspoofed”的计算机上工作。

3)如何dnsspoof工作?只是通过侦听整个 LAN 中的 DNS 请求,然后将解析发送回来?


编辑

使用该iptables命令iptables -D FORWARD --match string --algo kmp --hex-string '|68 65 6c 6c 6f|' --jump DROP不查询路由器,只发送欺骗的 DNS。然而,受害者浏览器永远保持加载状态,最后它说它无法访问该站点(?)。如果没有iptables命令,我可以看到请求是如何进行的:

victim --> attacker --> router 并回答: router --> attacker --> victim

就在这之后,攻击者向受害者发送了两倍的欺骗 DNS。同样,我仍然对这种行为感到困惑,并且还没有回答我的三个问题中的任何一个。我有点相信(2)的答案是dnsspoof欺骗了整个网络,但前提是你之前做过arpspoof,你才能保证欺骗的数据包会在合法数据包之前到达受害者。但是,就我而言,这不起作用,因为请愿书已转发。


编辑

这是在另一个网络 (10.10.10.0) 上具有相同示例的网络捕获。首先转发合法的 DNS,然后再转发欺骗的 DNS。在此示例中,两个响应中间还有其他请愿书,但我经常一个接一个地收到数据包。

网络捕获

2个回答

尝试安装libpcap0.8libpcap-dev. 有一个错误,这应该修复它,尽管它对我不起作用。我在平板电脑上使用 kali 和 Linux 部署,但存在很多问题。

我不是很熟悉,但是:

arpspoof 将使您的受害者到路由器(它是 DNS 解析器,或用于路由到 DNS 解析器)的流量通过攻击者的 PC。

然后 dnsspoof 将酌情拦截该流量和医生响应。

如果受害者仍然收到来自路由器的响应,则表明您的 arpspoof 没有完全工作。