流量抓包工具WireShark的基本使用

一、WireShark 简介

官网:www.wireshark.org

是一个网络包分析工具,使用WinPCAP作为接口,直接与网卡进行数据报文交互,抓取网卡上的流量数据包,对网络数据包进行详细的刨析分析。

可以用WireShark 来检测网络连接问题,也可以用WireShark 来抓取网络上的敏感信息,窃取数据。WireShark 默认情况下,使用混杂模式,即抓取流经本地的数据包;那么普通模式下,只会抓取流入本地的数据包。

二、WireShark 快速定位数据包

1、常见的协议

APR、ICMP、TCP、UDP、DNS、HTTP

2、选择网卡接口

1、双击进去网卡接口

image_20240229203345148

2、使用接口过滤器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1、仅捕获与10.1.159.86 进行交互的流量
host 10.1.159.86
2、获取10.1.159.86 为源IP的数据包
src host 10.1.159.86
3、获取10.1.159.86 为目标IP的数据包
dst host 10.1.159.86
4、获取目标为10.1.159.86 且端口为80
dst host 10.1.159.86 && prot 80
5、捕获非80端口流量
!prot 80
6、仅捕获ICMP协议数据包
icmp
7、捕获IPv4
!ip6

image_20240246429203147

image-20240229205033732

3、数据包着色快速锁定

WireShark 对不同数据包有不同的颜色划分,熟知默认颜色能快速的分别不同的数据包。还可以自定义颜色规则

image-20240229211150293

4、应用显示过滤器

1
2
3
4
5
6
7
8
9
10
11
12
1、筛选协议
tcp、udp、icmp
2、与IP相关的协议
ip.addr == 192.168.31.52
3、源、目标IP
ip.src == 192.168.31.52
ip.dst == 192.168.31.52
4、使用and
ip.src == 192.168.31.1 and ip.dst == 192.168.31.52
5、筛选http请求:
http.request.method == "POST"
http.request.uri.path == "/admin.php"

image-20240229211946705

筛选udp 出现 dns、nbns协议,因为这些应用层协议是基于传输层udp 协议的

image-20240229212511973

筛选http协议出现tcp、ocsp 协议,是因为 HTTP 通信依赖于 TCP 协议,而 OCSP 是 HTTPS 通信中用于证书验证的一个组成部分,它们都是网络通信中常见的协议。

5、常见协议分析ARP

ARP协议:地址解析协议,通过解析网络层地址来找寻数据链路层地址的网络传输协议,即定位MAC地址

1
2
3
如ping 一个ip
会先查看该IP 是否在本地有arp缓存,有的话直接发送icmp数据包
没有的话会先返送arp数据包,再发送icmp数据包

协议分析的时候我们需要关闭混淆模式,避免一些干扰的数据包存在,只抓取流入本地计算机和广播数据包

image-20240301103107969

分析ARP 数据包

image-20240301104310639

image-20240301104908518

6、常见协议分析ICMP

我们用普通模式抓取icmp 数据包,只抓取一个icmp 数据包

1
ping baidu.com -n 1

分析ICMP 数据包

image-20240301105939608

相应包和请求包是一样的格式

7、常见协议分析TCP

我们可以在本地浏览器去访问一个http网页

分析TCP 三次握手数据包

image-20240301112108005

image-20240301112507884

image-20240301112643427

可以在【统计】中【流量图】去更加直观的查看流量,流量类型选择【TCP】

image-20240301113122950

四次挥手数据包不再分析

image-20240301124649718

8、常见协议分析HTTP

HTTP是TCP 的上层协议,所以我们过滤TCP的数据包会包含http 协议的数据包

分析http 的页面请求

image-20240301125329153

可以追踪TCP 或 HTTP流,查看详细的数据包请求

image-20240301130029416

三、WireShark 快速定位数据包—类型

1、定位请求类型

1
2
http.request.method == "GET"
http.request.method == "POST"

2、定位响应状态码

1
http.response.code == 200

3、定位请求头字段

1
http.host == "www.example.com"