在經曆了長達6年的難産之後,Windows的新一代作業系統Vista在2007年跟大家見面了。這個由5000萬行代碼組成的怪物由2000個世界一流的程式員為之孵化了整整6年的時間。不容置疑,Vista将傳承Windows家族的衣缽,成為新一代桌面作業系統的主流平台。
如何在迷宮一樣的網絡中更快捷地找到需要的資源與存在的錯誤以及到達目的地的道路呢?在實際的迷宮中我們可以使用指南針,而在網絡中我們則使用工具軟體。
網絡是一個很廣泛的概念,其中包括了很多的内容。其最基礎的内容就是構成網絡的所有硬體裝置和運作在這些裝置上的協定和基礎軟體。沒有這些網絡的基礎,任何使用網絡的服務都沒有辦法運作。如何保證這些網絡基礎的正常運作就是每一個網絡工程師的工作。
随着網絡的發展,網絡互連的範圍在不斷地擴大,每一個網絡工程師的負擔也越來越重,如何使用最簡單、快捷的方式診斷網絡中的故障成了每一個網絡工程師必要的研究主題。通過使用相應的工具軟體是一個很好的解決方式。Vista自身的網絡工具(如圖1)過于簡單無法完成複雜的應用。
![]() |
圖 1 Vista自身的網絡工具 |
一、Wireshark簡介
Wireshark是一個有名的網絡端口探測器,是可以在Windows、Unix等各種平台運作的網絡×××,它主要是針對TCP/IP協定的不安全性對運作該協定的機器進行監聽。其功能相當于Windows下的Sniffer,都是在一個共享的網絡環境下對資料包進行捕捉和分析,而且還能夠自由地為其增加某些插件以實作額外功能。
Ethernet網絡監測工具可在實時模式或離線模式中用來捕獲和分析網絡通信。下面是使用Wireshark 可以完成的幾個工作:
l 網絡管理者使用它去幫助解決網絡問題
l 網絡安全工程師用它去測試安全問題
l 開發人員用它是調試協定的實作過程
l 用它還可以幫助人員深入的學習網絡協定
l 支援UNIX 平台和Windows 平台。
l 從網絡接口上捕獲實時資料包
l 以非常詳細的協定方式顯示資料包
l 可以打開或者存貯捕獲的資料包
l 導入/導出資料包,從/到其它的捕獲程式
l 按多種方式過濾資料包
l 按多種方式查找資料包
l 根據過濾條件,以不同的顔色顯示資料包
l 可以建立多種統計資料
其最常用的功能是被攻擊者用來檢測被攻擊電腦通過23(telnet)和110(pop3)端口進行的一些明文傳輸資料,以輕松得到使用者的登入密碼和郵件賬号密碼。對于網絡管理者來說,也可以通過抓包分析,來确定一些異常的流量和區域網路内部的非正常使用者與外界的通信,比如說對于現在比較占用網絡帶寬的諸如Bit Torrent等P2P應用軟體流量,通過使用該軟體确定這些流量,網絡管理者就可以使用流量控制(TC)的方法來規範、合理的配置設定帶寬資源,提高網絡的使用率。
二、下載下傳安裝Wireshark
Wireshark可以在[url]http://www.wireshark.org/download/[/url] 上下載下傳,該軟體有極其友善和友好的圖形使用者界面,并且能夠使得使用者通過圖形界面的配置和選擇,針對多塊網卡、多個協定進行顯示,效果非常好。目前最新版本為:Wireshark 0.99。圖2 是Wireshark安裝界面。
|
圖 2 是Wireshark安裝界面 |
Wireshark安裝後自動安裝winpcap 4.0 ,Winpcap是UNIX下的libpcap移植到windows下的産物,他是一個GPL項目。Winpcap工作于驅動(Driver)層,是以能以很高的效率進行網絡操作。 Winpcap提供了以下強大的功能:
1.捕獲原始的資料包 ;
2.設定filter,隻捕獲自己敢興趣的資料包 ;
3.友善的把捕獲的資料包輸出到檔案和從檔案輸入 ;
4.發送原始的資料包 ;
5.統計網絡流量。
三、使用Wireshark
當編譯并安裝好Wireshark後,就可以執行“Wireshark”指令來啟動Wireshark。在用Wireshark截獲資料包之前,應該為其設定相應的過濾規則,可以隻捕獲感興趣的資料包。Wireshark使用與Tcpdump相似的過濾規則,并且可以很友善地存儲已經設定好的過濾規則。
◆Wireshark主視窗有很多的GUI程式組成。
(1) File(檔案):這個菜單包含:打開檔案、合并檔案、儲存/列印/導出整個或部分捕獲檔案、退出。
(2) Edit(編輯)這個菜單包括:查找包、時間參照、标記一個或多個包、設定參數、(剪切、複制、粘貼)。
(3) View(檢視):這個菜單控制捕獲資料的顯示,包括:給定特定的一類包标以不同的顔色、字型縮放、在一個新視窗中顯示一個包、展開&折疊詳細資訊面闆的樹狀結構。
(4) Go:這個菜單實作轉到一個特定包。.
(5) apture(捕獲):這個菜單實作開始、停止捕獲,編輯捕獲過濾條件的功能。
(6) Analyze(分析):這個菜單包含編輯顯示過濾、enable(開)或disable(關)協定×××、配置使用者指定的解碼方法、追蹤一個TCP 流。
(7) Statistics(統計):該菜單完成統計功能。包括捕獲的包的一個摘要、基于協定的包的數量等樹狀統計圖等許多功
(8) Help(幫助)這個菜單包含了一些對使用者有用的資訊。比如基本幫助、支援的協定清單、手冊頁、線上通路到網站等等。
◆ Wireshark界面結構
該工具提供一個強健的GUI界面,用來整理網絡資料的捕獲以及随後的網絡通信浏覽。主視窗包括一組菜單項,界面結構如圖1。許多菜單從名字上看一目了然,這裡不再闡述。第一個面闆包含所有捕獲封包的摘要。該面闆包含封包号、時間戳、源、目的、協定以及資訊域。這些域是可定制的,并且使用者可删掉或加入其他的封包字段資訊。
|
圖 3 Wireshark界面結構 |
圖注:
1. 控制台和主菜單;
2. 封包摘要視窗;
3. 過濾器。
4. 封包細節視窗;
◆設定Wireshark的過濾規則
在用Wireshark截獲資料包之前,應該為其設定相應的過濾規則,可以隻捕獲感興趣的資料包。Wireshark使用與Tcpdump相似的過濾規則,并且可以很友善地存儲已經設定好的過濾規則。要為Wireshark配置過濾規則,首先單擊“Capture”選單,然後選擇“Capture Filters...”菜單項,打開“Wireshark :Capture Filter”對話框。因為此時還沒有添加任何過濾規則,因而該對話框右側的清單框是空的(如圖2所示)。在Wireshark中添加過濾器時,需要為該過濾器指定名字及規則。
|
圖 4 為Wireshark添加一個過濾器 |
例如,要在主機192.168.0.3和192.168.0.11間建立過濾器,可以在“Filter name”編輯框内輸入過濾器名字“cjh”,在“Filter string”編輯框内輸入過濾規則“host 192.168.0.3 and 192.168.0.11”,然後單擊“建立”按鈕即可。
在Wireshark中使用的過濾規則和Tcpdump幾乎完全一緻,這是因為兩者都基于pcap庫的緣故。Wireshark能夠同時維護很多個過濾器。網絡管理者可以根據實際需要選用不同的過濾器,這在很多情況下是非常有用的。例如,一個過濾器可能用于截獲兩個主機間的資料包,而另一個則可能用于截獲ICMP包來診斷網絡故障。單擊“儲存”按鈕,會到對話框。單擊“關閉”按鈕完成設定。
1. 指定過濾器
要将過濾器應用于嗅探過程,需要在截獲資料包之前或之後指定過濾器。要為嗅探過程指定過濾器,并開始截獲資料包,可以單擊“Capture”選單,選擇“Start...”選單項,打開“iterface”對話框,單擊該對話框中的“Filter:”按鈕,然後選擇要使用的網絡接口,如圖5所示。
|
圖 5 為Wireshark指定網絡接口 |
l注意:在“Capture Options”對話框中,“Update list of packets in real time”複選框被選中了。這樣可以使每個資料包在被截獲時就實時顯示出來,而不是在嗅探過程結束之後才顯示所有截獲的資料包。
在選擇了所需要的過濾器後,單擊“确定”按鈕,整個嗅探過程就開始了。Wireshark可以實時顯示截獲的資料包,是以能夠幫助網絡管理者及時了解網絡的運作狀況,進而使其對網絡性能和流量能有一個比較準确的把握。如圖6 。
|
圖 6 Wireshark實時顯示截獲的資料包 |
Capture Options其他選項:
Interface(接口)
這個字段指定在哪個接口進行捕獲。這是一個下拉字段,隻能從中選擇Wireshark 識别出來的接口,預設是第一塊支援捕獲的非loopback 接口卡。如果沒有接口卡,那麼第一個預設就是第一塊loopback 接口卡。在某些系統中,loopback 接口卡不能用來捕獲(loopback 接口卡在Windows平台是不可用的)。
lIP address(IP 位址)
所選接口卡的IP 位址。如果不能解析出IP 位址,則顯示"unknown"
lLink-layer header type(鍊路層頭類型)
除非你在極個别的情況下可能用到這個字段,大多數情況下保持預設值。具體的描述,見”
lBuffer size: n megabyte(s) (緩沖區大小:n 兆)
輸入捕獲時使用的buffer 的大小。這是核心buffer 的大小,捕獲的資料首先儲存在這裡,直到寫入磁盤。如果遇到包丢失的情況,增加這個值可能解決問題。
lCapture packets in promiscuous mode (在混雜模式捕獲包)
這個選項允許設定是否将網卡設定在混雜模式。如果不指定,Wireshark 僅僅捕獲那些進入你的計算機的或送出你的計算機的包。(而不是LAN 網段上的所有包).
lLimit each packet to n bytes (限制每一個包為n 位元組)
這個字段設定每一個資料包的最大捕獲的資料量。有時稱作snaplen 。如果disable 這個選項預設是65535, 對于大多數協定來講中夠了。
lCapture Filter(捕獲過濾)
這個字段指定一個捕獲過濾。 “在捕獲時進行過濾”部分進行讨論。預設是空的,即沒過過濾。也可以點選标為Capture Filter 的按鈕, Wireshark 将彈出Capture Filters(捕獲過濾)對話框,來建立或者選擇一個過濾。
四、用Wireshark分析網際網路資料包執行個體
上面基本是以區域網路為例的。下面看看Wireshark對于網際網路資料的分析。Wireshark和其它的圖形化嗅探器使用基本類似的界面,整個視窗被分成三個部分:最上面為資料包清單,用來顯示截獲的每個資料包的總結性資訊;中間為協定樹,用來顯示標明的資料包所屬的協定資訊;最下邊是以十六進制形式表示的資料包内容,用來顯示資料包在實體層上傳輸時的最終形式。使用Wireshark可以很友善地對截獲的資料包進行分析,包括該資料包的源位址、目的位址、所屬協定等。圖7是在Wireshark中對一個HTTP資料包進行分析時的情形。在圖最上邊的資料包清單中,顯示了被截獲的資料包的基本資訊。
|
圖 7 用Wireshark分析網際網路資料包内容 |
圖7中間是協定樹,通過協定樹可以得到被截獲的資料包的更多資訊,如主機的MAC位址(Ethernet II)、IP位址(Internet Protocol)、TCP端口号(Transmission Control Protocol),以及HTTP協定的具體内容(Hypertext Trnasfer Protocol)。通過擴充協定樹中的相應節點,可以得到該資料包中攜帶的更詳盡的資訊。
|
圖 8 使用Follow TCP stearm 檢視詳細資訊 |
圖8最下邊是以十六制顯示的資料包的具體内容,這是被截獲的資料包在實體媒體上傳輸時的最終形式,當在協定樹中選中某行時,與其對應的十六進制代碼同樣會被選中,這樣就可以很友善地對各種協定的資料包進行分析。圖6 是一個詳細封包分析。是點選該封包選擇“Mark Pactet”。從圖中可以看出,目前選中資料包的源位址是221.217.132.33,目的位址為202.106.124.50,該資料包所屬的協定是超文本傳輸協定(HTTP)。要擷取更加詳細資訊可以是點選該封包選擇“Follow TCP stearm ”。
更詳細的資訊表明該資料包中含有一個HTTP的GET指令,通路的網站是:[url]www.51cto.com[/url] 。用戶端使用的MSIE7.0浏覽器,作業系統為Vista。
總結
Wireshark提供的圖形化使用者界面非常友好,管理者可以很友善地檢視到每個資料包的詳細資訊,協定樹及其對應的十六進制表示對分析每個資料包的目的很有幫助,使用Wireshark能夠基本滿足網絡管理者在Vista系統上的所有安全要示。