1. 程式人生 > >抓包工具tcpdump

抓包工具tcpdump

簡介

tcpdump可以抓取指定規則的流量包,並按要求儲存或者解析列印,可以通過 and、not、or等邏輯語 拼出多個條件的命令,抓取符合要求的流量資料

資料儲存到檔案

# -w儲存資料到檔案,檔名字尾為.pcap
#可以儲存80埠的tcp流量,1000條 儲存到abc.pcap檔案中
tcpdump tcp port 80 -c 1000 -w  abc.pcap 

資料讀取

#通過-w儲存的檔案,儲存的資料是未解析的資料,不能直接用vim開啟檢視,需要使用命令-r 檔名
tcpdump -r abc.pcap

其他常用引數用法

#指定抓取型別
tcpdump tcp #會抓取tcp會話
#ip icmp arp rarp 和 tcp、udp、icmp這些選項等都要放到第一個引數的位置,用來過濾資料報的型別

#一些常用引數
-c num #後跟數字,統計達到數字或執行退出命令就會停止抓取
-C file-size #後跟檔案大小,單位是百萬,達到檔案大小後,自動新建一個 -w設定的檔名 +數字的檔案開始儲存
-i eth0 #選擇抓取的網口,例如eth0
-n #不將地址、埠號轉化成名稱,會預設將80埠轉化成http
-w **.pcap #將資料儲存到檔案中
-r **.pcap #解析檔案內容並列印
-t #不要在每個轉儲行上列印時間戳。
-tt #列印時間戳,自1970年1月1日00:00:00,UTC以及自該時間以來的每秒分數,在每個轉儲行上。
-ttt #在每個轉儲行上的當前行和上一行之間 列印增量(微秒或納秒解析度,具體取決於 --time-stamp-precision選項)。預設值為微秒解析度。
-tttt #在每個轉儲行上列印時間戳,以小時,分鐘,秒和從午夜開始的一小時一秒,以日期開頭。
-ttttt #在每個轉儲線上的當前行和第一行之間 列印增量(微秒或納秒解析度,具體取決於 --time-stamp-precision選項)。預設值為微秒解析度。
-e #輸出的每行中都將包括資料鏈路層頭部資訊,例如源MAC和目標MAC。
-q #快速列印輸出。即列印很少的協議相關資訊,從而輸出行都比較簡短。
-X #輸出包的頭部資料,會以16進位制和ASCII兩種方式同時輸出。
-XX #輸出包的頭部資料,會以16進位制和ASCII兩種方式同時輸出,更詳細。
-v #當分析和列印的時候,產生詳細的輸出。
-vv #產生比-v更詳細的輸出。
-vvv #產生比-vv更詳細的輸出。

輸出形式

tcpdump總的的輸出格式為:系統時間 來源主機.埠 > 目標主機.埠 資料包引數

# 09:59:06.234545 IP 117.107.133.170.50296 > iZ2zehmlw2nbbc21pdwtv7Z.http: Flags [P.], seq 509:1017, ack 3526, win 16425, length 508: HTTP: GET / HTTP/1.1

上面是一條抓取的資料,開頭是時間,IP後是來源ip.埠號 >目的IP.埠號 Flags標誌是S(SYN),F(FIN),P(PUSH),R(RST),U(URG),W(ECN CWR),E(ECN-Echo)或“.”的某種組合。