之前一直用gui的wireshark進(jìn)行抓包,現(xiàn)在學(xué)習(xí)一下命令行的tcpdump,做個(gè)記錄。
簡介
tcpdump是一個(gè)抓包工具。它能夠監(jiān)聽、記錄通過某一個(gè)主機(jī)進(jìn)出的網(wǎng)絡(luò)流量。并且可以保存到文件,或者再從文件讀取抓下來的數(shù)據(jù)包。它保存下來的包也可以導(dǎo)入到wireshark里面,利用gui工具進(jìn)行查看(一般說來在gui里面查看過濾比較方便)。當(dāng)然了,很重要的一點(diǎn)是,抓取的時(shí)候你就能設(shè)置各種各樣的過濾器,免得你在查看的時(shí)候如同大海撈針,在海量數(shù)據(jù)里面尋找有用信息。
使用
首先,使用tcpdump要使用root登錄或者sudo權(quán)限。這也很好理解,整臺機(jī)器的流量都能看到了,要是任何用戶都能看到,就沒秘密可言了。
tcpdump如果不加任何參數(shù),他會(huì)抓網(wǎng)絡(luò)設(shè)備中第一個(gè)設(shè)備的包(不包括lo),并且打印出每個(gè)包的簡短信息。
-nn選項(xiàng):
意思是說當(dāng)tcpdump遇到協(xié)議號或端口號時(shí),不要將這些號碼轉(zhuǎn)換成對應(yīng)的協(xié)議名稱或端口名稱。比如,眾所周知21端口是FTP端口,我們希望顯示21,而非tcpdump自作聰明的將它顯示成FTP。
-X選項(xiàng):
告訴tcpdump命令,需要把協(xié)議頭和包內(nèi)容都原原本本的顯示出來(tcpdump會(huì)以16進(jìn)制和ASCII的形式顯示),這在進(jìn)行協(xié)議分析時(shí)是絕對的利器。
-t選項(xiàng)
輸出不打印時(shí)間戳
-F選項(xiàng)
指定過濾表達(dá)式所在的文件
-c選項(xiàng):
是Count的含義,這設(shè)置了我們希望tcpdump幫我們抓幾個(gè)包。我設(shè)置的是1,所以tcpdump不會(huì)幫我再多抓哪怕一個(gè)包回來。
是否 verbose
級別
-v
-vv
-vvv
沒有-vvvv
-s選項(xiàng)
限定包的大小。
默認(rèn)每個(gè)包存68 bytes。加上-s選項(xiàng),調(diào)整這個(gè)參數(shù)。
tcpdump host 1.2.3.4 -s 120
如果 -s 0,說明把存全量。
指定協(xié)議
proto??梢园╰cp,udp,icmp等,但是可以不加proto。
tcpdump icmp
協(xié)議總共有如下
- ether – 鏈路層協(xié)議
- fddi – 鏈路層協(xié)議
- tr – 鏈路層協(xié)議
- wlan – 鏈路層協(xié)議
- ppp – 鏈路層協(xié)議
- slip – 鏈路層協(xié)議
- link – 鏈路層協(xié)議
- ip
- arp
- rarp
- tcp
- udp
- icmp
- ip6
- radio
包大小過濾
tcpdump less 32
tcpdump greater 128
也可以這樣使用
tcpdump >32
tcpdump <= 100
寫入文件
-w參數(shù)寫入文件,-r參數(shù)從文件中讀取
tcpdump -i eth1 port 80 -w capture_file
tcpdump -r capture_file
wireshark也可以導(dǎo)入查看
富有創(chuàng)造力
運(yùn)算符
- and 運(yùn)算符 使用 and 或者 &&
- OR 使用 or 或者 ||
- EXCEPT 使用not 或者 !
過濾表達(dá)式
過濾表達(dá)式大體可以分成三種過濾條件,“類型”、“方向”和“協(xié)議”
詳細(xì)可以看
man pcap-filter
-i 參數(shù)
指定eth0 還是 eth1
tcpdump icmp -i eth1
只抓icmp的包
-i any 監(jiān)聽所有
host
只抓某個(gè)host的包
tcpdump host 1.2.3.4
tcpdump host 101.68.136.139 -i any
因?yàn)閟sh連著,會(huì)有很多的包
src dst
指定目標(biāo)地址,源地址
tcpdump src 2.3.4.5
tcpdump dst 3.4.5.6
例如這個(gè)是百度服務(wù)器對ping的回應(yīng)
port
指定port
tcpdump port 22 -i eth1
例如看ssh鏈接的信息,用22
80端口
參數(shù)的組合
tcpdump src port 1025
tcpdump dst port 389
tcpdump src port 1025 and tcp
tcpdump udp and src port 53
port端口范圍
tcpdump portrange 21-23
參考資料
https://danielmiessler.com/study/tcpdump/
www.alexonlinux.com/tcpdump-for-dummies