資料報過濾及分析例項 tshark tcpdump

2021-08-05 21:04:25 字數 2869 閱讀 8348

平時需要對資料報進行分析和統計,儘管使用python scapy庫來開發很方便,但若是熟悉tshark(wireshark的命令列),tcpdump 等工具,含editcap,mergecap 等,寫個簡單的shell分析指令碼,那會更加方便!

tcpdump

tshark

# 過濾出 src.pcap 中 2017-06-17 10:40:00 到 2017-06-17 10:50:00 之間的資料報,其中 -f 引數表示檔案格式,即 the file format of the output capture file! 留意 pcapng 格式的資料報

editcap -a "2017-06-17 10:40:00" -b "2017-06-17 10:50:00" src.pcap -f pcap dst.pcap

# -n 不進行網域名稱解析, 其他引數的意思 man tshark

tshark -n -r src.pcap -y "tcp.analysis.retransmission" -t fields -e tcp.stream | wc -l

echo

-e"the number of retransmission packets"

# 通過 -z 引數

tshark -z io,stat,0,"tcp.analysis.retransmission" -n -q -r src.pcap

# -c 顯示檔案中資料報的個數

capinfos -c -m src.pcap

content=$(capinfos -c -m src.pcap)

total=$(echo

$content | grep packet | cut -d : -f

3) # 獲取檔案中資料報的個數

tshark -z io,stat,5,"ip.addr==180.153.15.118","ip.src==180.153.15.118","ip.dst==180.153.15.118" -n -q -r 1030_1038_8300.pcap > five_second.csv
tshark -z io,stat,5,"ip.addr==180.153.15.118 && tcp.analysis.retransmission",\

"ip.src==180.153.15.118 && tcp.analysis.retransmission",\

"ip.dst==180.153.15.118 && tcp.analysis.retransmission" \

-n -q -r src.pcap > dst.csv

tshark -z io,stat,5,\

"frames()ip.src==$ && tcp.flags.syn==1 && !(tcp.flags.ack==1)",\

"frames()ip.dst==$ && tcp.flags.syn==1 && !(tcp.flags.ack==1)",\

"frames()ip.src==$ && tcp.flags.fin==1",\

"frames()ip.dst==$ && tcp.flags.fin==1",\

"frames()ip.src==$ && tcp.flags.reset==1",\

"frames()ip.dst==$ && tcp.flags.reset==1",\

"frames()ip.src==$ && tcp.flags.syn==1 && !(tcp.flags.ack==1) && (!tcp.analysis.retransmission)",\

"frames()ip.dst==$ && tcp.flags.syn==1 && !(tcp.flags.ack==1) && (!tcp.analysis.retransmission)",\

"frames()ip.src==$ && tcp.flags.fin==1 && (!tcp.analysis.retransmission)",\

"frames()ip.dst==$ && tcp.flags.fin==1 && (!tcp.analysis.retransmission)",\

"frames()ip.src==$ && tcp.flags.reset==1 && (!tcp.analysis.retransmission)",\

"frames()ip.dst==$ && tcp.flags.reset==1 && (!tcp.analysis.retransmission)" \

-n -q -r src.pcap > dst.csv

過濾速度最快,而且是實時輸出!

tcpdump -z root -r src.pcap "tcp port 22" -w dst.pcap
tcpdump -z root -r src.pcap "tcp port 22 and (tcp[tcpflags] & tcp-fin != 0)" -w dst.pcap
## 示例: get /bidimg/hello

# tcp[24:4]==0x2f626964 匹配 /bid; tcp[28:4]==696d67ef 匹配 img/ 字段; 至於get欄位的匹配,可以自己去嘗試!

tcpdump -z root -r src.pcap "((tcp[24:4]==0x2f626964 and tcp[28:4]==696d67ef) and dst port 80)" -w dst.pcap

一些簡單的指令碼

很棒的參考

資料報過濾

一 osi網路模型 最低層為物理層,是第一層,最高層是應用層是第七層。如三層交換機指的就是第三層,也就是網路層。物理層被傳輸介質佔據,例如電纜規格和相關的訊號協議,換言之,它們傳輸位元。資料鏈路層在給定的物理介質上傳輸資料,並負責傳輸過程中的錯誤檢測和恢復。物理硬體位址的定義也在這一層,例如乙太網卡...

WinPcap程式設計 6 過濾 分析資料報

winpcap和libpcap的最強大的特性之一,是擁有過濾資料報的引擎。它提供了有效的方法去獲取網路中的某些資料報,這也是winpcap捕獲機制中的乙個組成部分。用來過濾資料報的函式是 pcap compile 和 pcap setfilter pcap compile 它將乙個高層的布林過濾表示...

IP資料報的分析例項

我們知道,使用 ethereal軟體可以方便地幫助我們進行抓取網路中的資料報,具體怎樣利用它分析乙個特定的包呢?我在網上找了半天,發現相關的分析ip包的文章很少,在此,我將自己在學習使用該軟體抓取ip包並分析的過程描述如下,供初學者入門之用,有分析不對的地方歡迎指正。最後附上簡單介紹ethereal...