wireshark的原名是Ethereal,新名字是2006年起用的。當時Ethereal的主要開發人員決定離開他原來供職的公司,并繼續開發這個軟件。但因為Ethereal這個名稱的使用權已經被原來那個公司注冊,Wireshark這個新名字也就應運而生了。
在成功
執行Wireshark
之后,我們就能夠進入下一步,更進一步了解這個強大的工具。
以下是一張地址為192.168.1.2的計算機正在訪問“openmaniak.com”站點時的截圖。
![]() |
1.?
MENUS(菜單)
2.? SHORTCUTS(快捷方式) 3.? DISPLAY FILTER(顯示過濾器) 4.? PACKET LIST PANE(封包列表) |
5.?
PACKET DETAILS PANE(封包具體信息)
6.? DISSECTOR PANE(16進制數據) 7.? MISCELLANOUS(雜項) |
1.?
MENUS(菜單)
![]() |
- "File"(文件)
- "Edit" (編輯) - "View"(查看) - "Go" (轉到) - "Capture"(捕獲) - "Analyze"(分析) - "Statistics" (統計) - "Help" (幫助) |
打開或保存捕獲的信息。
查找或標記封包。進行全局設置。 設置Wireshark的視圖。 跳轉到捕獲的數據。 設置捕捉過濾器并開始捕捉。 設置分析選項。 查看Wireshark的統計信息。 查看本地或者在線支持。 |
2.? SHORTCUTS(快捷方式)
![]() |
您能夠將鼠標指針移動到某個圖標上以獲得其功能說明。
![]() |
請不要將捕捉過濾器和顯示過濾器的概念相混淆。請參考 Wireshark過濾器 中的具體內容。
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/b07059a7709f4439bc80960ef27d39f4.gif)
![]() |
![]() |
假設捕獲的是一個OSI layer 2的封包,您在Source(來源)和Destination(目的地)列中看到的將是MAC地址,當然,此時Port(port)列將會為空。
假設捕獲的是一個OSI layer 3或者更高層的封包,您在Source(來源)和Destination(目的地)列中看到的將是IP地址。Port(port)列僅會在這個封包屬于第4或者更高層時才會顯示。
您能夠在這里加入/刪除列或者改變各列的顏色:
Edit menu -> Preferences
5.? PACKET DETAILS PANE(封包具體信息)
![]() |
信息依照不同的OSI layer進行了分組,您能夠展開每一個項目查看。以下截圖中展開的是HTTP信息。
![]() |
6.? DISSECTOR PANE(16進制數據)
![]() |
在上面的樣例里,我們在“封包具體信息”中選擇查看TCPport(80),其相應的16進制數據將自己主動顯示在以下的面板中(0050)。
7.?
MISCELLANOUS(雜項)
![]() |
- - 正在進行捕捉的網絡設備。
- 捕捉是否已經開始或已經停止。
- 捕捉結果的保存位置。
- 已捕捉的數據量。
- 已捕捉封包的數量。(P)
- 顯示的封包數量。(D) (經過顯示過濾器過濾后仍然顯示的封包)
- 被標記的封包數量。(M)
正如您在Wireshark教程第一部分看到的一樣,安裝、執行Wireshark并開始分析網絡是很easy的。
使用Wireshark時最常見的問題,是當您使用默認設置時,會得到大量冗余信息,以至于非常難找到自己須要的部分。
過猶不及。
這就是為什么過濾器會如此重要。它們能夠幫助我們在龐雜的結果中迅速找到我們須要的信息。
-
- |
捕捉過濾器:用于決定將什么樣的信息記錄在捕捉結果中。須要在開始捕捉前設置。
顯示過濾器:在捕捉結果中進行具體查找。他們能夠在得到捕捉結果后任意改動。 |
兩種過濾器的目的是不同的。
捕捉過濾器是數據經過的第一層過濾器,它用于控制捕捉數據的數量,以避免產生過大的日志文件。
顯示過濾器是一種更為強大(復雜)的過濾器。它同意您在日志文件里迅速準確地找到所須要的記錄。
兩種過濾器使用的語法是全然不同的。我們將在接下來的幾頁中對它們進行介紹:
?1. 捕捉過濾器
捕捉過濾器的語法與其他使用Lipcap(Linux)或者Winpcap(Windows)庫開發的軟件一樣,比方著名的
TCPdump
。捕捉過濾器必須在開始捕捉前設置完成,這一點跟顯示過濾器是不同的。
設置捕捉過濾器的步驟是:
- 選擇 capture -> options。
- 填寫"capture filter"欄或者點擊"capture filter"button為您的過濾器起一個名字并保存,以便在今后的捕捉中繼續使用這個過濾器。
- 點擊開始(Start)進行捕捉。
語法: | ? |
|
? |
|
? |
|
? |
|
? |
|
? |
|
樣例: | ? |
|
? |
|
? |
|
? |
|
? |
|
? |
|
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
假設沒有特別指明是什么協議,則默認使用全部支持的協議。
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
可能的值: src, dst, src and dst, src or dst
假設沒有特別指明來源或目的地,則默認使用 "src or dst" 作為keyword。
比如,"host 10.2.2.2"與"src or dst host 10.2.2.2"是一樣的。
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
可能的值: net, port, host, portrange.
假設沒有指定此值,則默認使用"host"keyword。
比如,"src 10.1.1.1"與"src host 10.1.1.1"同樣。
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
可能的值:not, and, or.
否("not")具有最高的優先級。或("or")和與("and")具有同樣的優先級,運算時從左至右進行。
比如,
"not tcp port 3128 and tcp port 23"與"(not tcp port 3128) and tcp port 23"同樣。
"not tcp port 3128 and tcp port 23"與"not (tcp port 3128 and tcp port 23)"不同。
樣例:
tcp dst port 3128 |
ip src host 10.1.1.1 |
host 10.1.2.3 |
src portrange 2000-2500 |
not imcp |
src host 10.7.2.12 and not dst net 10.200.0.0/16 |
(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8 |
注意事項:
當使用keyword作為值時,需使用反斜杠“\”。
"ether proto \ip" (與keyword"ip"同樣).
這樣寫將會以IP協議作為目標。
"ip proto \icmp" (與keyword"icmp"同樣).
這樣寫將會以ping工具經常使用的icmp作為目標。
能夠在"ip"或"ether"后面使用"multicast"及"broadcast"keyword。
當您想排除廣播請求時,"no broadcast"就會很實用。
查看?
TCPdump的主頁
以獲得更具體的捕捉過濾器語法說明。
在
Wiki Wireshark website
上能夠找到很多其它捕捉過濾器的樣例。
?2.?
顯示過濾器:
通常經過捕捉過濾器過濾后的數據還是非常復雜。此時您能夠使用顯示過濾器進行更加仔細的查找。
它的功能比捕捉過濾器更為強大,并且在您想改動過濾器條件時,并不須要又一次捕捉一次。
語法: | ? | Protocol | . |
|
. |
|
? |
operator |
? |
|
? |
Operations |
? |
expr |
|
? |
|
? |
|
? |
|
? |
|
? |
|
? |
|
? |
|
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
您能夠使用大量位于OSI模型第2至7層的協議。點擊"Expr
比方:IP,TCP,DNS,SSH
?

您相同能夠在例如以下所看到的位置找到所支持的協議:


Wireshark的站點提供了對各種? 協議以及它們子類的說明 。
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
協議的子類。
點擊相關父類旁的"+"號,然后選擇其子類。

![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
能夠使用6種比較運算符:
英文寫法: | C語言寫法: | 含義: |
|
|
等于 |
|
|
不等于 |
|
|
大于 |
|
|
小于 |
|
|
大于等于 |
|
|
小于等于 |
![[轉]wireshark圖解教程 - firehunter - firehunter的博客](http://img.it610.com/image/product/8b8fe6e70aab4132a2df0b307113f8f5.gif)
英文寫法: | C語言寫法: | 含義: |
|
|
邏輯與 |
|
|
邏輯或 |
|
|
邏輯異或 |
|
|
邏輯非 |
讓我們舉個樣例:
"tcp.dstport 80 xor tcp.dstport 1025"
僅僅有當目的TCPport為80或者來源于port1025(但又不能同一時候滿足這兩點)時,這種封包才會被顯示。
樣例:
snmp || dns || icmp | 顯示SNMP或DNS或ICMP封包。 |
ip.addr == 10.1.1.1 |
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6 |
換句話說,顯示的封包將會為:
來源IP:除了10.1.2.3以外隨意;目的IP:隨意
以及
來源IP:隨意;目的IP:除了10.4.5.6以外隨意
ip.src != 10.1.2.3 and ip.dst != 10.4.5.6 |
換句話說,顯示的封包將會為:
來源IP:除了10.1.2.3以外隨意;同一時候須滿足,目的IP:除了10.4.5.6以外隨意
tcp.port == 25 | 顯示來源或目的TCPport號為25的封包。 |
tcp.dstport == 25 | 顯示目的TCPport號為25的封包。 |
tcp.flags | 顯示包括TCP標志的封包。 |
tcp.flags.syn == 0x02 | 顯示包括TCP SYN標志的封包。 |
![]() |
表達式正確 |
![]() |
表達式錯誤 |
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
