天天看點

SNIFFER(嗅探器)-簡介

Sniffer(嗅探器)是一種常用的收集有用資料方法,這些資料可以是使用者的帳号和密碼,可以是一些商用機密資料等等。Snifffer可以作為能夠捕獲網絡封包的裝置,ISS為Sniffer這樣定義:Sniffer是利用計算機的網絡接口截獲目的地為其他計算機的資料封包的一種工具。

Sniffer的正當用處主要是分析網絡的流量,以便找出所關心的網絡中潛在的問題。例如,假設網絡的某一段運作得不是很好,封包的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精确的問題判斷。 在合理的網絡中,sniffer的存在對系統管理者是緻關重要的,系統管理者通過sniffer可以診斷出大量的不可見模糊問題,這些問題涉及兩台乃至多台計算機之間的異常通訊有些甚至牽涉到各種的協定,借助于sniffer%2C系統管理者可以友善的确定出多少的通訊量屬于哪個網絡協定、占主要通訊協定的主機是哪一台、大多數通訊目的地是哪台主機、封包發送占用多少時間、或着互相主機的封包傳送間隔時間等等,這些資訊為管理者判斷網絡問題、管理網絡區域提供了非常寶貴的資訊。

嗅探器與一般的鍵盤捕獲程式不同。鍵盤捕獲程式捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網絡封包。

為了對sniffer的工作原理有一個深入的了解,我們先簡單介紹一下HUB與網卡的原理。

預備知識

HUB工作原理

由于以太網等很多網絡(常見共享HUB連接配接的内部網)是基于總線方式,實體上是廣播的,就是當一個機器發給另一個機器的資料,共享HUB先收到然後把它接收到的資料再發給其他的(來的那個口不發了)每一個口,是以在共享HUB下面同一網段的所有機器的網卡都能接收到資料。

交換式HUB的内部單片程式能記住每個口的MAC位址,以後就該哪個機器接收就發往哪個口,而不是像共享HUB那樣發給所有的口,是以交換HUB下隻有該接收資料的機器的網卡能接收到資料,當然廣播包還是發往所有口。顯然共享HUB的工作模式使得兩個機器傳輸資料的時候其他機器别的口也占用了,是以共享HUB決定了同一網段同一時間隻能有兩個機器進行資料通信,而交換HUB兩個機器傳輸資料的時候别的口沒有占用,是以别的口之間也可以同時傳輸。這就是共享HUB與交換HUB不同的兩個地方,共享HUB是同一時間隻能一個機器發資料并且所有機器都可以接收,隻要不是廣播資料交換HUB同一時間可以有對機器進行資料傳輸并且資料是私有的。

網卡工作原理

再講講網卡的工作原理。網卡收到傳輸來的資料,網卡内的單片程式先接收資料頭的目的MAC位址,根據計算機上的網卡驅動程式設定的接收模式判斷該不該接收,認為該接收就在接收後産生中斷信号通知CPU,認為不該接收就丢棄不管,是以不該接收的資料網卡就截斷了,計算機根本就不知道。CPU得到中斷信号産生中斷,作業系統就根據網卡驅動程式中設定的網卡中斷程式位址調用驅動程式接收資料,驅動程式接收資料後放入信号堆棧讓作業系統處理。

區域網路如何工作

資料在網絡上是以很小的稱為幀(Frame)的機關傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,以太網的前12個位元組存放的是源和目的的位址,這些位告訴網絡:資料的來源和去處。以太網幀的其他部分存放實際的使用者資料、TCP/IP的封包頭或IPX封包頭等等)。

幀通過特定的網絡驅動程式進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網卡捕獲到這些幀,并告訴作業系統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。

通常在區域網路(LAN)中同一個網段的所有網絡接口都有通路在實體媒體上傳輸的所有資料的能力,而每個網絡接口都還應該有一個硬體位址,該硬體位址不同于網絡中存在的其他網絡接口的硬體位址,同時,每個網絡至少還要一個廣播位址。(代表所有的接口位址),在正常情況下,一個合法的網絡接口應該隻響應這樣的兩種資料幀:

  1、幀的目标區域具有和本地網絡接口相比對的硬體位址。

  2、幀的目标區域具有“廣播位址”。

在接受到上面兩種情況的資料包時,網卡通過cpu産生一個硬體中斷,該中斷能引起作業系統注意,然後将幀中所包含的資料傳送給系統進一步處理。

當采用共享HUB,使用者發送一個封包時,這些封包就會發送到LAN上所有可用的機器。在一般情況下,網絡上所有的機器都可以“聽”到通過的流量,但對不屬于自己的封包則不予響應(換句話說,工作站A不會捕獲屬于工作站B的資料,而是簡單的忽略這些資料)。

如果區域網路中某台機器的網絡接口處于雜收(promiscuous)模式(即網卡可以接收其收到的所有資料包,下面會詳細地講),那麼它就可以捕獲網絡上所有的封包和幀,如果一台機器被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。

Sniffer

Sniffer原理

