Ⅰ 使用WireShark搜索想要的包(簡約版)
我們通過tcpmp從伺服器抓下來的包,通過WireShark打開後,是一堆原始數據。如何在成千上萬條原始數據中找到我們想要的數據呢?本文章提供兩個最常用的方法供大家參考。
WireShark提供兩個搜索欄供大家使用,一個搜索欄在主頁面正上方,中間有「應用顯示過濾器的字樣」,我們可以在這個搜索欄中輸入例如來源Ip,目標Ip,埠等條件來檢索數據,下面寫幾個最常用的:
所有ip為10.45.1.1發送給埠為80或者80埠發出的tcp包:
ip.src == 10.45.1.1 && tcp.port == 80
所有TCP長度大於7byte的包:
tcp.len >= 7
所有http協議方法為POST,Path為/api/getUser.do的包
http.request.method=="POST" && http.request.uri == "/api/getUser.do"
顯示包含TCP SYN標志的封包:
tcp.flags.syn == 0x02
tcp.window_size == 0 && tcp.flags.reset != 1
WireShark還允許精準的字元串搜索,在MAC系統中,COMMAND+F就能把字元串搜索給調出來,我們選擇下過濾器,一般我都會選擇字元串過濾器。
對於這個搜索欄,有多個選項,第一個選項最重要,選擇分組位元組流才能將所有包內容一網打盡,如果知道自己包的編碼,也一定要選擇正確的編碼才行,然後填寫完字元串後就能搜索了:
搜索完成後,頁面會自動跳轉到搜索結果條上去,搜索結果那一行會變灰,然後我們右鍵選擇搜索出來的那一行,然後選擇追蹤流-》TCP流,就能看到傳輸的內容了:
PS,如果在MAC本機抓包,WireShark會提示沒有網卡訪問許可權,這個時候執行下面的命令即可:
sudo chmod 777 /dev/bpf*
Ⅱ wireshark抓包
一、 wireshark是捕獲機器上的某一塊網卡的網路包 ,當你的機器上有多塊網卡的時候,你需要選擇一個網卡。
例如,我測試本地連接,直接選擇「本地連接」,進入如下界面
二、 WireShark 主要分為這幾個界面
1. Display Filter(顯示過濾器), 用於過濾
2. Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,埠號。 顏色不同,代表不同的協議,你也可以修改這些顯示顏色的規則, View ->Coloring Rules.
3. Packet Details Pane(封包詳細信息), 顯示封包中的欄位
Frame: 物理層的數據幀概況
Ethernet II: 數據鏈路層乙太網幀頭部信息
Internet Protocol Version 4: 互聯網層IP包頭部信息
Transmission Control Protocol: 傳輸層T的數據段頭部信息,此處是TCP
Hypertext Transfer Protocol: 應用層的信息,此處是HTTP協議
4. Dissector Pane(16進制數據)
5. Miscellanous(地址欄,雜項)
wireshark頂部顯示過濾器
使用過濾是非常重要的, 初學者使用wireshark時,將會得到大量的冗餘信息,在幾千甚至幾萬條記錄中,以至於很難找到自己需要的部分。搞得暈頭轉向。
過濾器會幫助我們在大量的數據中迅速找到我們需要的信息。
過濾器有兩種,
一種是顯示過濾器,就是主界面上那個,用來在捕獲的記錄中找到所需要的記錄
一種是捕獲過濾器,用來過濾捕獲的封包,以免捕獲太多的記錄。 在Capture -> Capture Filters 中設置
保存過濾
1)設置顯示過濾器,按如下步驟進行編輯
過濾表達式的規則
表達式規則
1. 協議過濾
比如TCP,只顯示TCP協議。
2. IP 過濾
比如 ip.src ==192.168.1.102 顯示源地址為192.168.1.102,
ip.dst==192.168.1.102, 目標地址為192.168.1.102
3. 埠過濾
tcp.port ==80, 埠為80的
tcp.srcport == 80, 只顯示TCP協議的願埠為80的。
4. Http模式過濾
http.request.method=="GET", 只顯示HTTP GET方法的。
5. 邏輯運算符為 AND/ OR
常用的過濾表達式
三、 wireshark與對應的OSI七層模型
TCP包的具體內容
從下圖可以看到wireshark捕獲到的TCP包中的每個欄位。
四、實例分析TCP三次握手過程
看到這, 基本上對wireshak有了初步了解, 現在我們看一個TCP三次握手的實例
三次握手過程為
這圖我都看過很多遍了, 這次我們用wireshark實際分析下三次握手的過程。
打開wireshark, 打開瀏覽器輸入 http://www.cr173.com
在wireshark中輸入http過濾, 然後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵然後點擊"Follow TCP Stream",
這樣做的目的是為了得到與瀏覽器打開網站相關的數據包,將得到如下圖
圖中可以看到wireshark截獲到了三次握手的三個數據包。第四個包才是HTTP的, 這說明HTTP的確是使用TCP建立連接的。
第一次握手數據包
客戶端發送一個TCP,標志位為SYN,序列號為0, 代表客戶端請求建立連接。 如下圖
第二次握手的數據包
伺服器發回確認包, 標志位為 SYN,ACK. 將確認序號(Acknowledgement Number)設置為客戶的I S N加1以.即0+1=1, 如下圖
第三次握手的數據包
客戶端再次發送確認包(ACK) SYN標志位為0,ACK標志位為1.並且把伺服器發來ACK的序號欄位+1,放在確定欄位中發送給對方.並且在數據段放寫ISN的+1, 如下圖:
就這樣通過了TCP三次握手,建立了連接
Ⅲ wireshark 抓包的過濾條件(關於syn包)
看下面紅色的,如果不知道欄位怎麼設置,就點擊,左下角會顯示該欄位的過濾
比如tcp.flags.ack==1就會過濾出所有的ack包。
Ⅳ wireshark如何按照域名過濾
在抓包之前設置抓包過濾器,然後start或者在vm當中,在純凈無干擾的網路環境下抓。不是所有包我都要抓取:Capture->Options->Capture Filter。
需要掌握filter使用語法。如果不想掌握,可以嘗試基於進程抓包分析工具QPA,QPA搜索使用方式是直接在篩選框中輸入關鍵詞,然後回車即顯示相關目標報文。
工作流程
(1)確定Wireshark的位置。如果沒有一個正確的位置,啟動Wireshark後會花費很長的時間捕獲一些與自己無關的數據。
(2)選擇捕獲介面。一般都是選擇連接到Internet網路的介面,這樣才可以捕獲到與網路相關的數據。否則,捕獲到的其它數據對自己也沒有任何幫助。
Ⅳ wireshark抓包時對數據包中內容怎麼過濾
啟動wireshark,選復擇網卡,開始抓包 在過制濾裡面輸入oicq 就把QQ的包都過濾出來了 按照源和目的地址的區分,可以且僅可以分析出你抓包對象的QQ號碼 QQ現在使用密文發送,抓不出來聊天的內容了
Ⅵ wireshark過濾tcp syn報文
tcp.flags == 0x0002
Ⅶ 如何過濾wireshark重傳包
過濾源ip、目的ip。在wireshark的過濾規則框Filter中輸入過濾條件。如查找內目的地址容為192.168.101.8的包,ip.dst==192.168.101.8;查找源地址為ip.src==1.1.1.1;
埠過濾。如過濾80埠,在Filter中輸入,tcp.port==80,這條規則是把源埠和目的埠為80的都過濾出來。使用tcp.dstport==80隻過濾目的埠為80的,tcp.srcport==80隻過濾源埠為80的包;
協議過濾比較簡單,直接在Filter框中直接輸入協議名即可,如過濾HTTP的協議;
http模式過濾。如過濾get包,http.request.method=="GET",過濾post包,http.request.method=="POST";
連接符and的使用。過濾兩種條件時,使用and連接,如過濾ip為192.168.101.8並且為http協議的,ip.src==192.168.101.8 and http。
Ⅷ 怎麼用wireshark抓包網址過濾
你是捕獲的時候過濾嗎?在開始的對話框里輸入,用tcpmp的規則,wireshark的文檔里有。
如果是顯示的時候過濾,可以用向導的,用的是wireshark自己的過濾規則