天天看點

嗅探器專題

嗅探器專題

(一)Sniffer概念

1.Sniffer定義

ISS為Sniffer這樣定義:Sniffer是利用計算機的網絡接口截獲目的地為其他計算機的資料封包的一種工具。

2.Sniffer的用途

(1)Sniffer(嗅探器)是一種常用的收集有用資料方法,這些資料可以是使用者的帳号和密碼,可以是一些商用機密資料等等。

(2)Snifffer可以作為能夠捕獲網絡封包的裝置。

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

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

(二)預備知識

1.HUB工作原理

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

交換式HUB的内部單片程式能記住每個口的MAC位址,資料發送時隻能發給指定Mac位址的計算機,其他計算機不能接受到該資料包。廣播資料包時,該網段内的計算機都能接受到。

2.網卡工作原理

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

3.區域網路如何工作

資料在網絡上是以很小的稱為幀(Frame)的機關傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,以太網的前12個位元組存放的是源和目的的位址,這些位告訴網絡:資料的來源和去處。以太網幀的其他部分存放實際的使用者資料、TCP/IP的封包頭或IPX封包頭等等)。幀通過特定的網絡驅動程式進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的以太網卡捕獲到這些幀,并告訴作業系統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。

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

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

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

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

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

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

Sniffer

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就是一種能将本地網卡狀态設成‘雜收’狀态的軟體,當網卡處于這種“雜收”方式時,該網卡具備“廣播位址”,它對遇到的每一個幀都産生一個硬體中斷以便提醒作業系統處理流經該實體媒體上的每一個封包包。(絕大多數的網卡具備置成雜收方式的能力)

Ethernet的通訊

(1)在同一個網段的所有網絡接口都有通路在實體媒體上傳輸的所有資料的能力

(2)每個網絡接口都有一個唯一的硬體位址(MAC)

(3)每個網絡至少還要一個廣播位址

在正常情況下,一個合法的網絡接口應該隻響應這樣的兩種資料幀:

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

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

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

而sniffer就是一種能将本地nc狀态設成(promiscuous)狀态的軟體,當nc處于這種“混雜”方式時,該nc具備“廣播位址”,它對所有遭遇到的每一個幀都産生一個硬體中斷以便提醒作業系統處理流經該實體媒體上的每一個封包包。(絕大多數的nc具備置成promiscuous方式的能力)

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

通常sniffer所要關心的内容可以分成這樣幾類:

1、密碼

(1)明文

(2)加密後的密文

2、金融帳号

許多使用者很放心在網上使用自己的信用卡或現金帳号,然而sniffer可以很輕松截獲在網上傳送的使用者姓名、密碼、信用卡号碼、截止日期、帳号和pin.

3、偷窺機密或敏感的資訊資料

通過攔截資料包,入侵者可以很友善記錄别人之間敏感的資訊傳送,或者幹脆攔截整個的email會話過程。

4、窺探低級的協定資訊。

如何發現和防止Sniffer

發現sniffer

(1)網絡通訊掉包率反常的高

通過一些網絡軟體,可以看到資訊包傳送情況(不是sniffer),向ping這樣的指令會告訴你掉了百分幾的包。如果網絡中有人在Listen,那麼資訊包傳送将無法每次都順暢的流到目的地。

(2)網絡帶寬出現反常。

通過檢視網絡帶寬的分布情況,對帶寬占用大的計算機進行檢查。有正在sniffer的計算機會非常慢。如果将sniffer的結果儲存為檔案,其檔案會非常大。

(3)檢視程序

ps -aux或: ps –augx

pulist

怎樣防止被sniffer

(1)采用SSH加密方式傳輸

SSH(Secure Shell)是一個在應用程式中提供安全通信的協定,它是建立在客戶機/伺服器模型上的。SSH伺服器的配置設定的端口是22,連接配接是通過使用一種來自RSA的算法建立的。在授權完成後,接下來的通信資料是用IDEA技術來加密的。這通常是較強的,适合與任何非秘密和非經典的通訊。SSH後來發展成為F-SSH,提供了高層次的,軍方級别的對通信過程的加密。SSH和F-SSH都有商業或自由軟體版本存在。

(2)使用安全拓撲結構。三角形防火牆結構。

繼續閱讀