有了這HUB、網卡的工作原理就可以開始講講SNIFFER。首先,要知道SNIFFER要捕獲的東西必須是要實體信号能收到的封包資訊。顯然隻要通知網卡接收其收到的所有包(一般叫作雜收promiscuous模式:指網絡上的所有裝置都對總線上傳送的資料進行偵聽,并不僅僅是它們自己的資料。),在共享HUB下就能接收到這個網段的所有包,但是交換HUB下就隻能是自己的包加上廣播包。

要想在交換HUB下接收别人的包,那就要讓其發往你的機器所在口。交換HUB記住一個口的MAC是通過接收來自這個口的資料後并記住其源MAC,就像一個機器的IP與MAC對應的ARP清單,交換HUB維護一個實體口(就是HUB上的網線插口,這之後提到的所有HUB口都是指網線插口)與MAC的表,是以可以欺騙交換HUB的。可以發一個包設定源MAC是你想接收的機器的MAC,那麼交換HUB就把你機器的網線插的實體口與那個MAC對應起來了,以後發給那個MAC的包就發往你的網線插口了,也就是你的網卡可以SNIFFER到了。注意這實體口與MAC的表與機器的ARP表一樣是動态重新整理的,那機器發包後交換HUB就又記住他的口了,是以實際上是兩個在争,這隻能應用在隻要收聽少量包就可以的場合。

内部網基于IP的通信可以用ARP欺騙别人機器讓其發送給你的機器,如果要想不影響原來兩方的通信,可以欺騙兩方,讓其都發給你的機器再由你的機器轉發,相當于做中間人,這用ARP加上程式設計很容易實作。并且現在很多裝置支援遠端管理,有很多交換HUB可以設定一個口監聽别的口,不過這就要管理權限了。

利用這一點,可以将一台計算機的網絡連接配接設定為接受所有以太網總線上的資料,進而實作sniffer。Sniffer就是一種能将本地網卡狀态設成‘雜收’狀态的軟體,當網卡處于這種“雜收”方式時,該網卡具備“廣播位址”,它對遇到的每一個幀都産生一個硬體中斷以便提醒作業系統處理流經該實體媒體上的每一個封包包。(絕大多數的網卡具備置成雜收方式的能力)

可見,sniffer工作在網絡環境中的底層,它會攔截所有的正在網絡上傳送的資料,并且通過相應的軟體處理,可以實時分析這些資料的内容,進而分析所處的網絡狀态和整體布局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。

嗅探器在功能和設計方面有很多不同。有些隻能分析一種協定,而另一些可能能夠分析幾百種協定。一般情況下,大多數的嗅探器至少能夠分析下面的協定:标準以太網、TCP/IP、IPX、DECNet。

嗅探器造成的危害

sniffing是作用在網絡基礎結構的底層。通常情況下, 使用者并不直接和該層打交道,有些甚至不知道有這一層存在。是以,應該說snffer的危害是相當之大的,通常,使用sniffer是在網絡中進行欺騙的開始。它可能造成的危害:

嗅探器能夠捕獲密碼。這大概是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd。

能夠捕獲專用的或者機密的資訊。比如金融帳号,許多使用者很放心在網上使用自己的信用卡或現金帳号,然而sniffer可以很輕松截獲在網上傳送的使用者姓名、密碼、信用卡号碼、截止日期、帳号和pin。比如偷窺機密或敏感的資訊資料,通過攔截資料包,入侵者可以很友善記錄别人之間敏感的資訊傳送,或者幹脆攔截整個的email會話過程。

可以用來危害網絡鄰居的安全,或者用來擷取更進階别的通路權限。

窺探低級的協定資訊。

這是很可怕的事,通過對底層的資訊協定記錄,比如記錄兩台主機之間的網絡接口位址、遠端網絡接口ip位址、ip路由資訊和tcp連接配接的位元組順序号碼等。這些資訊由非法入侵的人掌握後将對網絡安全構成極大的危害,通常有人用sniffer收集這些資訊隻有一個原因:他正要進行一次欺騙(通常的ip位址欺騙就要求你準确插入tcp連接配接的位元組順序号),如果某人很關心這個問題,那麼sniffer對他來說隻是前奏,今後的問題要大得多。(對于進階的hacker而言,我想這是使用sniffer的唯一理由吧)

事實上,如果你在網絡上存在非授權的嗅探器就意味着你的系統已經暴露在别人面前了。

一般Sniffer隻嗅探每個封包的前200到300個位元組。使用者名和密碼都包含在這一部分中,這是我們關心的真正部分。勞工,也可以嗅探給定接口上的所有封包,如果有足夠的空間進行存儲,有足夠的那裡進行處理的話,将會發現另一些非常有趣的東西……

簡單的放置一個嗅探器并将其放到随便什麼地方将不會起到什麼作用。将嗅探器放置于被攻擊機器或網絡附近,這樣将捕獲到很多密碼,還有一個比較好的方法就是放在網關上。sniffer通常運作在路由器,或有路由器功能的主機上。這樣就能對大量的資料進行監控。sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目标系統,然後使用sniffer這種攻擊手段,以便得到更多的資訊。如果這樣的話就能捕獲網絡和其他網絡進行身份鑒别的過程

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/Backli/archive/2007/06/25/1665218.aspx

繼續閱讀