嗅探器(snifffer)就是能夠捕獲網絡報文的設備。嗅探器的正當用處在于分析網絡的流量,以便找出所關心的網絡中潛在的問題。例如,假設網絡的某一段運行得不是很好,報文的發送比較慢,而我們又不知道問題出在什么地方,此時就可以用嗅探器來作出精確的問題判斷。
嗅探器在功能和設計方面有很多不同。有些只能分析一種協議,而另一些可能能夠分析幾百種協議。一般情況下,大多數的嗅探器至少能夠分析下面的協議:
■標準以太網
■TCP/IP
■IPX
■DECNet
嗅探器通常是軟硬件的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什么錢,但得不到什么支持。
嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網絡報文。嗅探器通過將其置身于網絡接口來達到這個目的——例如將以太網卡設置成雜收模式。(為了理解雜收模式是怎么回事,先解釋局域網是怎么工作的)。
數據在網絡上是以很小的稱為幀(Ftame)的單位傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,以太網的前12個字節存放的是源和目的的地址,這些位告訴網絡:數據的來源和去處。以太網幀的其他部分存放實際的用戶數據、TCP/IP的報文頭或IPX報文頭等等)。
幀通過特定的稱為網絡驅動程序的軟件進行成型,然后通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網卡捕獲到這些幀,并告訴操作系統幀的到達,然后對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。
每一個在LAN上的工作站都有其硬件地址。這些地址唯一地表示著網絡上的機器(這一點于Inte.net地址系統比較相似)。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。
在一般情況下,網絡上所有的機器都可以“聽”到通過的流量,但對不屬于自己的報文則不予響應(換句話說,工作站A不會捕獲屬于工作站B的數據,而是簡單的忽略這些數據)。
如果某在工作站的網絡接口處于雜收模式,那么它就可以捕獲網絡上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟件)就是一個嗅探器。
嗅探器可能造成的危害:
■嗅探器能夠捕獲口令
■能夠捕獲專用的或者機密的信息
■可以用來危害網絡鄰居的安全,或者用來獲取更高級別的訪問權限
事實上,如果你在網絡上存在非授權的嗅探器就以為著你的系統已經暴露在別人面前了。(大家可以試試天行2的嗅探功能)
一般我們只嗅探每個報文的前200到300個字節。用戶名和口令都包含在這一部分中,這是我們關心的真正部分。工人,也可以嗅探給定接口上的所有報文,如果有足夠的空間進行存儲,有足夠的那里進行處理的話,將會發現另一些非常有趣的東西……
簡單的放置一個嗅探器賓將其放到隨便什么地方將不會起到什么作用。將嗅探器放置于被攻擊機器或網絡附近,這樣將捕獲到很多口令,還有一個比較好的方法就是放在網關上。如果這樣的話就能捕獲網絡和其他網絡進行身份鑒別的過程。這樣的方式將成倍地增加我們能夠攻擊的范圍。
關于怎么抵御嗅探器的攻擊我就不說了,那是網管們的事兒,有三種方法可能會有所作用:
■檢測和消滅嗅探器
■將數據隱藏,使嗅探器無法發現。
■會話加密