Linux下的Tcpdump网络包分析工具使用指南

TCPDUMP是一款网络分析命令行工具,最初由Van Jacobson,Sally Floyd,Vern Paxson和Steven McCanne于1988年编写,可以捕捉通过计算机所连接网络发送和接收的各类数据包。TCPDUMP相比 Wireshark 更原始,两者常常结合使用。

参数释义

可以使用man tcpdump命令查看参数tcpdump使用手册,以下是一些常见参数的释义:

  • -i any : 监听所有网络接口
  • -i eth0 : 监听网卡eth0
  • -D : 显示所有可用接口
  • -n : 不解析主机名,可避免DNC查询
  • -nn : 不解析主机名,也不将协议和端口号转换为名称
  • -q : quiet,打印更少的协议信息
  • -t : 不在每行打印时间戳
  • -tttt : 以2019-12-31 02:03:48.523512这样的可读性最强的形式打印时间戳
  • -X : 在解析和打印时,除了打印每个数据包的报头外,还以十六进制和ASCII格式打印每个数据包的数据
  • -XX : 与-X相同,并额外显示以太网报头
  • -v, -vv, -vvv : 逐渐增加信息的详细程度
  • -c : 进捕获指定数量的数据包
  • -s : 以字节为单位定义捕获的包大小
  • -S : 打印TCP序列号的绝对值
  • -e : 表示在输出中包含链路层头信息,例如可用于打印以太网和IEEE 802.11等协议的MAC层地址
  • -E :通过提供加密密钥来解密IPSEC流量

TCPDUMP语法

Syntax:   Protocol   Direction   Host(s)   Value   Logical Operations   Other expression
Example:   tcp   dst   port   80   and   tcp dst host 10.2.2.2

语法示例

Protocol,值可为:ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp, udp。

如果未指定,则默认使用所有协议

Direction,值可为: src, dst, src and dst, src or dst

如果不指定,则默认使用 “src or dst” ,例如,”host 10.2.2.2″ 等于 “src or dst host 10.2.2.2”

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” 优先级相同,例如 “not tcp port 3128 and tcp port 23” 等于 “(not tcp port 3128) and tcp port 23″,而不等于 “not (tcp port 3128 and tcp port 23)”。

常见用法示例

1、列出所有网络接口:

$ tcpdump -D

1.eth0
2.eth1
3.eth2

2、抓取特定接口的包:

tcpdump -i eth1

3、抓取指定数量的包:

tcpdump -i eth1 -c 10

4、抓包并保存至文件:

tcpdump -i eth1 -w tmp.pcap

5、包大小设为最大, 0即65535 :

tcpdump -i eth1 -w tmp.pcap -s 0

6、读取一个本地文件:

tcpdump -tttt -r tmp.pcap

7、抓包时时间戳显示为可读性最佳:

tcpdump -i eth1 -tttt

8、仅抓取指定协议的数据包:

tcpdump -i eth1 arp

9、仅抓取源地址或目的地址为指定IP的数据包:

tcpdump host 1.2.3.4

10、仅抓取源地址为指定IP的数据包、 仅抓取目的地址为指定IP的数据包、:

tcpdump src 2.3.4.5 
tcpdump dst 3.4.5.6

11、抓取一个网段的流量,通常结合src和dst使用:

tcpdump net 1.2.3.0/24

12、抓取指定端口的流量:

tcpdump -i eth1 port 22
tcpdump -i eth1 src port 1026

13、根据数据包大小过滤流量,可以使用greater、less或者数学符号:

tcpdump -i eth1 less 32 
tcpdump -i eth1 greater 64 
tcpdump -i eth1 <= 128

14、抓取指定IP和端口的流量:

tcpdump -i eth1 dst 10.181.140.216 and port 22

15、显示更详细的数据包信息:

tcpdump -i eth1 -vvv

16、显示链路层头信息:

tcpdump -i eth1 -e -t
listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
52:54:00:e1:1c:10 (oui Unknown) > 01:80:c2:00:00:00 (oui Unknown), 802.3, length 60: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:e1:1c:10.8003, length 43
52:54:00:e1:1c:10 (oui Unknown) > 01:80:c2:00:00:00 (oui Unknown), 802.3, length 60: LLC, dsap STP (0x42) Individual, ssap STP (0x42) Command, ctrl 0x03: STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:e1:1c:10.8003, length 43

17、不显示时间戳:

tcpdump -i eth2 -t

listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:e1:1c:10.8003, length 43
STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:e1:1c:10.8003, length 43

如果不加-t参数,则会看到如下信息:

tcpdump -i eth2

listening on eth2, link-type EN10MB (Ethernet), capture size 65535 bytes
08:44:51.295229 STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:e1:1c:10.8003, length 43
08:44:53.296795 STP 802.1d, Config, Flags [none], bridge-id 8000.52:54:00:e1:1c:10.8003, length 43

18、显示IP地址而不是DNS名称:

tcpdump -i eth1 -n

19、 以ASCII 编码显示数据包:

tcpdump -i eth1 -A

20、以十六进制ASCII显示捕获的数据包:

tcpdump -i eth1 -XX

一些特殊用法

1、查找http用户代理:

tcpdump -vvAls0 | grep 'User-Agent:'

2、查找明文get请求:

tcpdump -vvAls0 | grep 'GET'

3、查找http host头:

tcpdump -vvAls0 | grep 'Host:'

4、查找http cookies:

tcpdump -vvAls0 | grep 'Set-Cookie|Host:|Cookie:'

5、查找SSH连接,此命令不论ssh使用何端口都可以使用:

tcpdump 'tcp[(tcp[12]>>2):4] = 0x5353482D'

6、查找DNS流量:

tcpdump -vvAs0 port 53

7、查找ftp流量:

tcpdump -vvAs0 port ftp or ftp-data

8、查找ntp流量:

tcpdump -vvAs0 port 123

9、查找明文密码:

tcpdump port http or port ftp or port smtp or port imap or port pop3 or port telnet -lA | egrep -i -B5 'pass=|pwd=|log=|login=|user=|username=|pw=|passw=|passwd=|password=|pass:|user:|username:|password:|login:|pass |user '

 

发布了132 篇原创文章 · 获赞 132 · 访问量 31万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览