一、概念
- 混杂模式(英语:promiscuous mode)是电脑网络中的术语。是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。
-
一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。网卡的混杂模式一般在网络管理员分析网络数据作为网络故障诊断手段时用到,同时这个模式也被网络黑客利用来作为网络数据窃听的入口。在Linux操作系统中设置网卡混杂模式时需要管理员权限。在Windows操作系统和Linux操作系统中都有使用混杂模式的抓包工具,比如著名的开源软件Wireshark
-
简单的说,网卡的混杂模式是为网络分析而提供的
二、网卡工作方式
-
广播模式(Broad Cast Model):它的物理地址是0Xffffff的帧为广播帧,工作在广播模式的网卡接受广播帧。
-
多播传送(MuliCast Model):多播传送地址作为目的物理地址的帧可以被组内的其他主机同时接收,而组外主机却接收不到。但是如果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不论它是不是组内成员
-
直接模式(Derect Model):工作在直接模式下的网卡只能接收目的地址是自己的Mac地址的帧
-
混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧
三、抓包工具
- 常见的设置网卡混杂模式的方法是安装抓包工具,如:Sniffer、WinPcap等都自动调整网卡为混杂模式,开启抓包后网卡自动调整为混杂模式,关闭停止抓包程序,恢复正常模式
- 对于广播式集线器(Hub)来说,假如PC1、PC2、PC3接在同一个Hub上,当PC1给PC3发送包时,Hub将广播这个包,所以PC2实际上也可以看到这个包,但一般情况下它会将这个发给PC3的包丢弃,但如果处于混杂模式,PC2的网卡驱动程序就不会丢弃这个包,而是把这个包送给上层的驱动程序,应用程序
四、不同系统下混杂模式的设置
Linux混杂模式的设置
以eth0网卡为例
- 开启:ifconfig eth0 promisc
- 关闭:ifconfig eth0 -promisc
Windows混杂模式的设置
- 待续