wireshark 基础
一、wireshark介绍
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是捕获网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。除了捕获功能外,Wireshark还提供了丰富的分析工具和过滤器。用户可以使用这些工具对捕获的封包进行进一步的分析和处理。例如,用户可以根据特定的协议、地址或关键字对封包进行过滤,以便快速定位感兴趣的流量。此外,Wireshark还支持自定义插件和脚本扩展,这为用户提供了更大的灵活性和定制性。
二、wireshark常用命令
1.针对IP
先说一下过滤器的特点吧,过滤器输入时会自动检测你的输入是否合法,如果输入不合法会变红,直到你输入正规后才会变绿。
首先说几个最常用的关键字,“eg”和“==”等同,可以使用“and”表示并且,“or"表示或者。”!"和"not”都表示取反
a .对源地址IP固定的包进行抓取
对源地址为192.168.0.1的包过滤,即抓取源地址要求满足要求的包
ip.src==192.168.0.
b.对目的地址IP固定的包进行抓取
对目的地址为192.168.0.1的包过滤,即抓取目的地址满足要求的包
ip.dst==192.168.0.1
c.对源或目的地址进行过滤
对源地址和目的地址为192.168.0.1的包的过滤,即抓取满足源或者目的地址的IP地址。
ip.addr==192.168.0.1
或
ip.src==192.168.0.1 or ip.dst==192.168.0.1
b.排除固定IP的数据包
要排除以上的数据包,我们只需要将其用括号囊括,然后使用"!" 即可。
!(ip.src==192.168.0.1)
2、针对协议的过滤
a.捕获某种协议的数据包
仅仅需要捕获某种协议的数据包,表达式很简单仅仅需要把协议的名字输入即可。
http
b.捕获多种协议的数据包
需要捕获多种协议的数据包,也只需对协议进行逻辑组合即可
http or telnet
c.排除某种协议的数据包
要排除某种协议的数据包
not arp
3.针对端口的过滤(视协议而定)
a.捕获某一端口的数据包
tcp.port==80
b.捕获多端口的数据包
要捕获多端口的数据包,可以使用and来连接,下面是捕获高端口的表达式
tcp.port==80 and tcp.port==8009
其他
数据链路层:
筛选mac地址为04:f9:38:ad:13:26的数据包----eth.src == 04:f9:38:ad:13:26
筛选源mac地址为04:f9:38:ad:13:26的数据包----eth.src == 04:f9:38:ad:13:26
网络层:
筛选ip地址为192.168.1.1的数据包----ip.addr == 192.168.1.1
筛选192.168.1.0网段的数据---- ip contains “192.168.1”
筛选192.168.1.1和192.168.1.2之间的数据包----ip.addr == 192.168.1.1 && ip.addr == 192.168.1.2
筛选从192.168.1.1到192.168.1.2的数据包----ip.src == 192.168.1.1 && ip.dst == 192.168.1.2
传输层:
筛选tcp协议的数据包----tcp
筛选除tcp协议以外的数据包----!tcp
筛选端口为80的数据包----tcp.port == 80
筛选12345端口和80端口之间的数据包----tcp.port == 12345 && tcp.port == 80
筛选从12345端口到80端口的数据包----tcp.srcport == 12345 && tcp.dstport == 80
应用层:
过滤请求数据包----http.request
过滤响应数据包----http.response
过滤指定域名----http.host == “xxx.xxx.xxx”
筛选url中包含.php的http数据包----http.request.uri contains “.php”
筛选内容包含username的http数据包----http contains “username”
过滤请求头----http.request.method == GET
过滤请求的url----http.request.url==”/xxx/xxxx”
过滤包含HTTP错误状态码的响应数据包----http.request.code >= 400
过滤服务器端错误状态码的响应数据包----http.response.code <=599。