使用 UNIX 进行简单的 ARP 中毒攻击?

使用 UNIX 进行简单的 ARP 中毒攻击?

我想知道如何使用 UNIX 命令(不使用 ettercap 或 arpspoof 或类似的东西)进行简单的 ARP 毒药攻击。我不关心将数据包转发到实际路由器,我只想丢弃它们。我听说它通过向想要知道路由器 MAC 地址的机器发送假的 arp 数据包来工作。如何尽可能简单地做到这一点?

答案1

由于 Linux 和 BSD(包括 OS X)存在分歧,因此在特定类 Unix 操作系统上执行此操作的说明也存在分歧。以下是一些针对 OS X 的说明。

  1. 找到您的路由器的 IP 地址,也许可以通过运行netstat -rnaf inet并查看列表顶部的“默认”路由来找到。
  2. 找到您的路由器的 MAC 地址,也许可以通过运行arp -an并查找您的路由器的 IP 地址来实现。
  3. 告诉你的网络接口使用路由器的 MAC 地址:
    sudo ifconfig en0 ether 00:11:22:33:44:55
  4. 希望它能奏效。如果没有专门用于 ARP 欺骗的工具,您只能听天由命,任由网络堆栈的 ARP 代码摆布。如果您的网络堆栈有现代 ARP 代码,如果已经有其他人使用该 MAC 地址(当然会有其他人:您的路由器),它可能不会尝试争夺该 MAC 地址。

我不知道有任何广泛部署的“内置”Unix命令行工具可让您伪造自定义ARP数据包。这就是人们安装其他命令(如arpspoof和)的原因ettercap

在 OS X 中,您可以通过 Berkeley Packet Filter 内核工具传输任意字节序列。只需open(2)一个/dev/bpfX设备,使用ioctl(2)它将其连接到像 这样的接口en0,然后向其中写入字节。每个单独的写入(即,在对 的单独调用中交接的每个字节缓冲区write(2))都作为数据包传输。但这有点超出您使用 shell 脚本可以轻松完成的范围。我认为大多数 Unix 老手都会使用一些 C 工具来做到这一点。但这基本上是重新实现其他一些著名 ARP 欺骗工具的关键功能,在现代 Unix 环境中,更容易告诉您的包管理器安装arpspoofettercap其他东西。

相关内容