Linux环境下抓包
可以使用tcpdump
命令
tcpdump -i ens192 -w dataAll.pcap port 8008
这其中
- ens192 指代网卡 可以通过
ifconfig
获取,也可以直接用 any
代替。意思是抓取全部网卡数据。例如:tcpdump -i any -w dataAll.pcap
- dataAll.pcap 抓取的文件名
其他
- -i 设备名称 tcpdump -i lo //抓回环网口的包 tcpdump -i eth0 //抓eth0网卡的包
- -n 以数字显示主机及端口 tcpdump -n //以数字显示主机和端口 tcpdump -ni any //抓全部网卡的包
- -Q in|out|inout tcpdump -ni any -Q in //入包 tcpdump -ni any -Q out //出包 tcpdump -ni any -Q inout //入包和出包
- 过滤相关 host net port tcpdump -ni any port 80 //已数字显示端口和主机抓取全部网卡80端口的包 tcpdump -ni any host 192.168.38.133
//过滤192.168.38.133的包 tcpdump -ni any host 192.168.38.133 and port 80
//来自192.168.38.133访问80端口的包
- 传输方向关键字: src、dst、or src、dst and src tcpdump -ni any src 192.168.38.133 and dst 192.168.38.128 //来自IP1到IP2 tcpdump -ni any src 192.168.38.133 and dst 192.168.38.128 and port 80 tcpdump -ni any src 192.168.38.133 and dst 192.168.38.128 and port 80 or 81
- 协议关键字:fddi、ip、arp、rarp、tcp、udp等 fddi:FDDI(分布式光前数据接口网络)上的特定网络协议 rarp:
- 其它参数
-c 监听的数据包数量
-w file 将监听数据保存到文件中
windows环境下抓包
直接打开wireshark选择网卡就可以,这里不再赘述。
wireshark 抓包过滤实用命令
- ip.dst == <目标IP地址>
- ip.src == <源IP地址>
- tcp.dstport == <目标端口号>
- tcp.srcport == <源端口号>
- tcp contains “xxx” 过滤tcp协议包中包含xxx字段的请求,通常可以用来过滤某个http请求
举例
- 捕获IP地址为192.168.1.100,端口为80的流量:
ip.addr == 192.168.1.100 and tcp.port == 80
- 捕获源IP地址为192.168.1.50,目的IP地址为192.168.1.100,端口为80的流量:
ip.src == 192.168.1.50 and ip.dst == 192.168.1.100 and tcp.port == 80
- 捕获IP地址为192.168.1.100,端口为80或443的流量:
ip.addr == 192.168.1.100 and (tcp.port == 80 or tcp.port == 443)
- tcp contains “ssoService/v1/tgtLogin”
- tcp contains “tokenLogin”
- tcp contains “serviceValidate”