0%

tcpdump抓取网络数据包笔记

前言

记录下抓包工具和相关的查看工具使用方式
tcpdump wireshark
主要记录tcpdump

参考文档:
https://www.runoob.com/linux/linux-comm-tcpdump.html
https://www.cnblogs.com/f-ck-need-u/p/7064286.html

tcpdump命令详解

1
tcpdump [-adeflnNOpqStvx][-c<数据包数目>][-dd][-ddd][-F<表达文件>][-i<网络界面>][-r<数据包文件>][-s<数据包大小>][-tt][-T<数据包类型>][-vv][-w<数据包文件>][输出数据栏位]
参数 功能 备注
-a 尝试将网络和广播地址转换成名称。
-c <数据包数目> 收到指定的数据包数目后,就停止进行倾倒操作。
-d 把编译过的数据包编码转换成可阅读的格式,并倾倒到标准输出。
-dd 把编译过的数据包编码转换成C语言的格式,并倾倒到标准输出。
-ddd 把编译过的数据包编码转换成十进制数字的格式,并倾倒到标准输出。
-e 在每列倾倒资料上显示连接层级的文件头。
-f 用数字显示网际网络地址。
-F <表达文件> 指定内含表达方式的文件。
-i <网络界面> 使用指定的网络截面送出数据包。
-l 使用标准输出列的缓冲区。
-n 不把主机的网络地址转换成名字。
-N 不列出域名。
-O 不将数据包编码最佳化。
-p 不让网络界面进入混杂模式。
-q 快速输出,仅列出少数的传输协议信息。
-r <数据包文件> 从指定的文件读取数据包数据。
-s <数据包大小> 设置每个数据包的大小。
-S 用绝对而非相对数值列出TCP关联数。
-t 在每列倾倒资料上不显示时间戳记。
-tt 在每列倾倒资料上显示未经格式化的时间戳记。
-T <数据包类型> 强制将表达方式所指定的数据包转译成设置的数据包类型。
-v 详细显示指令执行过程。
-vv 更详细显示指令执行过程。
-x 用十六进制字码列出数据包资料。
-w <数据包文件> 把数据包数据写入指定的文件。

常用命令组合

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# 显示当前网络包信息
tcpdump
# 指定网卡eth0抓取网络包
tcpdump -i eth0
# 抓取指定网卡eth0指定20数量包
tcpdump -i eth0 -c 20
# 抓取指定网卡eth0指定20数量的包保存为cap文件
tcpdump -i eth0 -c 20 -w eth0.cap
#简略显示包内容
tcpdump -q
#显示包的16进制和ASCII两种方式同时输出
tcpdump -XX
#监视指定主机a的包
tcpdump host a
#打印 主机 a->b 或者a->c的包
tcpdump host a and \( b or c \)
#打印主机 a和其他主机之间的ip数据包 但是不包含b主机
tcpdump ip host a and not b
#截获主机a发送的所有数据
tcpdump src host a
#监视所有发送到主机a的数据包
tcpdump dst host a
#监视指定主机a和端口22的数据包
tcpdump tcp port 22 and host a
#对本机的udp 123端口进行监视(123为ntp的服务端口)
tcpdump udp port 123
#监视指定网络的数据包,如本机与192.168网段通信的数据包,"-c 10"表示只抓取10个包
tcpdump -c 10 net 192.168
#打印所有通过网关snup的ftp数据包(注意,表达式被单引号括起来了,这可以防止shell对其中的括号进行错误解析)
tcpdump 'gateway snup and (port ftp or ftp-data)'
#抓取ping包
tcpdump -c 5 -nn -i eth0 icmp
#抓取ping包 来源于 192.168.1.1
tcpdump -c 5 -nn -i eth0 icmp and src 192.168.1.1
#抓取到本机22端口包
tcpdump -c 10 -nn -i eth0 tcp dst port 22
#解析包数据
tcpdump -c 2 -q -XX -vvv -nn -i eth0 tcp dst port 22

总结

在linux下 基本上是没得gui界面的
简单的问题 可以直接tcpdump抓包现场分析
麻烦的问题 使用tcpdump 抓包 打包成cap文件 下载下来 用wireshark之类的工具分析