本文是雪域論壇的一篇優(yōu)秀文章
參見雪論壇作者ID:樓
數(shù)據(jù)包嗅探分析工具
代碼云git地址:
https://gitee.com/lougd/snifferview.git
已編譯的可執(zhí)行文件:
https://pan.baidu.com/s/1XapqLl7YgjkO5yhrNPqehg
作者聯(lián)系方式:QQ:412776488 mail:lougdhr@126.com
如果你覺得這個工具對你有幫助,請點一顆星,謝謝!
發(fā)展記錄
這個工具的第一個版本是在2015年制作的,因為經常需要在不同的終端PC上進行數(shù)據(jù)包捕獲和網絡協(xié)議分析,而wireshark一直用于數(shù)據(jù)包捕獲分析。wireshark的安裝包比較大,每次安裝都太繁瑣,不支持環(huán)回網絡包的捕獲,所以決定自己做包協(xié)議分析工具。
所以有了這個工具的第一個版本。然后在使用的同時豐富工具的功能,現(xiàn)在就有這個版本了。
主要功能和特點
該工具不是一個演示,而是一個穩(wěn)定、實用、功能強大的網絡數(shù)據(jù)包修改和分析工具。如果需要經常捕獲、分析和記錄網絡數(shù)據(jù)包,可以使用這個工具。
支持本地所有網卡的網絡封包嗅探捕獲,包括127地址的回環(huán)包。支持類似wireshark的封包過濾語句,方便靈活的對網絡封包進行過濾。支持tcp流追蹤功能,方便的跟蹤單個的tcp數(shù)據(jù)流。支持進程網絡狀態(tài)探測,可以方便的查看指定進程的網絡狀態(tài)。支持已捕獲網路數(shù)據(jù)的導入導出,可以方便的隨時dump已捕獲的網絡數(shù)據(jù)。工具小巧,綠色(1mb多,只有一個可執(zhí)行文件),無任何依賴,啟動運行速度快。C++語言開發(fā),vs2008集成工具開發(fā)工具編譯,用vs2008打開工程根目錄下的SnifferView.sln工程文件編譯即可。工具功能截圖
軟件體系結構
ComLib子項目:
基本功能的靜態(tài)庫為每個子功能提供通用的基本功能組件。
SnifferView子項目:
主要功能模塊實現(xiàn)主要功能,包括網絡數(shù)據(jù)包嗅探、過濾語句編譯解析器實現(xiàn)、網絡協(xié)議分析、數(shù)據(jù)流查看等。
轉儲子項目:
異常捕獲處理模塊捕獲未處理的異常,并生成異常轉儲和異常日志,用于分析異常的原因。
語法視圖子項目:
語法高亮控件,基于Scintilla,目前用于顯示tcp數(shù)據(jù)流。
指令
這個程序只有一個可執(zhí)行程序,程序啟動后就開始包嗅探。但是由于此時沒有過濾語句,會捕獲到很多數(shù)據(jù)包,所以可以在主界面的過濾規(guī)則框中輸入合適的過濾規(guī)則來捕獲感興趣的網絡數(shù)據(jù)包。特定的過濾規(guī)則和wireshark類型已經過優(yōu)化。主要規(guī)則如下。
嗅探器查看過濾規(guī)則:
嗅探器視圖的過濾器語法示例:
Ip.addr== 192.168。168.231過濾ip源地址或目的地址為192.168的網絡數(shù)據(jù)包。168.231
Icmp過濾icmp協(xié)議的數(shù)據(jù)包
Tcp.src== 8345使用Tcp源端口8345過濾網絡數(shù)據(jù)包
tcp.length>。128過濾長度大于128字節(jié)的tcp數(shù)據(jù)包,不包括ip報頭和tcp報頭
Tcp包含“獲取”過濾器,過濾內容中帶有獲取字符串的TCP數(shù)據(jù)包
Tcp[ 4:n32]== 0x12ff過濾偏移4字節(jié)的Tcp用戶數(shù)據(jù),以獲取32位數(shù)據(jù)大小為0x12ff的數(shù)據(jù)包
Tcp.flag.syn過濾標有syn的Tcp數(shù)據(jù)包
Tcp[字符]==“獲取”過濾數(shù)據(jù)包,其TCP用戶數(shù)據(jù)偏移量為0字節(jié)
Http過濾http協(xié)議
Http。獲取過濾器http的獲取協(xié)議
Http.post篩選器http post協(xié)議
Http.resp過濾Http的返回數(shù)據(jù)包
http.url contains "img"過濾http的url中包含img字符串的封包 Http.url包含“img”過濾http . URL中包含img字符串的數(shù)據(jù)包
過濾規(guī)則的關鍵字:
Ip層:IP,IP.addr,IP.src,IP.dst,IP.length。
Icmp層:icmp
Tcp層:tcp.port,tcp.src,tcp.dst,tcp.length,tcp . flag . syn | ack | fin | rst | psh | urg,tcp [a: b] (a為偏移量,b為具體數(shù)據(jù)類型,no a表示偏移量為0),TCP包含“aaa”
Udp層:類似于tcp,不再贅述
應用層協(xié)議:
Http協(xié)議:http,http.get,http.post,http.head,http.options,http.put,http.delete,http.tarce,http . url contains " aaa "(http的URL包含AAA數(shù)據(jù)包)
過濾規(guī)則的數(shù)據(jù)類型(對于tcp[ a:b]或udp[ a:b]):
N8( 8位無符號整數(shù))、n16( 16位無符號整數(shù))、n32( 32位無符號整數(shù))、字節(jié)(與N8相同)、字節(jié)(字節(jié)列表)、字符(字符類型)、字符(字符串)
過濾規(guī)則的邏輯連接器:
>。(大于),:=(大于或等于),
過濾器表達式可以用和(&:& amp;)或或(||),可以使用括號,如長度大于128的GET包或POST包:
tcp.length>。128 and(TCP[chars]= " GET " or TCP[chars]= " POST ")
與wireshark相比,嗅探器新語法的主要改進:
wireshark過濾包內容時,語法是tcp[ a:b],其中A是偏移量,B是匹配長度,偏移量從tcp頭開始,tcp頭還是比較長的,只能逐字節(jié)匹配,不方便使用。我們通常不關注tcp報頭中的內容,而是關注用戶數(shù)據(jù)的內容。因此,當嗅探器視圖過濾內容時,偏移量從用戶數(shù)據(jù)開始。程序自動計算tcp報頭長度,支持各種數(shù)據(jù)類型匹配,自動計算匹配長度。如果匹配字符串中有nr,將自動改為回車換行。
例如:
Tcp[ 4:n16]== 0x33ee從用戶數(shù)據(jù)偏移4個字節(jié),以匹配大小為0x33ee的16位整數(shù)數(shù)據(jù)
Tcp[ 5:chars]== "aaaa "從用戶數(shù)據(jù)偏移5個字節(jié),以匹配字符串aaaa
關于配置界面中的主機字節(jié)順序和網絡字節(jié)順序:
選擇主機字節(jié)順序意味著數(shù)據(jù)包中的數(shù)據(jù)以主機字節(jié)順序存儲,選擇網絡字節(jié)順序意味著數(shù)據(jù)包中的數(shù)據(jù)以網絡字節(jié)順序存儲。
例如:
tcp[ 4:n32]== 0x12345678
如果選擇主機字節(jié)順序,它將從用戶數(shù)據(jù)偏移4字節(jié)的位置依次匹配0x78、0x56、0x34、0x12
如果選擇網絡字節(jié)順序,它將從用戶數(shù)據(jù)偏移4字節(jié)的位置開始依次匹配0x12、0x34、0x56、0x78
關于作者
QQ:412776488 mail:lougdhr@126.com
有什么問題或者好的建議可以聯(lián)系作者。謝謝!
見雪id:婁國棟
https://bbs.pediy.com/user-468728.htm
*本文原作者是觀雪論壇婁國棟。請注明來自觀雪社區(qū)
高級安全圈,我必須讀的一本書
﹀
﹀
﹀
1.《sniffer 開源自己開發(fā)的一些工具--封包嗅探工具SnifferView》援引自互聯(lián)網,旨在傳遞更多網絡信息知識,僅代表作者本人觀點,與本網站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《sniffer 開源自己開發(fā)的一些工具--封包嗅探工具SnifferView》僅供讀者參考,本網站未對該內容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉載時請保留本站內容來源地址,http://f99ss.com/guoji/1087732.html