一、WireSharkphp
WireShark是一個開源免費的高性能網絡協議分析軟件,它的前身就是很是著名的網絡分析軟 件Ethereal。你可使用它來解決網絡疑難問題,進行網絡協議分析,以及做爲軟件或通訊協議的開發參考,同時也能夠用來做爲學習各類網絡協議的教學 工具等等。WireShark支持如今已經出現了絕大多數的以太網網卡,以及主流的無線網卡。html
WireShark具備以下所示的特色:web
(1) 支持多種操做系統平臺,能夠運行於Windows、Linux、Mac OS X10.5.五、Solaris和FreeBSD等操做系統上;正則表達式
(2) 支持超過上千種的網絡協議,而且還會不斷的增長對新協議的支持;瀏覽器
(3) 支持實時捕捉,而後可在離線狀態下進行分析;安全
(4) 支持對VOIP數據包進行分析;服務器
(5) 支持對經過IPsec、ISAKMP、Kerberos、SNMPv三、SSL/TLS、WEP和網絡
WPA/WPA2等協議加密了的數據包解密;less
(6) 能夠實時獲取來自以太網、IEEE 802.十一、PPP/HDLC、ATM、藍牙、令牌環和FDDI(光纖)等網絡中的數據包;ssh
(7) 支持讀取和分析許多其它網絡嗅探軟件保存的文件格式,包括Tcpdump、Sniffer pro、EtherPeek、Microsoft Network Monitor和CISCO Secure IDS 等軟件;
(8) 支持以各類過濾條件進行捕捉,支持經過設置顯示過濾來顯示指定的內容,並能以不一樣的顏色來顯示過濾後的報文;
(9) 具備網絡報文數據統計功能;
(10) 能夠將它捕捉到的數據導出爲XML、PostScript、CSV及普通文本文件的格式。
運行WireShark所需的文件:
如今WireShark的最終版本是1.0.5,咱們能夠到 www.wireshark.org/download/上下載它。若是WireShark要在Windows系統下運行時,還須要一個名爲 Winpcap的驅動庫,如今它的穩定版本是WinPcap 4.0.2,最新的測試版本是WinPcap 4.1 beta3,咱們能夠從http://www.winpcap.org上下載。若是是在Linux系統下使用時,就應當使用Libpcap驅動庫,它如今 的版本是Libpcap1.0.0,咱們能夠從www.tcpdump.org上下載。
WireShark在Windows和Linux系統下安裝以前,首先你得保證系統上已經安裝了Winpcap或Linpcap。下圖1.1就是WireShark在Windows系統下運行時的主界面。
二、Tcpdump和Windump
Tcpdump是一個老牌的使用最頻繁的網絡協議分析軟件之一,它是一個基於命令行的工具。Tcpdump經過使用基本的命令表達式,來過濾網絡接口卡上要捕捉的流量。它支持如今已經出現了絕大多數的以太網適配器。
Tcpdump是一個工做在被動模式下的網絡嗅探器。 咱們能夠用它來在Linux系統下捕獲網絡中進出某臺主機接口卡中的數據包,或者整個網絡段中的數據包,而後對這些捕獲到的網絡協議(如TCP、ARP) 數據包進行分析和輸出,來發現網絡中正在發生的各類情況。例如當出現網絡連通性故障時,經過對TCP三次握手過程進行分析,能夠得出問題出如今哪一個步驟。 而許多網絡或安全專家,都喜歡用它來發現網絡中是否存在ARP地址欺騙。咱們也能夠將它捕獲到的數據包先寫入到一個文件當中,而後用WireShark等 有圖形界面的嗅探器讀取和分析。
它的命令格式爲:
tcpdump [ -adeflnNOpqStvx ] [ -c 數量 ] [ -F 文件名 ][ -i 網絡接口 ] [ -r 文件名]
[ -s snaplen] [ -T 類型 ] [ -w 文件名 ] [表達式 ]
咱們可使用-i參數來指定要捕捉的網絡接口卡,用-r來讀取已經存在的捕捉文件,用-w來將捕捉到的數據寫入到一個文件中。至於其它的參數,咱們能夠從它的man文檔中獲得詳細的說明,或者經過輸入「tcpdump –-help」來到它的幫助信息。
Tcpdum有一個很是重要的特色就是可使用正則表達式來做爲過濾網絡報文的條件,這使得它的 使用變得很是靈活。咱們能夠經過它內建的各類關鍵字來指定想要過濾的條件,一旦一個網絡數據包知足表達式的條件,則這個數據包就會被捕獲。若是咱們沒有給 出任何條件,那麼全部經過指定網絡接口卡中的網絡報文都會被捕獲。
Tcpdump使用如下三種類型的關鍵字:
(1)、用於表式類型的關鍵字,主要有Host、Net和Port。它們分別用來指定主機的IP地址、指定網絡地址和指定端口。若是你沒有指定關鍵字,它就會使用缺省的Host類型。
(2)、用於表式傳輸方向的關鍵字,主要有Src、Dst。分別用來指定要捕捉的源IP地址是什麼或目的IP地址是什麼的包。
(3)、用來表式捕捉什麼協議的關鍵字,主要有ip,arp,tcp,udp等。
這些關鍵字之間可使用邏輯運算關鍵字來鏈接,以便於咱們指定某個範圍或排除某個主機等。這些邏 輯運算關鍵字也有三個,分別是取非運算「not」,或者能夠用「!」符號表示;與運算「and」,能夠用「&&」 符號表示;或運算「or」,能夠用「||」符號表示。
Tcpdump的關鍵字還有不少,我就不在此所有列出。其它的能夠經過它的幫助文檔來獲得它們的詳細說明。
運行Tcpdump須要的文件:
Tcpdump能夠很好地運行在UNIX、Linux和Mac OSX操做系統上,它如今的最新版本是TCPDUMP 4.0.0,咱們能夠從www.tcpdump.org上下載它的二進制包。同時,要運行它,也須要系統中安裝有Libpcap1.0.0這個驅動庫。
Tcpdump在Windows系統下的版本就是Windump,它也是一個免費的基於命令行方 式的網絡分析軟件。固然,咱們在使用Windump以前,一樣要確保系統中已經安裝有WinPcap 4.0.2驅動庫。下圖2.1就是Tcpdump在Linux系統控制檯下運行時的界面。
三、 DSniff
DSniff是一個很是強大的網絡嗅探軟件套件,它是最早將傳統的被動嗅探方式向主動方式改進的網絡嗅探軟件之一。DSniff軟件套件中包含了許多具備特殊功能的網絡嗅探軟件,這些特殊的網絡嗅探軟件可使用一系列的主動攻擊方法,將網絡流量從新定向到網絡嗅探器主機,使得網絡嗅探器有機會捕獲到網絡中某臺主機或整個網絡的流量。這樣一來,咱們就能夠將DSniff在交換或路由的網絡環境中,以及Cable modem拔號上網的環境中使用。甚至,當安裝有DSniff的網絡嗅探器不直接鏈接到目標網絡當中,它依然能夠經過運程的方式捕獲到目標網絡中的網絡報文。DSniff支持Telnet 、Ftp、Smtp、P0P三、HTTP,以及其它的一些高層網絡應用協議。它的套件當中,有一些網絡嗅探軟件具備特殊的竊取密碼的方法,能夠用來支持對SSL和SSH加密了的數據進行捕獲和解密。DSniff支持如今已經出現了的絕大多數的以太網網卡。
咱們可使用DSniff來驗證咱們的安全防範設置是否可靠,以及用來監控使用交換機或路由器的網絡環境中網絡的運行狀況。但咱們在使用DSniff以前,最好先考慮清楚它自己可能會給咱們帶來的新的安全風險,以防止形成沒必要要的損失。
DSniff套件當中,主要包含有如下幾個方面的網絡嗅探軟件:
(1)、arpspoof(arp欺騙):經過它來進行ARP地址欺騙,將網絡流量重定向到網絡嗅探主機,而後就機會捕捉到網絡數據包;
(2)、dnsspoof(dns欺騙):經過它來進行DNS欺騙。它有一個很是重要的功能就是webmitm,這種功能主要是用來捕獲SSL和SSH加密了的數據;
(3)、mailsnarf:它能夠將SMTP方式發送的E-Mail信息,從新組裝成一種MBOX格式,而後就能夠離線狀態下被一些郵件收發軟件讀取;
(4)、filesnart:它能夠用來獲得以NFS、SMB方式傳輸的文件的一個副本;
(5)、urlsnart:它能夠嗅探到來自HTTP流量中全部發送的URLs 請求,並保存爲通用日誌文件(CLF)格式。這種日誌文件能夠被大多數的WEB服務器所使用,能夠在離線的狀態下被WEB日誌分析工具讀取;
(6)、webspy :它能將從客戶處嗅探到的URL地址,發送到攻擊者的WEB瀏覽器中顯示。而且實時更新,攻擊者就能夠看到你到底瀏覽了哪些網站;
(7)、msgsnarf :用它能夠對一些實時聊天軟件進行嗅探;
(8)、screenspy :用進行屏幕監控;
(9)、macof:它使用MAC地址溢出攻擊方法來攻擊交換機。經過不斷向交換機
發送包含有冒充的MAC地址的數據包,以此來溢出交換機的MAC地址表。
此時,交換就會以廣播的方式發送所接收到的數據包。它通常在上述嗅探軟件
前使用;
(10)、tcpkill:一種拒絕服務攻擊(DoS)。主要用來切斷與合法主機的網絡鏈接,保證嗅探工做的正常進行。它通常在上述嗅探軟件前使用。
運行DSniff所需的文件:
DSniff能夠Linux和Windows操做系統平臺下使用,它支持絕大多數的Linux
發行版本和Windows 2000以上的版本。DSniff如今在Linux中的版本是dsniff-2.4。咱們能夠從www.monkey.org上下載dsniff- 2.4b1.tar.gz這個包。當咱們在Linux系統平臺中使用DSniff時,還須要如下的幾個文件:
(1)、dsniff-2.4-configure.in.diff補丁包;
(2)、dsniff-2.4-sshow.c.diff補丁包;
(3)、libnet-1.0.2a.tar.gz;
(4)、libnids-1.16-1.i386.rpm;
(5)、libpcap-0.4-39.i386.rpm;
若是安裝了上述文件還不能正常工做,咱們還必需安裝db4.1.25和openssl。上述的這些文件能夠在www.xfocus.net/tools/上下載。
若是要在Windows系統平臺下使用,咱們就須要如下的這些文件:
(1)、dsniff-1.8-win32-static.tgz;
(2)、libnids-1.16-win32.zip;
(3)、libevent-0.6-win32.zip;
(4)、winpcap4.0及以上版本。
它們也能夠從www.xfocus.net/tools/上下載。
四、 Ettercap
Ettercap也是一個高級網絡嗅探軟 件,它能夠在使用交換機的網絡環境中使用。Ettercap可以對大多數的網絡協議數據包進行解碼,不論這個數據包是否是加密過了的。它也支持如今已經出 現了的絕大多數以太網網卡。Ettercap還擁有一些獨特的方法,用來捕獲主機或整個網絡的流量,並對這些流量進行相應的分析。
Ettercap具備以下所示的特色:
(1)、判斷網絡中活動主機的操做系統類型;
(2)、獲得網絡中全部活動主機的IP地址和MAC地址;
(3)、能夠指定以靜態或被動模式進行工做;
(4)、能夠從指定的過濾規則文件中加入過濾規則;
(5)、具備包過濾功能,在數據流量比較大的狀況下讓你便於獲得須要的信息。
(6)、能夠用來收集網絡中以明文方式傳輸的用戶名和密碼;
(7)、能夠將捕獲到的數據保存到指定位置的文件中;
(8)、能夠用來檢測網絡中是否還有其它活動的嗅探器;
(9)、支持以插件的方式來擴展功能;
(10)、能夠經過一些主動的攻擊,來獲得加密了的數據;
(11)、它內建了許多攻擊方法,如ARP地址欺騙,以及字符注入攻擊等。
Ettercap的大部分特性與DSniff類似。它能夠在字符模式下使用,也能夠在使用 Ncurses based GUI和GTK2接口的圖形界面上使用。當咱們安裝完Ettercap之後,就能夠用「-T」選項指定它運行在字符模式下,以「-C」選項指定它運行在使 用Ncurses based GUI的圖形模式下,還能夠「-G」選項指定它運行在使用GTK2接口的圖形模式下。Ettercap的命令格式以下:
Ettercap [選項] [host:port] [host:port] [mac] [mac]
它有許多選項,咱們能夠在字符模式下輸入「ettercap –help」命令來獲得它們的說明。
運行Ettercap所需的文件:
Ettercap能夠Linux、Windows、FreeBSD 、OpenBSD 、NetBSD 、Mac OS X 及Sloaris等操做系統平臺中運行。
當咱們在Linux下使用Ettercap嗅探軟件時,就須要下列全部的這幾個文件:
(1)、ettercap-NG-0.7.3.tar.gz;
(2)、libpcap >= 0.8.1;
(3)、libnet >= 1.1.2.1;
(4)、libpthread;
(5)、zlib。
若是咱們還要在圖形界面中使用或者還想獲得SSH和SSL加密了的數據,還應當得
下列的文件:
(1)、libltdl,它是libtool的一部分;
(2)、libpcre;
(3)、openssl 0.9.7;
(4)、ncurses >= 5.3;
(5)、pkgconfig >= 0.15.0;
(6)、Glib >= 2.4.x、Pango >= 1.4.x。
若是咱們要在Windows系統下使用它,就必需使用下列兩個文件:
(1)、Ettercap-NG-0.7.3-win32.exe;
(2)、winpcap4.0及以上版本。
上面所示的文件,咱們均可以從http://ettercap.sourceforge.net/download.php網站下載。
五、NetStumbler
NetStumbler是一個用來尋找使用IEEE802.11a/b/g標準的無線局域網工具。它支持 包括PCMCIA 無線適配器在內的絕大多數主流無線適配器,同時,還加入了對全球 GPS 衛星定位系統的支持。
NetStumbler能夠完成如下的工做:
(1)、用來進行「戰爭駕駛」;
(2)、用來驗證無線客戶和無線AP的配置是否存在弱點;
(3)、用來尋找一些能夠接入的無線局域網所在的方位。
(4)、用來檢測干擾無線局域網信號的緣由;
(5)、用來檢測一些沒有通過受權的無線接入點;
(6)、用來獲得無線局域網的SSID值。
運行NetStumbler所需的文件:
NetStumbler能夠在Windows98及以上的操做系統版本中運行,它還有一個精簡版本,用來在Windows CE系統下使用。
NetStumbler是一個免費的軟件,它如今的最新版本是 NetStumbler0.4.0,Windows CE下最新的版本是MiniStumbler0.4.0。這兩個安裝包你均可以從www.netstumbler.com/downloads/網站下 載。圖5.1是NetStumbler啓動後的主界面。
圖5.1 NetStumbler的主界面
六、Kismet
Kismet 一個基於IEEE802.11系統標準的無線網絡檢測、嗅探軟 件,以及入侵檢測系統,它是一個開源的、免費的軟件。Kismet可以與絕大多數支持RF監控模式的無線適配器一塊兒工做。例如PRISM二、2.五、3和 GT無線芯片,以及Orinoco Gold和Atheros a/b/g無線芯片的無線適配器。當無線適配器處於監控模式(monitoring mode)時,它能夠嗅探到兼容IEEE802.11a/b/g標準的無線網絡中傳輸的網絡流量。Kismet主要以被動的方式對無線網絡進行嗅探,來檢測出標準的無線網絡名稱,包括隱藏了SSID值的無線網絡也可以被檢測到。
Kismet具備如下的特色:
(1)、能將嗅探到的文件保存爲Tcpdump等軟件能夠讀取的格式;
(2)、能檢測出無線網絡如今所使用的IP地址範圍;
(3)、能檢測出無線網絡中安裝有NetStumbler軟件的主機,以此來找到非法無線接入者;
(4)、能檢測出隱藏了的無線網絡SSID值;
(5)、與GPS合做,繪製無線訪問點和無線客戶所在位置的網絡地圖;
(6)、使用客戶/服務器體系結構;
(7)、可識別無線訪問點和無線客戶中無線適配器的製造商和工做模式;
(8)、能找出無線訪問點和無線客戶如今存在的弱點;
(9)、能夠解碼經過WEP加密的數據包;
(10)、能夠和其它軟件合做,來擴展這些軟件的應用範圍。例如能夠與snort網絡入侵檢測系統合做;
運行Kismet所需的文件:
Kismet能夠在Linux2.0及以上的發行版本中運行得很好。在剛開始時,它只支持Linux系統平臺,如今,它也有運行在Windows2000及以上系統下的版本。
當Kismet在 Linux發行版本中運行,咱們能夠從http://www.kismetwireless.net/download.shtml下載Kismet- 2008-05-R1文件。若是要在Windows2000及以上系統中運行,咱們就須要從上述相同網站中下載 setup_kismet_2008-05-R1.exe安裝文件,還必需從www.cacetech.com/support /downloads.htm 下載AirPcap的setup_airpcap_3_2_1.exe文件。圖6.1就是Kismet在Linux系統字符終端下運行的界面。
圖6.1 Kismet在Linux系統字符終端下運行的界面
在以太網中,還有一些網絡嗅探軟件也是比較經常使用的。例如Sniffer Pro網絡協議分析軟件,它能夠在多種平臺下運行,用來對網絡運行情況進行實時分析,並且又有豐富的圖示功能。以及Analyzer,它是一個運行在Windows操做系統下的免費的網絡嗅探軟件。另外,還一些商業性質的網絡嗅探軟件,雖然它們須要支付必定的費用,可是,它們的功能也是沒得說的,其中比較著名的表明就是EtherPeek套件。
用網絡分析器來爲咱們工做
如今,你已經知道如何將你的網絡分析器連入到你的網絡結構中了,就能夠着手使用網絡分析器來爲自 己進行各類網絡管理或安全管理等工做的時候了。網絡分析器,主要用來幫助進行系統管理,解決網絡疑難問題,進行安全管理這三方面的工做。下面就對這三個方 面的具體內容進行詳細說明。
1、使用網絡分析器來進行系統管理
一臺處於網絡中的主機,對於出現的一些關於網絡連通性相關的問題,在經過一些常規的網絡命令工具(如ping命令)不能肯定是系統仍是網絡服務器出現問題時,就能夠經過網絡分析器來分析某種網絡協議(如TCP協議)的工做方式,來肯定問題所在。
如今經過一個解決TCP鏈接的例子來講明如何使用網絡協議來幫助系統管理的。
通常要完成一個成功的TCP鏈接,必需通過三層握手,咱們能夠經過使用網絡分析器來分析TCP鏈接過程當中的三次握手時的響應標誌,就以發現問題的所在。一共有如下三種狀況:
一、有SYN標誌,沒有SYN+ACK標誌。
當網絡分析器捕獲的包中只有客戶機的SYN包,但沒有來自服務器響應的SYN+ACK標誌包,那麼,就能夠說明服務器不能處理數據包,可能緣由是被防火牆類設備阻止。
二、SYN後服務器當即響應RST。
這種方式說明目標服務器的所對應的服務沒有開放對應的正確端口。從新綁定商品對應的服務上就能夠解決這個問題。
三、SYN SYN+ACK ACK 當即關閉。
若是TCP創建鏈接後當即關閉,多是因爲目標服務器拒絕使用包中源IP地址的客戶機鏈接服務器。檢查服務器中的防火牆及其它安全軟件中的訪問控制列表,將客戶機的IP地址添加到信任列表當中。
2、使用網絡分析器來解決網絡疑難問題
網絡管理的一個基本職能,就是應當儘可能解決網絡中出現的各類故障,以確保網絡可以正常運行。解決 網絡故障的關鍵,就是應當儘快找到故障出現的位置,而後肯定故障產生的緣由。有一種方法能夠幫助咱們可以加快解決網絡故障的速度,就是在網絡的各個關鍵位 置佈置網絡分析器。這樣,你就能夠經過網絡分析器來了解如今網絡傳輸速度,網絡會話過程是否正常,檢測有哪些設備出現了故障,故障產生的緣由是什麼等等。
還有,爲了快速正確地解決網絡問題,在事先制定一個解決問題的策略是一個很好的方法。這會最大限度地減小在處理故障過程當中出現的人爲失誤。一個好的處理網絡故障的步驟通常應包括如下幾個方面:
發現問題-認識問題-問題分類-隔離問題-驗證和測試問題的原由-解決問題-驗證問題是否真的被解決。
3、使用網絡分析器來進行安全管理
網絡分析器是一個很是好的網絡協議分析工具,用它不只能找到一些網絡應用程序在數據傳輸過程當中的 缺點,例如FTP和Telnet都是經過明文方式來傳輸數據的,所以,網絡分析器能垂手可得地捕獲到這些數據包中的重要信息(如用戶名和密碼)。由此,也 可使用網絡分析器來檢查其它須要在網絡中使用的網絡協議的傳輸是否安全。
同時,咱們還可使用網絡分析器來檢查存於系統中的蠕蟲病毒傳播的源頭,以及諸如拒絕服務攻擊產生的源頭等等。
所以,使用網絡分析器來分析網絡流量,能夠幫助咱們找到網絡安全弱點,強化咱們的安全策略。