如何发现网卡在局域网中处于混杂模式?

信息安全 网络 审计
2021-08-17 00:05:23

如何发现网卡在局域网中处于混杂模式?

4个回答

DNS 测试- 许多数据包嗅探工具执行 IP 地址到名称查找以提供 DNS 名称来代替 IP 地址。要对此进行测试,您必须将您的网卡置于混杂模式并将数据包发送到网络上,以针对虚假主机。如果发现来自虚假主机的任何名称查找,则可能是嗅探器正在对执行查找的主机执行操作。

ARP 测试- 在混杂模式下,网卡驱动程序检查 MAC 地址是否为网卡的单播数据包,但仅检查 MAC 地址的第一个八位字节与值 0xff 以确定数据包是广播还是不是。注意广播包的地址是ff:ff:ff:ff:ff:ff。为了测试这个漏洞,如果你发送一个 MAC 地址为 ff:00:00:00:00:00 和正确的主机目标 IP 地址的数据包。收到数据包后,使用有缺陷驱动程序的 Microsoft 操作系统将在混杂模式下做出响应。可能它只发生在默认的 MS 驱动程序中。

Ether Ping 测试- 在较旧的 Linux 内核中,当网卡处于混杂模式时,每个数据包都会传递给操作系统。一些 Linux 内核只查看数据包中的 IP 地址来确定它们是否应该被处理。为了测试这个漏洞,你必须发送一个带有虚假 MAC 地址和有效 IP 地址的数据包。网卡处于混杂模式的易受攻击的 Linux 内核只会查看有效的 IP 地址。为了获得响应,ICMP 回显请求消息会在虚假数据包中发送,从而导致处于混杂模式的易受攻击的主机进行响应。

也许还有更多,DNS测试对我来说是最可靠的

@vp 给出了理论,我会给出一些工具。

在 Linux 系统中使用:

  • SniffDet:这一项采用 4 种不同的测试:ICMP 测试、ARP 测试;DNS 测试和 LATENCY 测试(VP01 没有提到)。该工具最近更新,我推荐它。

还:

  • nmap: 有一个用于 nmap 的 NSE 脚本,称为sniffer-detect.nse,它就是这样做的。
  • nast:它通过进行 ARP 测试来检测其他 PC 处于混杂模式。
  • ptool: 是否进行 ARP 和 ICMP 测试。最后一次提交是在 2009 年

对于 Windows 系统:

  • Cain & Abel可以使用多种类型的 ARP 测试进行混杂扫描。
  • Promqry 和 PromqryUI Microsoft 工具也用于此目的,但我不确定它们是如何工作的。

至于一般的检测技术,还有另一种,叫做蜜罐检测。有关延迟测试和蜜罐技术的详细信息可以在 sniffdet 的文档中找到

你不能保证你能检测到它。

例如,您可以通过将嗅探计算机的 TX+(针脚 1)和 TX-(针脚 2)循环,然后将 TX+(针脚 1)设置为 RX+(嗅探器的针脚 3)轻松制作只读以太网电缆,然后TX-(引脚 2)到 RX-(嗅探器的引脚 6)。这样,嗅探计算机就不可能影响网络上的任何数据流量。

有可能检测到电压降或射频发射(沿着Van Eck phreaking的路线),但我不知道有任何 COTS 硬件会检测到它。

虽然可能无法始终识别本地网络是否在混杂地嗅探本地网络流量——但这样做可能会使大多数或所有数据包捕获应用程序崩溃。

查看 Samy 的http://samy.pl/killmon.pl脚本作为起点。意识到在 2011 年运行的大多数应用程序至少容易受到 DoS 崩溃攻击,即使崩溃不会因为内存访问违规(或导致缓冲区溢出的读/写异常)而受到攻击。