019 Linux tcpdump 抓包案例入門可真簡單啊?

不甩鍋的碼農發表於2022-03-06

file

1 tcpdump 是什麼?

tcpdump 可以將網路中傳送的資料包完全截獲下來提供分析。它支援針對網路層、協議、主機、埠的過濾,並提供and、or、not等邏輯語句來幫助你過濾掉不關注的資訊。
通常用 tcpdump 抓包資料輸出到檔案(如在 linux 伺服器上抓包資料),把檔案下載拖到工作電腦 Wireshark 軟體上配合分析(Wireshark 使用自行白度,也可以使用 wireshark 直接抓包分析)。

2 tcpdump 常用命令引數

還有非常多的引數,只簡單備註一些常用的

  • -i<網路介面> 使用指定的網路截面送出資料包。
  • -w<資料包檔案> 把資料包資料寫入指定的檔案。
  • -v 詳細顯示指令執行過程。
  • -n 不把主機的網路地址轉換成名字。

3 tcpdump 抓包wss,配合Wireshark分析

//ip 瞎寫的哈,脫敏
tcpdump -i en0  '((src or dst host 163.235.251.6) or (src or dst host 163.235.251.7) or (src or  dst host 163.235.251.8))'   -w wss-log.cap
  • (1)eth0 是網路卡,可以通過 ifconfig 檢視你的網路卡。
  • (2)((src or dst host 163.235.251.6) or (src or dst host 163.235.251.7) or (src or dst host 163.235.251.8)) 這一段表示,一次監聽抓取多個遠端的主機地址,src or dst 可以把互動都抓出來,就是從這臺發出來的,到這臺回覆的都可以抓出來,可以看到 TCP 完整的握手揮手過程。
  • (3)-w wss-log.cap 這個是把抓取的日誌,寫到 wss-log.cap,檔名以.cap 結尾。
  • (4)工作電腦下載 Wireshark 並開啟,把上面的檔案 wss-log.cap 拖到 Wireshark 介面即可看到協議互動過程。
  • (5)下面是一次 wss 的抓包(websocket+TLS),圖片資訊做脫敏處理。

file

4 tcpdump 抓包白度,配合Wireshark分析)

(1)抓包命令

tcpdump -i  en0  'src or dst   host www.baidu.com' -w baidu.cap

(2)訪問下白度

curl www.baidu.com

(3)Wireshark分析下抓的資料

file

5 tcpdump 其他一些用例

1 抓取經過指定埠的資料包,不指定網路卡

tcpdump -vn -i  any  port 7280  -w tcptemp.cap
  • (1)-i interface 指定 tcpdump 需要監聽的介面,'any' 這個虛擬網路介面可被用來接收所有網路介面上的資料包。
  • (2)-v 當分析和列印的時候,產生詳細的輸出。比如包的生存時間,標識,總長度以及 IP 包的一些選項。這也會開啟一些附加的包完整性檢測,比如對IP或ICMP包頭部的校驗和。
  • (3)-n 不對地址(比如主機地址,埠號)進行數字表示到名字表示的轉換。

2 指定主機,ip 抓包

tcpdump tcp port 23 and host 163.235.251.6

6 小結

tcpdump 可以將網路中傳送的資料包完全截獲下來提供分析。通常用 tcpdump 抓包資料輸出到檔案(如在 linux 伺服器上抓包資料),把檔案下載拖到工作電腦 Wireshark 軟體上配合分析。本文記錄了最簡單的一些 case 使用,起到拋磚引玉的作用。

「不甩鍋的碼農」原創,轉載請註明來源,未經授權禁止商業用途!同名 GZH 請關注!

相關文章