1. 程式人生 > >TCPDUMP——抓包、篩選、高階篩選

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 的包 顯示出來

第一個包

第二個包

基於特性可以篩選包中任何位置 任何數值的包