[安全] tcpdump使用

1.安装tcpdump

yum install tcpdump -y

2.tcpdump简单使用

1)指定端口

tcpdump -i eth0

默认只显示抓到的包的简略信息,例如源目的IP,端口,包的大小等。

显示的信息如下:

04:38:37.628015 IP 192.168.4.211.ssh > 192.168.4.199.7225: Flags [P.], seq 532304:532564, ack 313, win 264, length 260

2)以16进制显示全量数据

tcpdump -i eth0 -X

-X就表示十六进制。

显示的信息如下:

04:40:01.298591 IP 192.168.4.199.7225 > 192.168.4.211.ssh: Flags [.], ack 70300, win 8212, length 0
        0x0000:  4500 0028 ca74 4000 4006 e570 c0a8 04c7  E..(.t@.@..p....
        0x0010:  c0a8 04d3 1c39 0016 bd88 6633 3d59 0090  .....9....f3=Y..
        0x0020:  5010 2014 86e1 0000 0000 0000 0000       P.............

这个和wireshark中显示的内容看起来很像了。

除了-X以外,tcpdump还支持很多种显示格式,例如-A表示ASCii码显示。

3)过滤端口

tcpdump -i eth0 port 22

只显示与22端口相关的数据包。

4)过滤协议

tcpdump -i eth0 icmp

5)将抓包结果写入文件

tcpdump -i eth0 icmp -w res.cap

6)从文件中读出结果

tcpdump -r res.cap

从读取数据中过滤源IP:

tcpdump src host 14.215.177.38 -r cap2.txt 

过滤出源IP为14.215.177.38的条目。过滤目的IP用 dst host 192.168.4.146 。

过滤协议:

tcpdump icmp -r cap2.txt 

过滤出icmp协议的条目。

过滤端口号:

tcpdump port 22 -r cap2.txt 

使用awk挖掘源IP地址(第三列):

[root@centos7-test ~]# tcpdump -r cap1.txt | awk '{print $3}'

我们可以通过awk等文本处理工具来提取其中的关键数据,但是在抓到的数据中,不同协议对应的文本格式可能是不同的,所以具体问题要具体分析。

原文地址:https://www.cnblogs.com/leokale-zz/p/12721463.html