10.10-Linux下抓包

有时也许想看一下某个网卡上都有哪些数据包,尤其是当你初步判定服务器上有流量攻击时,使用抓包工具来抓取数据包就可以知道有哪些 IP 在攻击了。

tcpdump 工具

[root@evan-01 ~]# tcpdump
-bash: tcpdump: command not found
[root@evan-01 ~]# yum install -y tcpdump


ifconfig 查看网卡信息

[root@evan-01 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.94.128  netmask 255.255.255.0  broadcast 192.168.94.255
        inet6 fe80::dc8f:bbc8:e3f6:6009  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:ef:0d:47  txqueuelen 1000  (Ethernet)
        RX packets 103  bytes 9412 (9.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 83  bytes 9883 (9.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 40  bytes 3128 (3.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 40  bytes 3128 (3.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@evan-01 ~]# 
[root@evan-01 ~]# tcpdump -nn -i ens33

在这里插入图片描述回车后会出现密密麻麻的一对字符串,在按 Ctrl+c 之前,这些字符串一直在刷屏,刷屏越快说明网卡上的数据包越多。我们只需要关注第3列和第4列,他们显示的信息为哪一个 IP+端口号在连接哪一个IP+端口号。后面的信息是该数据包的相关信息。

-i 选项后面跟设备名称,如果想抓取其他网卡的数据包,后面则要跟其他网卡的名字。
-nn 选项的作用是让第3列和第4列显示成“IP+端口号”的形式,如果不加 -nn 选项则显示 “主机名+服务名称”

指定端口抓包
指定抓端口 22 的包

[root@evan-01 ~]# tcpdump -nn -i ens33 port 22

在这里插入图片描述

指定不抓端口 22 的包

[root@evan-01 ~]# tcpdump -nn -i ens33 not port 22

在这里插入图片描述

指定抓不带 22 端口的,host 为 192.168.94.128的包

[root@evan-01 ~]# tcpdump -nn -i ens33 not port 22 and host 192.168.94.128

指定抓包数量,抓够了自动退出

[root@evan-01 ~]# tcpdump -nn -i ens33 -c 20

在这里插入图片描述

指定抓包数量,抓够了存起来

[root@evan-01 ~]# tcpdump -nn -i ens33 -c 20 -w /tmp/bag.txt
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes
20 packets captured
20 packets received by filter
0 packets dropped by kernel
[root@evan-01 ~]# #

查看保存的文件信息

[root@evan-01 ~]# file /tmp/bag.txt
/tmp/bag.txt: tcpdump capture file (little-endian) - version 2.4 (Ethernet, capture length 262144)
[root@evan-01 ~]# 

不能 cat 会乱码的

[root@evan-01 ~]# cat /tmp/bag.txt

在这里插入图片描述非要查看的话这么做

[root@evan-01 ~]# tcpdump -r /tmp/bag.txt
reading from file /tmp/bag.txt, link-type EN10MB (Ethernet)
17:20:10.435887 IP evan-01.ssh > 192.168.94.1.51017: Flags [P.], seq 1497515368:1497515500, ack 3398625503, win 255, length 132
17:20:10.436008 IP 192.168.94.1.51017 > evan-01.ssh: Flags [.], ack 132, win 8211, length 0
17:20:15.438980 ARP, Request who-has 192.168.94.1 tell evan-01, length 28
17:20:15.439271 ARP, Reply 192.168.94.1 is-at 00:50:56:c0:00:08 (oui Unknown), length 46
17:20:56.427613 IP 192.168.94.1.mdns > 224.0.0.251.mdns: 0 A (QM)? wpad.local. (28)
17:20:56.428243 IP6 fe80::88e9:9626:f187:f24d.mdns > ff02::fb.mdns: 0 A (QM)? wpad.local. (28)
17:20:56.428844 IP 192.168.94.1.mdns > 224.0.0.251.mdns: 0 AAAA (QM)? wpad.local. (28)
17:20:56.429097 IP6 fe80::88e9:9626:f187:f24d.mdns > ff02::fb.mdns: 0 AAAA (QM)? wpad.local. (28)
17:20:56.841162 IP6 fe80::88e9:9626:f187:f24d.65285 > ff02::1:3.hostmon: UDP, length 22
17:20:56.841224 IP6 fe80::88e9:9626:f187:f24d.52343 > ff02::1:3.hostmon: UDP, length 22
17:20:56.841234 IP 192.168.94.1.52343 > 224.0.0.252.hostmon: UDP, length 22
17:20:56.841258 IP 192.168.94.1.65285 > 224.0.0.252.hostmon: UDP, length 22
17:20:56.922097 ARP, Request who-has gateway tell 192.168.94.1, length 46
17:20:57.427739 IP 192.168.94.1.mdns > 224.0.0.251.mdns: 0 A (QM)? wpad.local. (28)
17:20:57.428051 IP6 fe80::88e9:9626:f187:f24d.mdns > ff02::fb.mdns: 0 A (QM)? wpad.local. (28)
17:20:57.429628 IP 192.168.94.1.mdns > 224.0.0.251.mdns: 0 AAAA (QM)? wpad.local. (28)
17:20:57.430054 IP6 fe80::88e9:9626:f187:f24d.mdns > ff02::fb.mdns: 0 AAAA (QM)? wpad.local. (28)
17:20:57.927551 ARP, Request who-has gateway tell 192.168.94.1, length 46
17:20:58.922416 ARP, Request who-has gateway tell 192.168.94.1, length 46
17:20:59.922613 ARP, Request who-has gateway tell 192.168.94.1, length 46
[root@evan-01 ~]# 

wireshark 工具
也许你在 windows 下使用过 wireshark 这个抓包工具,它的功能非常强大。在 linux 平台我们同样也可以使用它,只不过是以命令行的形式。 wireshark 的具体选项不再介绍,在日常生活中 tcpdump 其实就够我们使用了。下面的用法是在工作中用的比较多的

[root@evan-01 ~]# tshark
-bash: tshark: command not found
[root@evan-01 ~]# yum install -y wireshark
tshark -n -t a -R http.request -T fields -e "frame.time" -e "ip.src" -e "http.host" -e "http.request.method" -e "http.request.uri"

这条命令是用于 web 服务器,虚拟机没有什么效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章