一、什么样的“包”能够被wireshark抓住?

1、本机

说明:即直接抓取进出本机网卡的流量包。这种情况下,wireshark会绑定本机的一块网卡。

wireshark 抓取接口传参 wireshark根据端口抓包_泛洪

2、集线器

说明:用于抓取流量泛洪,冲突域内的数据包,即整个局域网的数据包。

wireshark 抓取接口传参 wireshark根据端口抓包_底层驱动_02


3、交换机

说明:

①端口镜像

这种方式下,交换机严格按照tenlnet表和mac地址表进行转发数据包。当pc2和pc3通信的时候,默认是pc1是无法抓取数据包的,但是可以通过在交换机上设置策略,即端口镜像。这样Pc2和Pc3通信的数据包就被复制一份到连接pc2的那个交换机端口,这样pc2就可以抓取到Pc2和Pc3的通信数据包了

wireshark 抓取接口传参 wireshark根据端口抓包_wireshark_03


②ARP欺骗

说明:

步骤如下:

(1)PC2想和PC3通信,故而向交换机发送广播

(2)正常情况下PC1会将此包丢弃掉(因为要找的不是它),但是这里的PC1会进行ARP欺骗,告诉PC2它就是PC2要找的PC3

(3)因为ARP后到优先的特性,PC2很大可能会认为PC1的MAC地址是自己要找的PC3

(4)就这样,PC2和PC3的通信就变成了PC2和PC1的通信了。

(5)至于后续PC1要不要把数据(可能被修改的数据)交给PC3,那完全取决于PC1的心情。

以上便是局域网ARP攻击的典型情况。

wireshark 抓取接口传参 wireshark根据端口抓包_泛洪_04


③MAC泛洪

说明:

这种情况下,PC1没有端口镜像的权限,所以它不能直接截取全网的流量,那么该怎么做呢?

(1)PC1发送大量垃圾包,这里产生了大量的MAC地址,导致MAC表爆表

(2)PC2和PC3发出的数据找不到目的地址就会进行全网泛洪,被PC1截取全网流量

wireshark 抓取接口传参 wireshark根据端口抓包_wireshark_05

二、wireshark整体框架

wireshark 抓取接口传参 wireshark根据端口抓包_wireshark 抓取接口传参_06


1.win-/libcap ===> wireshark底层驱动软件

2.capture ===> 抓包引擎

3.wiretab ===> 将抓来的二进制数据转换成需要的格式文件

4.core ===> 核心引擎,通过函数将多个模块连接在一起

5.GTK 1/2 ===> 图形处理工具