【发布时间】:2018-04-20 10:55:51
【问题描述】:
我一直在我的本地 LAN 上试验 ARP 欺骗。 现在,我想尝试用 C 编写一个简单的嗅探器,但我有一些问题:
- 如果 ARP 欺骗成功,我的 NIC 将接收并且不会丢弃具有我的 MAC 地址(第 2 层)但 DST IP(第 3 层)不是我的数据包。我可以使用什么样的套接字来接收这些数据包?我认为某种 RAW 套接字,但一个例子或一个很好的参考将不胜感激。
- 有没有办法(抛出 C)将我的 NIC 置于混杂模式以强制它接收具有不同 MAC 的数据包?
【问题讨论】:
-
混杂模式支持是 NIC 驱动程序/FW 的专有功能。请参阅产品文档。
-
呃,不,这不正确。虽然 NIC 在细节上有所不同,但几乎每个 NIC 都支持混杂模式,并且有启用它的标准机制,无需查看 NIC 文档。我将从
libpcap(tcpdump.org) 开始。您可能最终需要直接使用AF_PACKET套接字进行更高级的操作,但不仅仅是嗅探流量。
标签: linux sockets ip arp raw-sockets