黑客技術之再議Sniffer
Sniffer的相關介紹請讀者閱讀:黑客技術之Sniffer實例,下面我們繼續(xù)看Sniffer:
sniffing 和 spoofing 一樣是作用在網(wǎng)絡基礎結構的底層。通常情況下,用戶并不直接和該層打交道,有些甚至不知道有這一層存在,。他們只是用ftp.http.telnet.email 等,所以,應該說snffer的危害是相當之大的,通常使用sniffer 是一次spoofing的開始。那么到底sniffer是怎樣的一種概念呢?
sniffer 是利用計算機的網(wǎng)絡接口截獲目的地為其他計算機的數(shù)據(jù)報文的一種工具。(ISS)在合理的網(wǎng)絡中,sniffer的存在對系統(tǒng)管理員是致關重要的,系統(tǒng)管理員通過sniffer可以診斷出大量的不可見模糊問題,這些問題涉及兩臺乃至多臺計算機之間的異常通訊有些甚至牽涉到各種的協(xié)議,借助于sniffer ,系統(tǒng)管理員可以方便的確定出多少的通訊量屬于哪個網(wǎng)絡協(xié)議、占主要通訊協(xié)議的主機是哪一臺、大多數(shù)通訊目的地是哪臺主機、報文發(fā)送占用多少時間、或著相互主機的報文傳送間隔時間等等,這些信息為管理員判斷網(wǎng)絡問題、管理網(wǎng)絡區(qū)域提供了非常寶貴的信息。但是,同時,如果有心之人(非系統(tǒng)管理員)使用了sniffer ,那么,他同樣也可以獲得和管理員一樣多的信息,同樣也可以對整個的網(wǎng)絡做出判斷。當然,SPP相信他不會用這些信息去管理網(wǎng)絡。
現(xiàn)在網(wǎng)絡上到處可見免費的sniffer , 各種平臺下的都有,我真不知道,這對管理員來說是好事還是壞事。(參看黑客技術之Sniffer實例的文章,你可以知道現(xiàn)在找個sniffer多容易)
話說回來,那么sniffer是如何在網(wǎng)絡上實施的呢?談這個問題之前還應該先說一下Ethernet的通訊. 通常在同一個網(wǎng)段的所有網(wǎng)絡接口都有訪問在物理媒體上傳輸?shù)乃袛?shù)據(jù)的能力,而每個網(wǎng)絡接口都還應該有一個硬件地址,該硬件地址不同于網(wǎng)絡中存在的其他網(wǎng)絡接口的硬件地址,同時,每個網(wǎng)絡至少還要一個廣播地址。(代表所有的接口地址),在正常情況下,一個合法的網(wǎng)絡接口應該只響應這樣的兩種數(shù)據(jù)幀:
1、幀的目標區(qū)域具有和本地網(wǎng)絡接口相匹配的硬件地址。
2、幀的目標區(qū)域具有“廣播地址”。
在接受到上面兩種情況的數(shù)據(jù)包時,nc通過cpu產(chǎn)生一個硬件中斷,該中斷能引起操作系統(tǒng)注意,然后將幀中所包含的數(shù)據(jù)傳送給系統(tǒng)進一步處理。而sniffer 就是一種能將本地nc狀態(tài)設成(promiscuous)狀態(tài)的軟件,當nc處于這種“混雜”方式時,該nc具備“廣播地址”,它對所有遭遇到的每一個幀都產(chǎn)生一個硬件中斷以便提醒操作系統(tǒng)處理流經(jīng)該物理媒體上的每一個報文包。(絕大多數(shù)的nc具備置成promiscuous方式的能力)可見,sniffer工作在網(wǎng)絡環(huán)境中的底層,它會攔截所有的正在網(wǎng)絡上傳送的數(shù)據(jù),并且通過相應的軟件處理,可以實時分析這些數(shù)據(jù)的內容,進而分析所處的網(wǎng)絡狀態(tài)和整體布局。
值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊,通常sniffer所要關心的內容可以分成這樣幾類:
1、口令
我想這是絕大多數(shù)非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid 和passwd.就算你在網(wǎng)絡傳送過程中使用了加密的數(shù)據(jù),sniffer記錄的數(shù)據(jù)一樣有可能使入侵者在家里邊吃肉串邊想辦法算出你的算法。
2、金融帳號
許多用戶很放心在網(wǎng)上使用自己的信用卡或現(xiàn)金帳號,然而 sniffer可以很輕松截獲在網(wǎng)上傳送的用戶姓名、口令、信用卡號碼、截止日期、帳號和pin.
3、偷窺機密或敏感的信息數(shù)據(jù)
通過攔截數(shù)據(jù)包,入侵者可以很方便記錄別人之間敏感的信息傳送,或者干脆攔截整個的email會話過程。
4、窺探低級的協(xié)議信息。
這是很可怕的事,我認為,通過對底層的信息協(xié)議記錄,比如記錄兩臺主機之間的網(wǎng)絡接口地址、遠程網(wǎng)絡接口ip地址、ip路由信息和tcp連接的字節(jié)順序號碼等。這些信息由非法入侵的人掌握后將對網(wǎng)絡安全構成極大的危害,通常有人用sniffer收集這些信息只有一個原因:他正在進行一次欺詐,(通常的 ip 地址欺詐就要求你準確插入tcp連接的字節(jié)順序號,這將在以后整理的文章中指出)如果某人很關心這個問題,那么sniffer對他來說只是前奏,今后的問題要大條得多。(對于高級的hacker而言,我想這是使用sniffer的唯一理由吧)
那么,通過交換設備(網(wǎng)橋、交換機、路由等)所形成的網(wǎng)絡邊界是否可以有sniffer存在的空間呢?我想這是一個有趣的問題。能形成網(wǎng)絡邊界的交換設備并不是把來自一邊的所有的幀都丟到另一邊的。他們通常允許某些報文通過邊界而阻止某些報文(特別是網(wǎng)絡廣播)通過邊界。因此從理論上講,通過交換設備對網(wǎng)絡進行分段后,sniffer將無法透過邊界而窺探另一邊的數(shù)據(jù)包。但是,請注意:這是在邊界設備不轉發(fā)廣播包的情況下(這也是通常的網(wǎng)絡情況)。
一旦入侵者使用spoofer 誘騙某個邊界設備而將自己的廣播包流入不該進入的網(wǎng)段后,原理上還是在一個共享設備端使用sniffer 而實際上將是聽到了邊界的另一邊。(詳細的spoofer應用我會再整理出來)當然,這樣會牽涉到ip 欺詐和Mac欺詐的問題,然而,你別忘了,sniffer和spoofer是很少分開來的。
既然sniffer如此囂張又安靜,我要如何才知道有沒有sniffer在我的網(wǎng)上跑呢?這也是一個很難說明的問題,比較有說服力的理由證明你的網(wǎng)絡有sniffer目前有這么兩條:
1、你的網(wǎng)絡通訊掉包率反常的高。
通過一些網(wǎng)絡軟件,你可以看到你的信息包傳送情況(不是sniffer),向ping這樣的命令會告訴你掉了百分幾的包。如果網(wǎng)絡中有人在聽,那么你的信息包傳送將無法每次都順暢的流到你的目的地。(這是由于sniffer攔截每個包導致的)
2、你的網(wǎng)絡帶寬將出現(xiàn)反常。
通過某些帶寬控制器(通常是火墻所帶),你可以實時看到目前網(wǎng)絡帶寬的分布情況,如果某臺機器長時間的占用了較大的帶寬,這臺機器就有可能在聽。實際操作中,我還發(fā)現(xiàn),如果某臺機器(非服務器)在不該使用廣播的網(wǎng)絡中使用了ICMP 類型10 、11、9等這一類的廣播,。。有可能。。。非常有可能。。。如果同時出現(xiàn)udp520口的rip廣播,那就百分之N接近。在非高速信道上,如56K ddn 等,如果網(wǎng)絡中存在sniffer ,你應該也可以察覺出網(wǎng)絡通訊速度的變化。
最后再說明的是,并不是使用了交換設備就可以完全阻止sniffer , 如果系統(tǒng)管理員錯誤的使用了網(wǎng)絡的拓撲結構,比如,工作站或終端通過某個集連設備集中到交換集線器,然后通過路由再進入主機群。這樣的布線表面看來好象有物理上的分割,但實際上,從邏輯的觀點,任何一臺機器的數(shù)據(jù)除了到達主機外,還同時流向別的機器。
sniffer有可能任何被一臺機器架上,來監(jiān)控從本地網(wǎng)絡流向主機的所有數(shù)據(jù)。安全的布線在沒有spoofer的情況下應該是從各終端就使用交換設備。
【編輯推薦】