關於區域網網路嗅探與監聽的相關知識介紹

  最近有網友想了解下區域網網路嗅探與監聽的知識,所以小編就整理了相關資料分享給大家,具體內容如下.希望大家參考參考!!!

  區域網網路嗅探與監聽的相關知識介紹***黑客技術***

  一. 誰偷我的網路日記

  檢察員小潔從小就有寫日記的習慣,畢業後上了工作崗位也不曾改變,無論工作多忙多累,每天晚上臨近睡覺前她總會把今日發生的事情記錄進日記本里,例如一些工作問題、心情想法、同事和上級的事情等等。小潔使用的是一個網站提供的網路日記本服務,她很喜歡那個寧靜簡潔的文字介面,偶爾沒任務要忙或者心情不好的時候,她就會用院裡的網路上去看自己以前寫的日記。

  這天小潔和往常一樣來到辦公室,卻發現氣氛不同往常了:同事們面對她的時候笑容很不自然,有幾個女同事還偷偷對她指指點點的,小潔看過去時她們卻又不說話了,她只好豎起耳朵偷聽,隱隱約約聽到一句“……連別人還欠著50元沒還她都寫上去,這個人真……”,小潔的臉瞬間變得煞白:這不是她某天的日記內容嗎?……

  究竟是誰把小潔的日記偷呢?你正在使用的區域網,又能真的很安全嗎?小潔不知道,大院的局域網裡,有一雙耳朵正在悄悄的記錄著她的電腦上傳送和接收的一切資訊……

  這雙耳朵的名詞被稱為“網路嗅探”***Network Sniffing***或“網路監聽”***Network Listening***,它並不是最近才出現的技術,也並非專門用在黑道上的技術,監聽技術作為一種輔助手段,在協助網路管理員監測網路傳輸資料、排除網路故障等方面具有不可替代的作用,因此一直倍受網路管理員的青睞並逐漸發展完善,所謂“監聽”技術,就是在互相通訊的兩臺計算機之間通過技術手段插入一臺可以接收並記錄通訊內容的裝置,最終實現對通訊雙方的資料記錄。一般都要求用作監聽途徑的裝置不能造成通訊雙方的行為異常或連線中斷等,即是說,監聽方不能參與通訊中任何一方的通訊行為,僅僅是“被動”的接收記錄通訊資料而不能對其進行篡改,一旦監聽方違反這個要求,這次行為就不是“監聽”,而是“劫持”***Hijacking***了。

  以上對於“監聽”概念的描述,有人也許已經躍躍欲試了:我有網路,也有電腦,還有網路嗅探工具,那我能不能把某個收費電影站甚至國防部網站的賬號密碼記錄下來呢?當然這也不是不可能,但是前提是你有足夠能力在相關站點實體伺服器的閘道器或路由裝置上接入一個監聽裝置,否則憑一臺你自己家裡的計算機是無法實現的。這就是“監聽”的弱點:它要求監聽裝置的物理傳輸介質與被監聽裝置的物理傳輸介質存在直接聯絡或者資料包能經過路由選擇到達對方,即一個邏輯上的三方連線。能實現這個條件的只有以下情況:

  1. 監聽方與通訊方位於同一物理網路,如區域網

  2. 監聽方與通訊方存在路由或介面關係,例如通訊雙方的同一閘道器、連線通訊雙方的路由裝置等

  因此,直接用自己家裡的計算機去嗅探國防部網站的資料是不可能的,你看到的只能是屬於你自己領域的資料包,那些害怕自己在家裡上網被遠方的入侵者監聽的朋友大可以鬆口氣了***你機器上有木馬的情況除外***,除非入侵者控制了你的閘道器裝置,但這需要入侵者具有高階的入侵技術,而一個有高階技術的入侵者會稀罕普通家庭使用者是的一臺計算機嗎?

  不可否認,“監聽”行為是會對通訊方造成損失的,一個典型例子是在1994年的美國網路竊聽事件,一個不知名的人在眾多的主機和骨幹網路裝置上安裝了網路監聽軟體,利用它對美國骨幹網際網路和軍方網竊取了超過100000個有效的使用者名稱和口令,引發了重大損失,而“監聽”技術,就是在那次事件以後才從地下走向公開化的。

  下面,我們來更深入一層瞭解如今最常見的網路監聽。

  二. 活躍在局域網裡的“耳朵”們

  由於前面說過的原因,嗅探技術不太能在公共網路裝置上使用***僅指入侵行為的安裝方式,因為網路管理員要在某個路由裝置上設定監聽是簡單的事情***,所以當今最普遍的嗅探行為並不是發生在Internet上的,而是各個或大或小的區域網,因為它很顯然滿足監聽技術需要的條件:監聽方與通訊方位於同一物理網路。

  1.寫在前面:區域網內計算機通訊的概念和定址

  要發生監聽事件,就必須有至少兩臺計算機處於通訊狀態,而監聽的實質也是資料的傳輸,這就要求竊聽者自身也處於通訊網路中,而實現區域網通訊的基礎是乙太網模型***Ethernet***,它包括物理上的資料傳輸裝置如網絡卡、集線器和交換機等,除此之外還需要邏輯上的軟體、網路協議和作業系統支援,如網絡卡驅動程式、TCP/IP協議、NetBIOS協議、多種定址和底層協議等,具備了這些條件,計算機才可以實現完整的通訊過程。

  那麼區域網內的計算機通訊是怎麼進行的呢?計算機系統要傳輸資料時,是嚴格按照IEEE802.3標準的區域網協議進行的,而且還要結合TCP/IP和OSI模型7層規範實施,所以資料是經過打包封裝的,從高層到低層被分別加上相關資料頭和地址,直至物理層把其轉化為電平訊號傳送出去,而另一臺計算機則是通過逆向操作把資料還原的,這就引發了一個問題:定址問題。

  在局域網裡,計算機要查詢彼此並不是通過IP進行的,而是通過網絡卡MAC地址***也被稱為乙太網地址***,它是一組在生產時就固化的全球唯一標識號,根據協議規範,當一臺計算機要查詢另一臺計算機時,它必須把目標計算機的IP通過ARP協議***地址解析協議***在物理網路中廣播出去,“廣播”是一種讓任意一臺計算機都能收到資料的資料傳送方式,計算機收到資料後就會判斷這條資訊是不是發給自己的,如果是,就會返回應答,在這裡,它會返回自身地址,這一步被稱為“ARP定址”。當源計算機收到有效的迴應時,它就得知了目標計算機的MAC地址並把結果儲存在系統的地址緩衝池裡,下次傳輸資料時就不需要再次傳送廣播了,這個地址緩衝池會定時重新整理重建,以免造成資料老舊和錯誤。當前活動的ARP表可以使用arp –a命令檢視。

  話題回到資料被打包成為位元流的最後兩層,在這裡有一個關鍵部分被稱為“資料鏈路層”,資料在網路層形成IP資料報,再向下到達資料鏈路層,由資料鏈路層將IP資料報分割為資料幀,增加乙太網包頭,再向下一層傳送。乙太網包頭中包含著本機和目標裝置的MAC地址,也就是說,鏈路層的資料幀傳送時,是依靠乙太網地址而非IP地址來確認的,網絡卡驅動程式不會關心IP資料報中的目標地址,它所需要的僅僅是MAC地址,而MAC地址就是通過前面提到的ARP定址獲得的。簡單的說,資料在區域網內的最終傳輸目標地址是對方網絡卡的MAC地址,而不是IP地址,IP地址在局域網裡只是為了協助系統找到MAC地址而已。

  而就是因為這個定址結構,最終導致了監聽實現的發生。

  那麼,發生在Internet上的監聽又是怎麼進行的呢?Internet並不採用MAC地址定址,因此不可能發生類似區域網內的監聽案例,實際上,Internet上的監聽是因為資料必須通過的路由閘道器路由裝置被做了手腳,不屬於本文討論範圍。

  2.發生在共享式區域網內的竊聽

  所謂的“共享式”區域網***Hub-Based Lan***,指的是早期採用集線器HUB作為網路連線裝置的傳統乙太網的結構,在這個結構裡,所有機器都是共享同一條傳輸線路的,集線器沒有埠的概念,它的資料傳送方式是“廣播”, 集線器接收到相應資料時是單純的把資料往它所連線的每一臺裝置線路上傳送的,例如一臺機器傳送一條“我要和小金說話”的報文,那麼所有連線這個集線器的裝置都會收到這條報文,但是隻有名字為“小金”的計算機才會接收處理這條報文,而其他無關的計算機則會“不動聲色”的拋棄掉該報文。因此,共享乙太網結構裡的資料實際上是沒有隱私性的,只是網絡卡會“君子”化的忽略掉與自己無關的“閒言碎語”罷了,但是很不巧,網絡卡在設計時是加入了“工作模式”的選項的,正是這個特性導致了噩夢。

  每塊網絡卡基本上都會有以下工作模式:Unicast、Broadcast、Multicast、Promiscuous,一般情況下,作業系統會把網絡卡設定為Broadcast***廣播***模式,在Broadcast模式下,網絡卡可以接收所有型別為廣播報文的資料幀——例如ARP定址,此外它會忽略掉目標地址並非自己MAC地址的報文,即只接收發往自身的資料報文、廣播和組播報文,這才是網絡卡的正常工作模式;如果一塊網絡卡被設定為Unicast或Multicast模式,在局域網裡可能會引發異常,因為這兩個模式限制了它的接收報文型別;而Promiscuous***混雜***模式,則是罪惡的根源。在混雜模式裡,網絡卡對報文中的目標MAC地址不加任何檢查而全部接收,這樣就造成無論什麼資料,只要是路過的都會被網絡卡接收的局面,監聽就是從這裡開始的。

  一般情況下,網絡卡的工作模式是作業系統設定好的,而且沒有公開模式給使用者選擇,這就限制了普通使用者的監聽實現,但是自從嗅探器***Sniffer***家族發展到一定程度後,開始擁有了設定網絡卡工作模式的權力,而且矛頭直指Promiscuous,任何使用者只要在相應選擇上打個勾,他的機器就變成了可以記錄區域網內任何機器傳輸的資料的耳朵,由於共享式區域網的特性,所有人都是能收到資料的,這就造成了不可防禦的資訊洩漏。

  可是,最終這種監聽方式還是被基本消滅了,人們用了什麼手段呢?很簡單,區域網結構升級了,變成“交換式區域網”。

  但是魔高一丈,若干年後,監聽再次捲土重來。

  3.發生在交換式區域網內的竊聽

  作為與“共享式”相對的“交換式”區域網***Switched Lan***,它的網路連線裝置被換成了交換機***Switch***,交換機比集線器聰明的一點是它連線的每臺計算機是獨立的,交換機引入了“埠”的概念,它會產生一個地址表用於存放每臺與之連線的計算機的MAC地址,從此每個網線介面便作為一個獨立的埠存在,除了宣告為廣播或組播的報文,交換機在一般情況下是不會讓其他報文出現類似共享式區域網那樣的廣播形式傳送行為的,這樣即使你的網絡卡設定為混雜模式,它也收不到發往其他計算機的資料,因為資料的目標地址會在交換機中被識別,然後有針對性的發往表中對應地址的埠,決不跑到別人家裡去。

  這一改進迅速扼殺了傳統的區域網監聽手段,但是歷史往往證明了人是難以被征服的……

  ***1***.對交換機的攻擊:MAC洪水

  不知道是誰第一個發現了這種攻擊模式,大概是因為交換機的出現破壞了嗅探器的工作,所以一肚子氣洩到了交換機身上,另一種看法則是精明的技術人員設想交換機的處理器在超過所能承受資訊量的時候會發生什麼情況而進行的試驗,無論是從什麼論點出發的,至少這個攻擊模式已經成為現實了:所謂MAC洪水攻擊,就是向交換機發送大量含有虛假MAC地址和IP地址的IP包,使交換機無法處理如此多的資訊而引起裝置工作異常,也就是所謂的“失效”模式,在這個模式裡,交換機的處理器已經不能正常分析資料報和構造查詢地址表了,然後,交換機就會成為一臺普通的集線器,毫無選擇的向所有埠傳送資料,這個行為被稱作“泛洪傳送”,這樣一來攻擊者就能嗅探到所需資料了。

  不過使用這個方法會為網路帶來大量垃圾資料報文,對於監聽者來說也不是什麼好事,因此MAC洪水使用的案例比較少,而且設計了埠保護的交換機可能會在超負荷時強行關閉所有埠造成網路中斷,所以如今,人們都偏向於使用地址解析協議ARP進行的欺騙性攻擊。

  ***2***.地址解析協議帶來的噩夢

  回顧前面提到的區域網定址方式,我們已經知道兩臺計算機完成通訊依靠的是MAC地址而與IP地址無關,而目標計算機MAC地址的獲取是通過ARP協議廣播得到的,而獲取的地址會儲存在MAC地址表裡並定期更新,在這個時間裡,計算機是不會再去廣播定址資訊獲取目標MAC地址的,這就給了入侵者以可乘之機。

  當一臺計算機要傳送資料給另一臺計算機時,它會以IP地址為依據首先查詢自身的ARP地址表,如果裡面沒有目標計算機的MAC資訊,它就觸發ARP廣播定址資料直到目標計算機返回自身地址報文,而一旦這個地址表裡存在目標計算機的MAC資訊,計算機就直接把這個地址作為資料鏈路層的乙太網地址頭部封裝傳送出去。為了避免出現MAC地址表保持著錯誤的資料,系統在一個指定的時期過後會清空MAC地址表,重新廣播獲取一份地址列表,而且新的ARP廣播可以無條件覆蓋原來的MAC地址表。

  假設區域網內有兩臺計算機A和B在通訊,而計算機C要作為一個竊聽者的身份得到這兩臺計算機的通訊資料,那麼它就必須想辦法讓自己能插入兩臺計算機之間的資料線路里,而在這種一對一的交換式網路裡,計算機C必須成為一箇中間裝置才能讓資料得以經過它,要實現這個目標,計算機C就要開始偽造虛假的ARP報文。

  ARP定址報文分兩種,一種是用於傳送定址資訊的ARP查詢包,源機器使用它來廣播定址資訊,另一種則是目標機器的ARP應答包,用於迴應源機器它的MAC地址,在竊聽存在的情況下,如果計算機C要竊聽計算機A的通訊,它就偽造一個IP地址為計算機B而MAC地址為計算機C的虛假ARP應答包傳送給計算機A,造成計算機A的MAC地址表錯誤更新為計算機B的IP對應著計算機C的MAC地址的情況,這樣一來,系統通過IP地址獲得的MAC地址都是計算機C的,資料就會發給以監聽身份出現的計算機C了。但這樣會造成一種情況就是作為原目標方的計算機B會接收不到資料,因此充當假冒資料接收角色的計算機C必須擔當一個轉發者的角色,把從計算機A傳送的資料返回給計算機B,讓兩機的通訊正常進行,這樣,計算機C就和計算機AB形成了一個通訊鏈路,而對於計算機A和B而言,計算機C始終是透明存在的,它們並不知道計算機C在偷聽資料的傳播。只要計算機C在計算機A重新發送ARP查詢包前及時偽造虛假ARP應答包就能維持著這個通訊鏈路,從而獲得持續的資料記錄,同時也不會造成被監聽者的通訊異常。

  計算機C為了監聽計算機A和B資料通訊而發起的這種行為,就是“ARP欺騙”***ARP Spoofing***或稱“ARP攻擊”***ARP Attacking***,實際上,真實環境裡的ARP欺騙除了嗅探計算機A的資料,通常也會順便把計算機B的資料給嗅探了去,只要計算機C在對計算機A傳送偽裝成計算機B的ARP應答包的同時也向計算機B傳送偽裝成計算機A的ARP應答包即可,這樣它就可作為一個雙向代理的身份插入兩者之間的通訊鏈路。

  三. 圍堵“耳朵”:區域網監聽的防禦

  知道了區域網監聽的實現,我們就不難重現開篇提及的檢察員小潔的日記內容是如何被別人看到的了:雖然辦公室的網路是交換式區域網,但是竊聽者使用ARP欺騙工具篡改了小潔機器的MAC地址表,使小潔的機器發出的資料實際上是在竊聽者機器裡走一圈後才真正傳送出去的,這時候只要小潔登入任何使用明文傳輸密碼的網頁表單,她輸入的網址、使用者名稱和密碼就會被嗅探軟體記錄下來,竊聽者只要使用這個密碼登入網站,就可以把小潔寫在日記本上的隱私一覽無餘了。

  由此可見,由網路監聽引發的資訊洩漏後果是非常嚴重的,輕則隱私洩漏,重則因為銀行密碼、經過網路傳輸的文件內容失竊而導致無法計量的經濟損失,因此,如何有效防止區域網監聽,一直是令管理員操心的問題。

  由於共享式區域網的侷限性***集線器不會選擇具體埠***,在上面流通的資料基本上是“你有,我也有”的,竊聽者連ARP資訊都不需要更改,自然無法躲過被監聽的命運,要解決這個問題,只能先把集線器更換為交換機,杜絕這種毫無隱私的資料傳播方式。

  好了,現在我們換到交換式區域網了,下一步,就該開始著手圍堵這些不受歡迎的耳朵們了。

  1.尋找隱匿的耳朵

  如果我們懷疑某臺機器在偷聽資料,應該怎麼辦呢?

  早在幾年前,有一種被稱為ping檢測的方法就已經開始流行了,它的原理還是利用MAC地址自身,大部分網絡卡允許使用者在驅動程式設定裡自行指定一個MAC地址***特別說明:這種通過驅動程式指定的MAC地址僅僅能用於自身所處的區域網本身,並不能用於突破遠端閘道器的MAC+IP繫結限制!***,因此我們就可以利用這一特性讓正在欺騙MAC地址的機器自食其果。

  ?假設IP為192.168.1.4的機器上裝有ARP欺騙工具和嗅探器,所以ping 192.168.1.4,然後arp –a | find “192.168.1.4” 得到它的MAC地址“00-00-0e-40-b4-a1”

  ?修改自己的網絡卡驅動設定頁,改Network Address為“00000e40b4a2”,即去掉分隔符的MAC地址最末位加1

  ?再次ping 192.168.1.4,正常的話應該不會看到任何迴應,因為區域網中不會存在任何與“00-00-0e-40-b4-a2”相符的MAC地址。

  ?如果看到返回,則說明192.168.1.4很可能裝有嗅探器。

  另一種比較“惡毒”的方法是對被懷疑安裝了嗅探器的計算機發送大量不存在的MAC地址的資料報,由於監聽程式在進行分析和處理大量的資料包需要佔用很多的CPU資源,這將導致對方計算機效能下降,這樣我們只要比較傳送報文前後該機器效能就能加以判斷,但是如果對方機器配置比較高,這個方法就不太有效了。

  除了主動嗅探的行為,還有一些機器是被入侵者惡意種植了帶有嗅探功能的後門程式,那麼我們就必須使用本機測試法了,其原理是建立一個原始連線***Raw Socket***開啟自己機器的隨機埠,然後再建立一個UDP連線到自己機器的任意埠並隨意傳送一條資料,正常情況下,這個方法建立的原始連線是不可能成功接收資料的,如果原始連線能接收這個資料,則說明機器網絡卡正處於“混雜”模式——嗅探器經常這麼幹,接下來的事情就不用我說了吧?

  但是基本上沒找到現成的工具可以使用,也可能是我的查詢能力問題,但是其實這個問題很好解決:因為安裝了嗅探器的機器是能接收到任何資料的,那麼只要在這個機器上再次安裝一個嗅探軟體***不是ARP欺騙型別!***就能“共享”捕獲的資料,正常情況下我們是隻能看到屬於自己IP的網路資料的,如果不巧發現嗅探器把其它計算機的資料也順手牽羊了,並且由於ARP欺騙的存在,我們還可能嗅探到自己的計算機會定期傳送一條ARP應答包出去……既然都做得那麼明顯了,那就不要客氣把它滅了……

  2.預防為主——從根本上防禦網絡監聽

  雖然利用ARP欺騙報文進行的網路監聽很難察覺,但它並不是無法防禦的,與ARP定址相對的,在一個相對穩定的局域網裡***機器數量和網絡卡被更換的次數不多,也沒有人一沒事幹就去更改自己IP***,我們可以使用靜態ARP對映,即記錄下區域網內所有計算機的網絡卡MAC地址和對應的IP,然後使用“arp –s IP地址 MAC地址”進行靜態繫結,這樣計算機就不會通過ARP廣播來找人了,自然不會響應ARP欺騙工具傳送的動態ARP應答包***靜態地址的優先度大於動態地址***,但是這個方法存在的劣勢就是對操作使用者要求挺高,要知道並不是所有人都理解MAC地址是幹什麼用的,另外一點就是如果機器數量過多或者變動頻繁,會對操作使用者***通常是網路管理員***造成巨大的心靈傷害……

  因此,一般常用的方法是使用軟體防禦,例如Anti Arp Sniffer,它可以強行繫結本機與閘道器的MAC關係,讓偽裝成閘道器獲取資料的監聽機成了擺設,而如果是監聽者僅僅欺騙了某臺計算機的情況呢?這就要使用ARP Watch了,ARP Watch會實時監控區域網中計算機MAC地址和ARP廣播報文的變化情況,如果有ARP欺騙程式傳送虛假地址報文,必然會造成MAC地址表不符,ARP Watch就會彈出來警告使用者了。

  此外,對網路進行VLAN劃分也是有效的方法,每個VLAN之間都是隔離的,必須通過路由進行資料傳輸,這個時候MAC地址資訊會被丟棄,每臺計算機之間都是採用標準TCP/IP進行資料傳輸的,即使存在嗅探器也無法使用虛假的MAC地址進行欺騙了。

  四. 結語

  網路監聽技術作為一種工具,總是扮演著正反兩方面的角色,尤其在局域網裡更是經常以黑暗的身份出現。對於入侵者來說,通過網路監聽可以很容易地獲得使用者的關鍵資訊,因此他們青睞。而對於入侵檢測和追蹤者來說,網路監聽技術又能夠在與入侵者的鬥爭中發揮重要的作用,因此他們也離不開必要的嗅探。我們應該努力學習網路安全知識,進一步挖掘網路監聽技術的細節,紮實掌握足夠的技術基礎,才能在與入侵者的鬥爭中取得勝利。