抓包参数设置
抓包需要设置网卡和过滤表达式,如果过滤表达式不设置,将会抓经过设置网卡的所有网络包。
捕获过滤器表达式
说明:
Protocol(协议):tcp,udp等,如果没指明协议类型,则默认为捕捉所有支持的协议。
Direction(方向):src,dst等,如果没指明方向,则默认使用src or dst作为关键字。
Host(s):net, port, host, portrange等,默认使用host关键字,src 10.1.1.1与src host 10.1.1.1等价。
Logical Operations(逻辑运算):not,and,or等,否(not)具有最高的优先级。或(or)和与(and)具有相同的优先级,运算时从左至右进行。
常见使用的捕获过滤器表达式
1)只捕获某主机的HTTP流量
host 192.168.23.100 and port 80 and http #只捕获主机192.168.23.100的http流量
port 80 and http #捕获所有经过该接口的http流量
host 192.168.23.100 and not port 80 #捕获主机192.168.23.100除80端口之外的其他所有流量
not port 80 #捕获除80端口之外的其他所有流量
2)只捕获某主机的所有流量
host 192.168.23.100 #捕获源目主机均为192.168.23.100
dst 192.168.23.100 #捕获目的主机均为192.168.23.100
src 192.168.23.100 #捕获来源主机均为192.168.23.100
net 192.168.5.0/24 #捕获网段为d192.168.5的所有主机的所有流量
3)只捕获特定端口的流量
tcp portrange 8000-9000 an port 80 #捕获端口8000-9000之间和80端口的流量
port 5060 #捕获sip流量,因为sip的默认端口是5060。举一反三:port 22 #捕获ssh流量
抓包展示面板
Wireshark主窗口主要有显示过滤器、封包列表、封包详细信息、16进制数据、地址栏。
常见用显示过滤表达式
1)根据端口筛选
tcp.port == 9999 #筛选tcp协议中9999端口的流量
(tcp.srcport == 53084) && (tcp.dstport == 9999) #筛选tcp协议中目的端口9999并且源端口是53084的流量
2)根据ip筛选
ip.src == 192.168.23.1 #源ip是192.168.23.1的流量
ip.dst == 192.168.23.142 #目的ip是192.168.23.142的流量
3)根据内容筛选
tcp contains "11111111111111" #tcp数据包内容包含11111111111111
http contains "1111111" #http数据包内容包含11111111111111
TCP报文格式
传输层与TCP报文格式的区分比对:
标志位对应的功能:
URG: 紧急指针( urgent pointer)有效。
ACK: 确认序号有效。
PSH: 接收方应该尽快将这个报文段交给应用层。
RST: 重建连接。
SYN: 同步序号用来发起一个连接。
FIN: 发端完成发送任务。
窗口大小:用于流量控制。
检验和:检验和覆盖了整个的 TCP报文段: TCP首部和TCP数据,与udp相似需要计算伪首部。