[安全] 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等文本处理工具来提取其中的关键数据,但是在抓到的数据中,不同协议对应的文本格式可能是不同的,所以具体问题要具体分析。
保持学习,否则迟早要被淘汰*(^ 。 ^ )***