6. wireshark统计功能
6.1 包总数
主界面右下角
分组即包总数;已显示即过滤后的数量
6.2 图表
工具栏——统计——I/O图表
显示数据包随时间变化结果
设置显示的内容和方式
名称:勾选感兴趣项
过滤器:设置过滤条件,如data contains ""mt":2219"
样式:线形图、柱状图、点图等
加号:添加新项目
例如:显示包含"mt:2219"的数据包随时间变化图,线形图,蓝色
5. wireshark显示过滤
显示过滤即对已捕获的数据包进行筛选
5.1 内容过滤
格式:tcp|data contains "objstring"
说明:查找所有包含"objstring"的数据包
示例:
tcp contains ""mt":2219" 查找包含"mt":2219的数据包
data contains "55689_qq_com" 查找包含"55689_qq_com"的数据包
格式:tcp|data contains xx:xx:xx:xx
说明:查找含有指定字节片段的数据包
示例:
data contains 48:00:00:00:0d:f4:b1:12 查找含有如下字节片段的数据包0x48 0x00 0x00 0x00 0x0d 0xf4 0xb1 0x12
注意:内容过滤标准格式为tcp contains,因为data contains可能漏掉部分数据包
5.2 指定字段
格式:data[idx:len] == hex1:hex2:....:hexn
说明:要求数据字段从idx开始的len个字节,依次为hex1-hexn,idx从0开始,hex为十六进制值,不带0x前缀,且冒号前后不能有空格
示例:
data[33] == 01 数据的第34字节为0x01
data[0:4] == 48:35:32:31 数据的前四字节为0x48, 0x35, 0x32, 0x31
4. wireshark捕捉过滤
地址:ip.addr == xxx
端口:tcp.port == xx
传输方向:ip.src == xxx | ip.dst == xxx | tcp.srcport == xxx | tcp.dstport == xxx
连接词 : and or
显示所有SYN包:tcp.flags.syn == 1
显示所有FIN包:tcp.flags.fin == 1
显示所有RST包:tcp.flags.reset == 1
显示所有窗口大小为0的数据包:tcp.window_size == 0
显示所有包含SYN但不包含ACK标志的数据包:tcp.flags.syn == 1 and tcp.flags.ack == 0
3. wireshark显示
Seq:序列号
Ack:应答号
Len:数据长度
讲解
Seq:数据包本身的序列号,等于最近一次收到的对方数据包中的Ack。
Ack:期望对方继续发送的那个数据包的序列号。最近一次收到的对方数据包中,如果Len等于0,则该包Ack等于对方包Seq+1;如果Len不为0,则该包Ack等于对方包Seq+Len。
图解
数据传送阶段
172.9向37.94发送第一个数据包,该包序列号1,应答号为25,长度为24
37.94向172.9发送第二个数据包,该包序列号25,应答号25,长度0
连接关闭阶段
37.94主动提出关闭连接,发送FIN包,该包序列号25,应答号25,长度0
172.9同意关闭连接,发FIN, ACK包,该包序列号25,应答号26,长度0
37.94给与最后响应,发ACK包,该包序列号26,应答号26,长度0
结束
2. 抓包
命令:tcpdump 「Options」 'Expression'
功能:在网络上转储流量
选项:
☆ -i 「Interface」:指定网络接口;若要同时在所有网卡抓包,使用「any」
☆ -w 「File」:将抓包结果保存到文件
☆ -c 「Num」:指定抓包个数,接收「Num」个包后,自动退出
☆ -C 「Size」:限制结果文件「File」的大小,若超过「Size」,关闭「File」,创建新的文件「FileN」保存输出,N从1开始;单位M。例如:
☆ -G 「Secs」:每隔「Secs」创建一个新文件用以保存结果,新的结果文件名由-w 「File」指定。「File」指定的文件名需包含一个由strftime定义的时间格式,例如raw_%M:%S.pcap;如果没有指定时间格式,每个新文件将会覆盖前一个文件
☆ -W 「Num」:指定结果文件的最大个数
①与-C 「Size」联用时,当结果文件个数到达「Num」,自动从第一个文件开始覆盖,从而形成一个环形缓冲区
因为覆盖过程,并不会相应地修改文件编号,所以数据包的顺序与文件编号无关,即可能「File」和「File1」中包含最后抓到的数据包,「File2」则包含最先抓到的数据包
②与-G 「Secs」联用时,每隔「Secs」秒创建一个新文件,当文件个数到达「Num」时,自动关闭tcpdump
☆ -Z 「User」:以用户「User」权限运行tcpdump。当以「root」用户运行「tcpdump」,且没有指定「-Z」时,「tcpdump」默认以用户「tcpdump」的身份运行。用户「tcpdump」为安装「tcpdump」时,自动添加。
注意:当出现tcpdump: xx.pcap: Permission denied错误时,添加-Z root选项,以用户root身份执行即可
表达式:指定过滤条件,如地址和端口等。例如抓目的端口为41111的tcp数据包:
tcpdump 'tcp dst port 41111'
说明:抓包不是截获,往来数据收发正常,tcpdump仅复制不私扣;初步观测,tcpdump属轻量级进程,对资源占用微乎其微
示例:
数据量很大的场景下,防止抓包过多耗尽磁盘的方式
◇ 限制时间
「-G 5」指定每「5」秒一个文件,「-W 3」指定文件数的上限为「3」
结果
◇ 限制包个数
「-c 1000」指定抓包的个数为「1000」
结果
◇ 限制文件大小
「-C 10」指定结果文件的大小上限为「10M」,「-W 3」指定文件数的上限为「3」
结果
其它:
若未指定抓包数,则一直抓,直至Ctrl+C退出
退出后自动显示抓包数。
1. 安装tcpdump
yum install tcpdump