TCPDUMP——抓包、篩選、高階篩選
https://wiki.wireshark.org/SampleCaptures/ 下載各種網路包的示例
TCPDUMP——抓包
抓包
- 預設之抓包68個位元組
- tcpdump -i eth0 -s 0 -w file.pcap
- Tcpdump -i eth0 port 22
讀取抓包檔案
-
Tcpdump -r file.pcap
實際操作:
- 檢視引數:tcpdump -h
常用: tcpdump -i eth0 -s 0 -w a.acp
-i eth0: 用eth0 介面進行抓包; -s 0:表示包有多大,抓取的資料多大; -w a.cap 表示存取到 a.cap 檔案中
接著Ping 8.8.8.8 然後停止抓包 可以看到抓了12057個包
接著使用tcpdump -r a.acp 檢視抓包的內容
-r 只是顯示摘要資訊,如果想要看詳細資訊可以使用 tcpdump -A -r a.acp 使用Ascll顯示
也可以使用 tcpdump -X -r a.acp 使用十六進位制顯示
如果想要抓某一埠的包可以使用 Tcpdump -i eth0 port <埠號>
TCPDUMP——篩選
- tcpdump -n -r http.cap | wak'{print$3}'|sort -u
- tcpdump -n src host 145.254.160.237 -r http.cap
- tcpdump -n dst host 145.254.160.237 -r http.cap
- tcpdump -n port 53 -r http.cap
- tcpdump -n -X port 80 -r http.cap
以 http.cap為例 (實驗檔案可以在文章開頭的連結下載)
首先使用tcpdump -n -r http.cap 抓取所有的
然後抓取 http.cap 第三列的資訊 tcpdump -n -r http.cap | awk '{print $3}'
裡面顯示的資訊有重複的Ip 以及埠號,可以新增 sort -u
其實 tcpdump 提供了顯示篩選功能
比如 tcpdump -n src host 145.254.160.237 -r http.cap 只顯示源IP:145.254.160.237
以及只顯示 目標IP為 145.254.160.237
檢視 53埠 tcpdump -n port 53 -r http.cap
或者檢視 udp 53 埠 tcpdump -n udp port 53 -r http.cap
以十六進位制的顯示 tcpdump -n -X port 53 -r http.cap
左邊為十六進位制 右邊為 Ascll編碼
tips: tcpdump -n -X port 80 -r http.cap 小寫的 x 不顯示 Ascll編碼
TCPDUMP——高階篩選
- tcpdump -A -n 'tcp[13]=24' -r http.cap
顯示tcp 13號位元組,第14個位元組換算成十進位制為24 的包 顯示出來
第一個包
第二個包
基於特性可以篩選包中任何位置 任何數值的包