天天看點

Sniffer含義及工作原理

一.有關sniffer及sniffer的含義 

sniffers(嗅探器)幾乎和internet有一樣久的曆史了.Sniffer是一種常用的收集有用資料方法,這些資料可以是使用者的帳号和密碼,可以是一些商用機密資料等等。随着Internet及電子商務的日益普及,Internet的安全也越來越受到重視。在Internet安全隐患中扮演重要角色之一的Sniffer以受到越來越大的關注,是以今天我要向大家介紹一下介紹Sniffer以及如何阻止sniffer。 

大多數的黑客僅僅為了探測内部網上的主機并取得控制權,隻有那些"雄心勃勃"的黑客,為了控制整個網絡才會安裝特洛伊木馬和後門程式,并清除記錄。他們經常使用的手法是安裝sniffer。 

在内部網上,黑客要想迅速獲得大量的賬号(包括使用者名和密碼),最為有效的手段是使用 "sniffer" 程式。這種方法要求運作Sniffer 程式的主機和被監聽的主機必須在同一個以太網段上,故而在外部主機上運作sniffer是沒有效果的。再者,必須以root的身份使用sniffer 程式,才能夠監聽到以太網段上的資料流。談到以太網sniffer,就必須談到以太網sniffing。 

那麼什麼是以太網sniffer呢? 

以太網sniffing是指對以太網裝置上傳送的資料包進行偵聽,發現感興趣的包。如果發現符合條件的包,就把它存到一個log檔案中去。通常設定的這些條件是包含字"username"或"password"的包。 

它的目的是将網絡層放到promiscuous模式,進而能幹些事情。

Promiscuous模式是指網絡上的所有裝置都對總線上傳送的資料進行偵聽,并不僅僅是它們自己的資料。根據第二章中有關對以太網的工作原理的基本介紹,可以知道:一個裝置要向某一目标發送資料時,它是對以太網進行廣播的。一個連到以太網總線上的裝置在任何時間裡都在接受資料。不過隻是将屬于自己的資料傳給該計算機上的應用程式。 

利用這一點,可以将一台計算機的網絡連接配接設定為接受所有以太網總線上的資料,進而實作sniffer。 

sniffer通常運作在路由器,或有路由器功能的主機上。這樣就能對大量的資料進行監控。sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目标系統,然後使用sniffer這種攻擊手段,以便得到更多的資訊。 

sniffer除了能得到密碼或使用者名外,還能得到更多的其他資訊,比如一個其他重要的資訊,在網上傳送的金融資訊等等。sniffer幾乎能得到任何以太網上的傳送的資料包。黑客會使用各種方法,獲得系統的控制權并留下再次侵入的後門,以保證sniffer能夠執行。在Solaris 2.x平台上,sniffer 程式通常被安裝在/usr/bin 或/dev目錄下。黑客還會巧妙的修改時間,使得sniffer程式看上去是和其它系統程式同時安裝的。 

大多數以太網sniffer程式在背景運作,将結果輸出到某個記錄檔案中。黑客常常會修改ps程式,使得系統管理者很難發現運作的sniffer程式。 

以太網sniffer程式将系統的網絡接口設定為混合模式。這樣,它就可以監聽到所有流經同一以太網網段的資料包,不管它的接受者或發送者是不是運作sniffer的主機。 程式将使用者名、密碼和其它黑客感興趣的資料存入log檔案。黑客會等待一段時間 ----- 比如一周後,再回到這裡下載下傳記錄檔案。 

講了這麼多,那麼到底我們可以用什麼通俗的話來介紹sniffer呢? 

計算機網絡與電話電路不同,計算機網絡是共享通訊通道的。共享意味着計算機能夠接收到發送給其它計算機的資訊。捕獲在網絡中傳輸的資料資訊就稱為sniffing(竊聽)。 

以太網是現在應用最廣泛的計算機連網方式。以太網協定是在同一回路向所有主機發送資料包資訊。資料標頭包含有目标主機的正确位址。一般情況下隻有具有該位址的主機會接受這個資料包。如果一台主機能夠接收所有資料包,而不理會資料標頭内容,這種方式通常稱為"混雜" 模式。 

由于在一個普通的網絡環境中,帳号和密碼資訊以明文方式在以太網中傳輸, 一旦入侵者獲得其中一台主機的root權限,并将其置于混雜模式以竊聽網絡資料,進而有可能入侵網絡中的所有計算機。 

一句話,sniffer就是一個用來竊聽的黑客手段和工具。 

二、sniffer的工作原理

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

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

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

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

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

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

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

1、密碼 

我想這是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd.就算你在網絡傳送過程中使用了加密的資料,sniffer記錄的資料一樣有可能使入侵者在家裡邊吃肉串邊想辦法算出你的算法。 

2、金融帳号 

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

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

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

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

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

二.sniffer的工作環境 

snifffer就是能夠捕獲網絡封包的裝置。嗅探器的正當用處在于分析網絡的流量,以便找出所關心的網絡中潛在的問題。例如,假設網絡的某一段運作得不是很好,封包的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精确的問題判斷。 

嗅探器在功能和設計方面有很多不同。有些隻能分析一種協定,而另一些可能能夠分析幾百種協定。一般情況下,大多數的嗅探器至少能夠分析下面的協定: 

1.标準以太網 

2.TCP/IP 

3.IPX 

4.DECNet 

嗅探器通常是軟硬體的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什麼錢,但得不到什麼支援。 

嗅探器與一般的鍵盤捕獲程式不同。鍵盤捕獲程式捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網絡封包。嗅探器通過将其置身于網絡接口來達到這個目的——例如将以太網卡設定成雜收模式。(為了了解雜收模式是怎麼回事,先解釋區域網路是怎麼工作的)。 

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

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

每一個在LAN上的工作站都有其硬體位址。這些位址唯一地表示着網絡上的機器(這一點于Internet位址系統比較相似)。當使用者發送一個封包時,這些封包就會發送到LAN上所有可用的機器。 

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

如果某在工作站的網絡接口處于雜收模式,那麼它就可以捕獲網絡上所有的封包和幀,如果一個工作站被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。 

嗅探器可能造成的危害: 

1.嗅探器能夠捕獲密碼 

2.能夠捕獲專用的或者機密的資訊 

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

事實上,如果你在網絡上存在非授權的嗅探器就以為着你的系統已經暴露在别人面前了。(大家可以試試天行2的嗅探功能) 

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

簡單的放置一個嗅探器賓将其放到随便什麼地方将不會起到什麼作用。将嗅探器放置于被攻擊機器或網絡附近,這樣将捕獲到很多密碼,還有一個比較好的方法就是放在網關上。如果這樣的話就能捕獲網絡和其他網絡進行身份鑒别的過程。這樣的方式将成倍地增加我們能夠攻擊的範圍。 

三.誰會使用sniffers 

可能誰都回知道誰會使用sniffer,但是并不是每個使用它的人都是網絡高手,因為現在有很多的sniffer都成了傻瓜似的了,前段時間用的最多的不外乎oicq sniffer。我想那些喜歡查好友ip的朋友都應該記得它吧。呵呵,我都使用過它,現在當然不用了啊!