如何發現同一個網路上的sniffer?
Q:
如何發現同一個網路上的sniffer? 好像說是要去發現網路上的網路卡處於某種模式,就可以判斷該機器在監聽網路. 也看見過介紹,說是 網路卡 分為 監聽模式,混雜模式,等等,好幾類,但是我想 實現起來比較困難!我是 一點頭緒也沒有! 請教:具體應該如何做呢?越詳細越好呀~~ A: u can see here! 要監測只採集資料而不對任何資訊進行回應的竊聽設備,需要逐個仔細檢查乙太網上所 有物理連接。 不可能通過遠端傳送資料包或ping就可以檢查電腦是否正在竊聽。 一個主機上的sniffer會將網路接頭置為混雜模式以接收所有資料包。對於某些UNIX系統, 通過監測到混雜模式的網路接頭。雖然可以在非混雜模式下執行sniffer,但這樣將只能捕獲本 機會話。入侵者也可能通過在諸如sh、telnet、rlogin、in.telnetd等程序中捕獲會話,並將用 戶操作記錄到其它文件中。這些都可能通過監視tty和kmem等設備輕易發現。只有混雜模式下的 sniffing才能捕獲乙太網中的所有會話,其它模式只能捕獲本機會話。 對於SunOS、NetBSD和其它BSD Unix系統,如下指令: "ifconfig -a" 會顯示所有網路接頭資訊和是否在混雜模式。DEC OSF/1和IRIX等系統需要指定設備。要找 到系統中有什麼網路接頭,可以執行如下指令: # netstat -r Routing tables Internet: Destination Gateway Flags Refs Use Interface default iss.net UG 1 24949 le0 localhost localhost UH 2 83 lo0 然後通過如下指令檢查每個網路接頭: #ifconfig le0 le0: flags=8863 inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1 入侵者經常會替換ifconfig等指令來避開檢查,因此一定要檢查指令程序的校驗值。 在ftp.cert.org:/pub/tools/的cpm程序(SunOS平台)可以檢查接頭是否有混雜模式標記。 對於Ultrix系統,使用pfstat和pfconfig指令也可能監測是否有sniffer執行。 pfconfig指定誰有權限執行sniffer。 pfstat顯示網路接頭是否處於混雜模式。 這些指令只在sniffer與內核存在連接時有效。而在預設情況,sniffer是沒有與內核連接 的。大多數的Unix系統,例如Irix、Solaris、SCO等,都沒有任何標記來指示是否處於混雜模 式,因此入侵者能夠竊聽整個網路而卻無法監測到它。 通常一個sniffer的記錄文件會很快增大並填滿文件空間。在一個大型網路中,sniffer明 顯加重機器負荷。這些警告資訊往往能夠說明 管理員發現sniffer。建議使用lsof程序搜尋訪 問資料包設備(如SunOS的/dev/nit)的程序和記錄文件 阻止sniffer 主動式集線器只向目標位址主機傳送資料包,從而使混雜模式sniffer失效。它僅適用於 10Base-T乙太網。(註:這種現在已在電腦市場消失。) 只有兩家廠商曾生產過主動式集線器: * 3Com * HP 隨著交換機的成本和價格的大幅度降低,交換機已成為非常有效的使sniffer失效的設備。目前 最一般的交換機在第三層(網路層)根據資料包目標位址進行轉發,而不太採取集線器的廣播 方式,從而使sniffer失去了用武之地。 ------------------------------------------------------------------------------- 加密 目前有許多軟體包可用於加密連接,從而使入侵者即使捕獲到資料,但無法將資料解密而 失去竊聽的意義。 以下是以前常用的一些軟體包 * deslogin coast.cs.purdue.edu:/pub/tools/unix/deslogin . * swIPe ftp.csua.berkeley.edu:/pub/cypherpunks/swIPe/ * Netlock 明白了吧! 還有一種就是通過交換機的漏洞,可以直接捕獲連接阜的資料 這樣你就沒法防範了! Q: 這個的原理是什麼?通過路由器捕獲好像容易理解一些 A: 不難哦,基本是醬紫的 當網路卡處在混雜模式下,會不加選項的接受所有資料包(這個也就是它監聽的原理) 反過來,利用這個,就可以發現它了,至於實現的手段就很多了,比如這個 L0pht AntiSniff http://www.securitysoftwaretech.com/.../download.html Q: 如果手頭上面沒有現成的工具的話呢?怎麼辦?怎麼發現?系統本身的工具裡面有這個功能嗎? A: 用CISCO的網管工具啊! L0pht Heavy Industries開發的AntiSniff工具用於 滿足檢測本機網路是否有機器處於混雜模式(即監聽模 式)。 一台處於混雜模式的機器通常是兩種含義之一:它 已被入侵並用於竊聽網路中的密碼或資料;或者它正被 用於合法的正常的網路監聽。 對於網路管理員和網路安 全專家而言,瞭解哪台機器正處於混雜模式以作進一步 的調查研究是非常重要的。 AntiSniff Version 1.X被設計為執行在乙太網的 Windows NT系統中,並提供了簡單易用的用戶圖形界 面。該工具以多種方式測試遠端系統是否正在捕捉和分 析那些並不是傳送給它的資料包。這些測試方法與其操 作系統本身無關。 使用AntiSniff V1.X ------------------ AntiSniff執行在本機乙太網的一個段上。例如,如 果在非交換式的C類網路中執行時,AntiSniff能監聽整 個網路;如果網路被按工作組分組並用交換機隔離,則 每個工作組中都需要執行一個AntiSniff。 原因是某些特 殊的測試使用了無效的乙太網位址和某些測試需要進行 混雜模式下的統計(如回應時間,包丟失率等)。 AntiSniff V1.X的用法非常簡單直觀。 在工具的圖 形界面中選項需要進行檢查的機器(單台或多台),並 且指定檢查頻率。 對於除網路回應時間檢查外的測試, 每一台機器會返回一個確定的正值或負值。返回的正值 表示該機器正處於混雜模式。還可以根據這個返回值定 義報警或提示。 對於網路回應時間測試的返回值,建議用戶根據第 一次返回的數值計算標準值,然後再對在flood和非 flood兩次測試的返回結果有較大變化的機器進行檢查。 一旦這些機器退出混雜模式返回到正常操作模式下,A ntiSniff的下一次測試將會記錄到混雜模式和非混雜模 式的差值(正值)。 建議盡可能週期性地執行這個工具。這個週期值根 據不同的站點、不同的網路負荷、測試的機器數量和網 站原則等而不同。 AntiSniff的技術細節 ------------------- 目前的AntiSniff V1.X實現了三種類型的測試:操 作系統類特殊測試、DNS測試和網路回應時間測試。 每種 測試都能單獨或與其它測試一起確定機器的執行狀態。 AntiSniff V1.X主要工作在非交換環境下的本機網段 中,如果執行在交換環境下其功能將大打折扣。 AntiSniff V2.0將不但能在本機網段中,而且能夠穿過 路由器和交換機進行工作。 ◆ 操作系統類特殊測試 Linux 內核測試 舊版本的Linux內核存在一個奇怪的特性,可被用於 確定機器是否處於混雜模式。在正常情形下,網路卡會過 濾和丟棄那些目標位址不是本機MAC位址或乙太網廣播地 址的資料包。 如果資料包的目標位址為本機乙太網位址 或廣播位址,將傳送給內核進行處理,因為其認為該以 太網資料畫格包含了本機的正確IP位址或該網路廣播地 址。 如果網路卡處於混雜模式,則每個資料包都會傳遞給 操作系統進行分析或處理。 許多版本的Linux內核只檢查 資料包中的IP位址以確定是否存放到IP堆棧中進行處 理。為了利用這一點,AntiSniff構造一個無效乙太網地 址而IP位址有效的資料包。 對於使用了這些內核版本和 處於混雜模式的Linux系統,由於只檢查到IP位址有效而 將其接收並存放到相應堆棧中。 通過在這個偽造的以太 網資料畫格中構造一個ICMP ECHO請求,這些系統會返迴響 應包(如果處於混雜模式)或 忽略(如果不處於混雜模 式),從而暴露其工作模式。當偽造的乙太網資料畫格中 的IP位址設定為網路廣播位址時這個測試非常有效。 AntiSniff的使用者可以修改偽造的乙太網址,預設值為 66:66:66:66:66:664。 NetBSD 許多NetBSD內核具有與上述Linux內核相同的特性, 不過偽造乙太網資料畫格中的IP位址必須設為廣播位址。 Windows 95,98,NT 根據對網路驅動程式頭文件的瞭解,可以知道當處 於混雜模式時,Microsoft的操作系統會確切地檢查每個 包的乙太網位址。 如果與網路卡的乙太網位址匹配,將作 為目標IP位址為本機的資料包存放到相應堆棧中處理。 可以被利用的一點是系統對乙太網廣播包的分析。 在正 常情形下,例如機器工作在非混雜模式下,網路卡只向系 統內核傳輸那些目標乙太網址與其匹配或為乙太網廣播 位址(ff:ff:ff:ff:ff:ff)的資料包。 如果機器處於混 雜模式下,網路驅動程式仍然會檢查每個資料包的以太 網位址,但檢查是否為廣播包時卻只檢查頭8位位址是否 為0xff。 因此,為了使處於混雜模式的系統返迴回應信 息,AntiSniff構造乙太網位址為ff:00:00:00:00:00且 含有正確目標IP位址的資料包,當Microsoft的操作系統 接收到這個資料包時,將根據網路驅動程式檢查到的細 微差別而返迴回應包(如果處於混雜模式)或丟棄這個 資料包(如果處於非混雜模式)。 需要注意的是,這個檢查與使用的網路驅動程式有 關。 Microsoft預設的網路驅動程式具有以上特性,大多 數的廠商為了保持相容性也繼承了這些特性。 不過有些 網路卡會在其硬體層中檢查乙太網位址的頭8位,所以可能 會無論系統真正的狀態是什麼都總是返回正值。關於這 類網路卡和驅動程式請訪問AntiSniff V1.X的web網站。 ◆ DNS 測試 進行DNS測試的原因是許多攻擊者使用的網路資料收 集工具都對IP位址進行反向DNS解析,因為他們希望根據 域名尋找更有價值的主機。 例如joepc1.foo.bar對攻擊 者的吸引力往往不如payroll.foo.bar這種商業域名。此 時這些工具就由被動型網路工具變為主動型網路工具 了。 而不監聽網路通訊的機器不會試突反向解析資料包 中的IP位址。 為了利用這一點,AntiSniff V1.X使自身 處於混雜模式下,向網路傳送虛假目標IP位址的資料 包,然後監聽是否有機器傳送該虛假目標IP位址的反向 DNS查詢。 偽造資料包的乙太網位址、檢查目標、虛假目 標IP位址可由用戶定制。 ◆ 網路和主機回應時間測試 這種測試已被證明是最有效的。它能夠發現網路中 處於混雜模式的機器,而不管其操作系統是什麼。警 告,這個測試會在很短的時間內產生巨大的網路通訊流 量。 進行這種測試的理由是不處於混雜模式的網路卡提供 了一定的硬體底層過濾機制。 也就是說,目標位址非本 地(廣播位址除外)的資料包將被網路卡的固件丟棄。在 這種情況下,驟然增加、但目標位址不是本機的網路通 訊流量對操作系統的影響只會很小。 而處於混雜模式下 的機器則缺乏此類底層的過濾,驟然增加、但目標位址 不是本機的網路通訊流量會對該機器造成較明顯的影響 (不同的操作系統/內核/用戶方式會有不同)。 這些變 化可以通過網路通訊流量工具監視到。 根據以上要點,AntiSniff V1.X首先利用ICMP ECHO 請求及回應計算出需要檢測機器的回應時間基準和平均 值。 在得到這個資料後,立刻向本機網路傳送大量的偽 造資料包。 與此同時再次傳送測試資料包以確定平均響 應時間的變化值。 非混雜模式的機器的回應時間變化量 會很小,而混雜模式的機器的回應時間變化量則通常會 有1-4個數量級。 為了對付攻擊者和入侵者們最常用的多種工具, AntiSniff進行了三種網路飽和度測試: SIXTYSI、TCPSYN和THREEWAY。 * SIXTYSIX測試構造的資料包資料全為0x66。這些 資料包不會被非混雜 模式的機器接收,同時方便使用一般的網路監聽/ 分析工具(如tcpdump 和snoop等)記錄和捕獲。 * TCPSYN測試構造的資料包包含有效的TCP頭和IP 頭,同時TCP標誌域的 SYN位被設定。 * THREEWAY測試採取的原理基本上與TCPSYN一樣, 但更複雜些。 在這種測試中兩個實際不存在的機器間多次建立完整的TCP 三方握手通訊。 它能夠更好地欺騙那些駭客工具。 AntiSniff V1.X中能夠通過以上三種資料包測試發 現正處於混雜模式機器的測試方法最好週期性地進行和 與以前的資料比較。回應時間測試第一次執行的資料還 能夠用於分析一個大型網路在flooding和非flooding狀 態時的效能,並說明 工程師調整網路效能。 一旦確信本 地網路已執行在正常(沒有未經允許而處於混雜模式的 機器)狀態,就應該設定AntiSniff工具週期性執行。只 要發現某台機器效能(回應時間)發生數量級的變化, 一般就能確定其正處於混雜模式。 這種方法不需比較兩 台獨立系統間的效能資料,而只需比較同一台機器不同 時候的資料就能確定該機器是否處於混雜模式。 |
所有時間均為台北時間。現在的時間是 07:42 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *