Bootstrap

抓包工具Wireshark

一、Wireshark介绍

Wireshark(前称Ethereal)是一款免费的开源网络封包分析软件,用于截取和显示网络封包的详细信息。它通过WinPCAP接口直接与网卡进行数据报文交换,适用于网络管理员、网络安全工程师、开发者等专业人士使用。作为一个强大的网络分析工具,Wireshark不仅能截取各种网络数据包,还能展示其详细的协议信息。这种功能使得它在网络问题诊断、资讯安全检查、新通讯协议调试等方面广泛应用。Wireshark支持超过2000种网络协议,使其成为现代网络分析和监控的重要工具。

二、网络的工作模式

  1. 普通模式(Non-Promiscuous Mode)
    • 默认工作模式:网卡只接收发给本机的包,包括广播包,其他数据包一律丢弃。
    • 数据过滤:此模式下的网卡根据MAC地址筛选数据包,仅将目标为本机的数据包传递给上层程序。
  2. 混杂模式(Promiscuous Mode)
    • 接收所有数据包:无论数据包的目的MAC地址是否指向本机,网卡都会接收并传递给相应的驱动程序。
    • 网络诊断与分析:混杂模式通常用于网络管理员进行流量分析和监控,以便进行故障诊断和安全检查。
  3. 监听模式(Listen Mode)
    • 被动捕获:监听传入的数据包并将其记录下来,但不会进行实际处理或回复。
    • 适用场景:多用于网络故障排查和诊断,通过记录数据包来分析问题原因。
  4. 监视模式(Monitor Mode)
    • 主动捕获:不仅接收数据包,还对其进行分析,以检测和识别潜在的安全威胁或进行网络性能优化。
    • 全面监控:监视模式可以捕获整个网络的流量,不局限于单个接口。无线网卡上的监视模式可分为“监视”和“混杂”两个子模式,其中“监视”模式只能捕捉本SSID(Wi-Fi名称)内的数据包,而“混杂”模式则能捕捉所有经过无线网卡的数据包。
  5. 管理模式(Management Mode)
    • 管理帧处理:此模式下的网卡专门接收和处理管理帧,用于配置和监控网络设备的状态和性能。
    • 网络管理:适用于对网络设备进行管理和监控,确保网络正常运行。

三、过滤器的使用

1、捕获过滤器

类型Type:  host、net、port
方向Dir:  src、dst
协议Proto:  ether、ip、tcp、udp、http、ftp
逻辑运算符:  &&与、|或、!非

举例

#抓取源地址为192.168.1.1,目的端口为80的流量

src host 192.168.1.1 && dst port 80

#抓取192.168.1.1和192.168.1.2的流量

host 192.168.1.1 host 192.168.1.2

#不要抓广播包

! broadcast

#抓取目的UDP端门为4569的封包

udp dst port 4569

#抓取目的或来源IP地址为192.168.4.7的封包

 host 192.168.4.7        

#抓取来源为TCP或UDP,并且端口在2000~5范围内的封句

src portrange 2000-5000

#抓取来源IP地址为172.17.12.1,但目的地址不是192.168.2./24的封包

src host 172.17.12.1 and not dst net 192.168.2.0/24

2、显示过滤器

比较操作符: == 等于 (eg) 、!= 不等于 (ne) 、>大于gt)、< 小于 (t) 、>= 大等于 (ge)、<= 小于等于 (le)
逻辑操作符:and 两个条件同时满足、or 其中一个条件被满足、xor 有且仅有一个条件被满足、not 没有条件被满足.
IP地址过滤: ip.addr、ip.src、ip.dst
端门过滤: tcp.port、tcp.srcport、tcp.dstport、tcp.flag.syn、tcp.flag.ack
协议过滤: arp、ip、icmp、udp、tcp、http、tls、 ..........等等

#显示源IP等于192.168.1.100并且udp端门号为4000的封包

ip.src == 192.168.1.109 and udp.port == 4000

#显示SNMP或DNS或ICMP封包

snmp ||  dns || icmp

#显示来源或目的IP地址为10.1.1.1的封包

ip.addr == 10.1.1.1

#显示来源不为19.1.2.3或者目的不为19.4.5.6的封包

ip.src != 10.1.2.3 or ip.dst != 19.4.5.6

#显示来源不为18.1.2.3并且目的不为10.4.5.6的封包

ip.src != 19.1.2.3 and ip.dst != 19.4.5.6

#显示来源或目的UDP端口号为4569的封包

udp.port eq 4569

#显示目的TCP端口号为25的封包

tcp.dstport == 25

#显示带有TCP标志的封包

tcp.flags

#显示带有TCP SYN标志的封包

tcp.flags.syn eq 0x02

;