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 服務器,虛擬機沒有什麼效果

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