抓包工具tcpdump
阿新 • • 發佈:2018-12-21
簡介
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)或“.”的某種組合。