Wireshark是網絡抓包工具,該軟件的界面還是蠻簡潔的,它可以隨時檢測網絡數據,幫助網絡工程師對網絡進行分析,是款非常不錯的網絡輔助軟件,有需求的用戶們千萬不要錯過哦!
軟件介紹
Wireshark款電腦抓包軟件,它可以實現網絡封包功能,通過各項數據幫助工程師對網絡進行分析,有效抓取網絡通訊數據快照,幫助網絡工程師來檢測出信息安全的相關問題。同時這款軟件不會對網絡數據內容進行修改,這樣就能防止被修改后找不到問題的情況。
該版本適用于32位和64位的, 初學者可以通過學習相關的網絡協議知識,它能夠通過捕獲數據來進行過濾,不會受到其他數據的干擾,幫助用戶來節省時間。當傳輸文件比較大的時候,還能夠進行多個數據包的傳輸,提高整體的效率!
軟件特色
Wireshark擁有許多強大的特性:
包含有強顯示過濾器語言(rich display filter language)和查看TCP會話重構流的能力;
它更支持上百種協議和媒體類型:
擁有一個類似tcpdump(一個Linux下的網絡協議分析工具)的名為tethereal的的命令行版本。
在過去,網絡封包分析軟件是非常昂貴,或是專門屬于營利用的軟件。
Ethereal的出現改變了這一切。
在GNU GPL通用許可證的保障范圍底下,使用者可以以免費的代價取得軟件與其程式碼,并擁有針對其原始碼修改及客制化的權利。Ethereal是目前全世界最廣泛的網絡封包分析軟件之一。
怎么抓包
開始界面
wireshark是捕獲機器上的某一塊網卡的網絡包,當你的機器上有多塊網卡的時候,你需要選擇一個網卡。
點擊Caputre->Interfaces.. 出現下面對話框,選擇正確的網卡。然后點擊"Start"按鈕, 開始抓包
Wireshark 窗口介紹
WireShark 主要分為這幾個界面
1. Display Filter(顯示過濾器), 用于過濾
2. Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,端口號。 顏色不同,代表
3. Packet Details Pane(封包詳細信息), 顯示封包中的字段
4. Dissector Pane(16進制數據)
5. Miscellanous(地址欄,雜項)
使用過濾是非常重要的, 初學者使用wireshark時,將會得到大量的冗余信息,在幾千甚至幾萬條記錄中,以至于很難找到自己需要的部分。搞得暈頭轉向。
過濾器會幫助我們在大量的數據中迅速找到我們需要的信息。
過濾器有兩種,
一種是顯示過濾器,就是主界面上那個,用來在捕獲的記錄中找到所需要的記錄
一種是捕獲過濾器,用來過濾捕獲的封包,以免捕獲太多的記錄。 在Capture -> Capture Filters 中設置
保存過濾
在Filter欄上,填好Filter的表達式后,點擊Save按鈕, 取個名字。比如"Filter 102",
Filter欄上就多了個"Filter 102" 的按鈕。
過濾表達式的規則
表達式規則
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
常用的過濾表達式
封包列表(Packet List Pane)
封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包信息。 你可以看到不同的協議用了不同的顏色顯示。
你也可以修改這些顯示顏色的規則, View ->Coloring Rules.
封包詳細信息 (Packet Details Pane)
這個面板是我們最重要的,用來查看協議中的每一個字段。
各行信息分別為
Frame: 物理層的數據幀概況
Ethernet II: 數據鏈路層以太網幀頭部信息
Internet Protocol Version 4: 互聯網層IP包頭部信息
Transmission Control Protocol: 傳輸層T的數據段頭部信息,此處是TCP
Hypertext Transfer Protocol: 應用層的信息,此處是HTTP協議
TCP包的具體內容
從下圖可以看到wireshark捕獲到的TCP包中的每個字段。
看到這, 基本上對wireshak有了初步了解, 現在我們看一個TCP三次握手的實例
三次握手過程為
這圖我都看過很多遍了, 這次我們用wireshark實際分析下三次握手的過程。
打開wireshark, 打開瀏覽器輸入 h t t p : / / w w w . c r 1 7 3 .c o m
在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三次握手,建立了連接
過濾規則
1、打開wireshark,先抓取一定數量的包,其中就包含你需要的數據包,要過濾出來,進行分析尋找問題
2、打開wireshark的幫助文檔,如下圖所示,是全英文的,不會的話就要去查和翻譯了
3、在彈出的幫助文檔頁面上,如下圖所示,找到wireshark的內容過濾的規則語法,所有的協議過濾都是如此,提供了基本的中括號運算符 “[]”進行內容的提取和判斷
4、如果基本的英文不了解,可以打開百度翻譯,一個一個單詞查詢翻譯了,其實也不需要全部弄明白,看到那些基本的語法,基本的意思也可以猜出來
5、下面來個簡單的實例,進行udp包的內容過濾規則,如下圖所示,我要過濾
ip地址為xx.xx.xx.xx 并且 是udp包的 并且 udp的數據前面4個字節等于0x02:0x37:0x2d:0x01 的數據包
ip.addr==xx.xx.xx.xx && udp && udp[8:4] == 02:37:2d:01
6、然后所有與之符合的數據包都被過濾出來了,像這種過濾規則也可以用于tcp,ftp,http等其它協議
7、本經驗文章主要是教會朋友如何查看文檔,使用幫助文檔解決wireshark遇到的問題,像上面的內容過濾其實還有很多有趣的功能,大家可以繼續深入了解一下
使用教程
下面來說一下Wireshark在抓包后常用的過濾方法,給網絡初學者一個參考。
1、過濾源ip、目的ip。
在wireshark的過濾規則框Filter中輸入過濾條件。如查找目的地址為192.168.101.8的包,ip.dst==192.168.101.8;查找源地址為ip.src==1.1.1.1
2、端口過濾
如過濾80端口,在Filter中輸入,tcp.port==80,這條規則是把源端口和目的端口為80的都過濾出來。使用tcp.dstport==80只過濾目的端口為80的,tcp.srcport==80只過濾源端口為80的包
3、協議過濾
比較簡單,直接在Filter框中直接輸入協議名即可,如過濾HTTP的協議
4、http模式過濾
如過濾get包,http.request.method=="GET",過濾post包,http.request.method=="POST"
5、連接符and的使用。
過濾兩種條件時,使用and連接,如過濾ip為192.168.101.8并且為http協議的,ip.src==192.168.101.8 and http。
基本設置
常用捕獲過濾器:
tcp[13]&32==32 (設置了URG位的TCP數據包)
tcp[13]&16==16 (設置了ACK位的TCP數據包)
tcp[13]&8==8 (設置了PSH位的TCP數據包)
tcp[13]&4==4 (設置了RST位的TCP數據包)
tcp[13]&2==2 (設置了SYN位的TCP數據包)
tcp[13]&1==1 (設置了FIN位的TCP數據包)
tcp[13]==18 (TCP SYN-ACK 數據包)
ether host 00:00:00:00:00:00 (流入或流出MAC地址的流量,替換為你的mac)
!ether host 00:00:00:00:00:00 (不流入或流出MAC地址的流量,替換為你的mac)
broadcast (僅廣播流量)
icmp (ICMP流量)
icmp[0:2]==0x0301 (ICMP目標不可達、主機不可達)
ip (僅IPv4流量)
ip6 (僅IPv6流量)
udp (僅UDP流量)
常用顯示過濾器:
!tcp.port==3389 (排除RDP流量)
tcp.flags.syn==1 (具有SYN標志位的TCP數據包)
tcp.flags.rst==1 (具有RST標志位的TCP數據包)
!arp (排除ARP流量)
http (所有HTTP流量)
tcp.port==23||tcp.port ==21 (FTP或telnet)
smtp||pop||imap (smtp、pop或imap)
常見問題
1.Wireshark可以使用哪些設備來捕獲數據包?
答:Wireshark可以讀取以太網,令牌環,FDDI,串行(PPP和SLIP)的實時數據(如果它運行的操作系統允許Wireshark這樣做),802.11無線局域網(如果它運行的操作系統允許Wireshark)要做到這一點),ATM連接(如果它運行的操作系統允許Wireshark這樣做),以及最近版本的libpcap在Linux上支持的“任何”設備。
2.我安裝了Wireshark RPM(或其他軟件包); 為什么安裝TShark而不是Wireshark?
答: 許多發行版都有單獨的Wireshark軟件包,一個用于非GUI組件,如TShark,editcap,dumpcap等,另一個用于GUI。如果您的系統出現這種情況,可能會有一個名為的單獨軟件包wireshark-qt。找到并安裝它。
3.當我嘗試運行Wireshark時,為什么抱怨 sprint_realloc_objid未定義?
答: Wireshark只能與版本4.2.2或更高版本的UCD SNMP鏈接。你的Wireshark版本與這種版本的UCD SNMP動態鏈接; 但是,您安裝了較舊版本的UCD SNMP,這意味著當運行Wireshark時,它會嘗試鏈接到舊版本,并失敗。您必須使用4.2.2版或更高版本替換該版本的UCD SNMP。
其他版本
Wireshark有適用于32位和64位的版本,用戶們可以根據自己的需求來進行下載,我們也提供了其他的版本號,用戶們可以根據自己的配置來進行選擇。
更多版本號 | |||
Wireshark 1.12版 | WiresharkV2.6.5(綠色版) | Wireshark v2.6.4 | Wireshark64位 V2.6.5 |
相關版本
-
5 雅虎助手
裝機必備軟件
網友評論