Linux系統下的網路監聽技術(1)(轉)

worldblog發表於2007-08-10
Linux系統下的網路監聽技術(1)(轉)[@more@]

  前言:在網路中,當資訊進行傳播的時候,可以利用工具,將網路介面設定在監聽的模式,便可將網路中正在傳播的資訊截獲或者捕獲到,從而進行攻擊。網路監聽在網路中的任何一個位置模式下都可實施進行。而駭客一般都是利用網路監聽來擷取使用者口令。比如當有人佔領了一臺主機之後,那麼他要再想將戰果擴大到這個主機所在的整個區域網話,監聽往往是他們選擇的捷徑。很多時候我在各類安全論壇上看到一些初學的愛好者,在他們認為如果佔領了某主機之後那麼想進入它的內部網應該是很簡單的。其實非也,進入了某主機再想轉入它的內部網路裡的其它機器也都不是一件容易的事情。因為你除了要拿到他們的口令之外還有就是他們共享的絕對路徑,當然了,這個路徑的盡頭必須是有寫的許可權了。在這個時候,執行已經被控制的主機上的監聽程式就會有大收效。不過卻是一件費神的事情,而且還需要當事者有足夠的耐心和應變能力。主要包括:

  資料幀的截獲

  對資料幀的分析歸類

  dos攻擊的檢測和預防

  IP冒用的檢測和攻擊

  在網路檢測上的應用

  對垃圾郵件的初步過濾

  研究的意義:

  1)我國的網路正在快速發展中,相應的問題也就顯現出來,網路管理及相應應用自然將越發重要,而監聽技術正是網路管理和應用的基礎,其意義當然重要,放眼當前相關工具linux 有snort tcpdump ,snift 等,window 有nexray, sniffer等五一不是國外軟體,隨著中國網路的發展,監聽系統必將大有用武之地,因此監聽技術的研究已是時事的要求。

  2)為什麼選擇linux 作為環境?中國入世,各種針對盜版的打擊力度和對於正版軟體的保護力度都將大大加強,windows的盜版軟體隨處可見的現象將會一去不返,面對這樣的情況,大部分的公司只有兩種選擇:要麼花大價錢向微軟購買正版軟體,要麼是用自由作業系統linux,特別是重要部門,如國家機關,政府部門,難道要把自己的辦公系統操縱在國外大公司手裡?北京的政府辦公系統已經轉用紅旗linux,而且linux的介面也在不但的改進,更加友好易操作,我們有理由相信.linux將在我國大有作為,這也是研究Linux 下網路監聽的原因。

  關於Linux下網路監聽技術主要有兩個要點:

  1)如何儘可能完整的擷取網路上的資料幀,因為乙太網上每時每刻都可能有資訊傳遞,而且根據乙太網的規模不同網路上的資訊量也變化不大,所以擷取資料幀不僅要保證資料幀的完整,而且還要考慮到如何才能減少漏擷取資料幀。

  2)就是對擷取的資料幀的過濾分析,所謂監聽當然要“聽”得懂才行,所以把擷取的資料幀翻譯成我們能用的資料,監聽才算成功。

  網路監聽的原理

  Ethernet協議的工作方式是將要傳送的資料包發往連線在一起的所有主機。在包頭中包括有應該接收資料包的主機的正確地址,因為只有與資料包中目標地址一致的那臺主機才能接收到資訊包,但是當主機工作在監聽模式下的話不管資料包中的目標實體地址是什麼,主機都將可以接收到。許多區域網內有十幾臺甚至上百臺主機是透過一個電纜、一個集線器連線在一起的,在協議的高層或者使用者來看,當同一網路中的兩臺主機通訊的時候,源主機將寫有目的的主機地址的資料包直接發向目的主機,或者當網路中的一臺主機同外界的主機通訊時,源主機將寫有目的的主機IP地址的資料包發向閘道器。但這種資料包並不能在協議棧的高層直接傳送出去,要傳送的資料包必須從TCP/IP協議的IP層交給網路介面,也就是所說的資料鏈路層。網路介面不會識別IP地址的。在網路介面由IP層來的帶有IP地址的資料包又增加了一部分以太禎的禎頭的資訊。在禎頭中,有兩個域分別為只有網路介面才能識別的源主機和目的主機的實體地址這是一個48位的地址,這個48位的地址是與IP地址相對應的,換句話說就是一個IP地址也會對應一個實體地址。對於作為閘道器的主機,由於它連線了多個網路,它也就同時具備有很多個IP地址,在每個網路中它都有一個。而發向網路外的禎中繼攜帶的就是閘道器的實體地址。

  Ethernet中填寫了實體地址的禎從網路介面中,也就是從網路卡中傳送出去傳送到物理的線路上。如果區域網是由一條粗網或細網連線成的,那麼數字訊號在電纜上傳輸訊號就能夠到達線路上的每一臺主機。再當使用集線器的時候,傳送出去的訊號到達集線器,由集線器再發向連線在集線器上的每一條線路。這樣在物理線路上傳輸的數字訊號也就能到達連線在集線器上的每個主機了。當數字訊號到達一臺主機的網路介面時,正常狀態下網路介面對讀入資料禎進行檢查,如果資料禎中攜帶的實體地址是自己的或者實體地址是廣播地址,那麼就會將資料禎交給IP層軟體。對於每個到達網路介面的資料禎都要進行這個過程的。但是當主機工作在監聽模式下的話,所有的資料禎都將被交給上層協議軟體處理。

  當連線在同一條電纜或集線器上的主機被邏輯地分為幾個子網的時候,那麼要是有一臺主機處於監聽模式,它還將可以接收到發向與自己不在同一個子網(使用了不同的掩碼、IP地址和閘道器)的主機的資料包,在同一個物理通道上傳輸的所有資訊都可以被接收到。

  在UNIX系統上,當擁有超級許可權的使用者要想使自己所控制的主機進入監聽模式,只需要向Interface(網路介面)傳送I/O控制命令,就可以使主機設定成監聽模式了。而在Windows9x的系統中則不論使用者是否有許可權都將可以透過直接執行監聽工具就可以實現了。

  在網路監聽時,常常要儲存大量的資訊(也包含很多的垃圾資訊),並將對收集的資訊進行大量的整理,這樣就會使正在監聽的機器對其它使用者的請求響應變的很慢。同時監聽程式在執行的時候需要消耗大量的處理器時間,如果在這個時候就詳細的分析包中的內容,許多包就會來不及接收而被漏走。所以監聽程式很多時候就會將監聽得到的包存放在檔案中等待以後分析。分析監聽到的資料包是很頭疼的事情。因為網路中的資料包都非常之複雜。兩臺主機之間連續傳送和接收資料包,在監聽到的結果中必然會加一些別的主機互動的資料包。監聽程式將同一TCP會話的包整理到一起就相當不容易了,如果你還期望將使用者詳細資訊整理出來就需要根據協議對包進行大量的分析。Internet上那麼多的協議,執行進起的話這個監聽程式將會十分的大哦。

  現在網路中所使用的協議都是較早前設計的,許多協議的實現都是基於一種非常友好的,通訊的雙方充分信任的基礎。在通常的網路環境之下,使用者的資訊包括口令都是以明文的方式在網上傳輸的,因此進行網路監聽從而獲得使用者資訊並不是一件難點事情,只要掌握有初步的TCP/IP協議知識就可以輕鬆的監聽到你想要的資訊的。前些時間美籍華人China-babble曾提出將望路監聽從區域網延伸到廣域網中,但這個想法很快就被否定了。如果真是這樣的話我想網路必將天下大亂了。而事實上現在在廣域網裡也可以監聽和截獲到一些使用者資訊。只是還不夠明顯而已。在整個Internet中就更顯得微不足道了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-940287/,如需轉載,請註明出處,否則將追究法律責任。

相關文章