相關(guān)文章:
Sniffer-黑客們最常用的入侵手段一
Sniffer-黑客們最常用的入侵手段二
六、如何阻止sniffer
<1>交換
隨著交換機(jī)的成本和價(jià)格的大幅度降低,交換機(jī)已成為非常有效的使sniffer失效的設(shè)備。目前最常見的交換機(jī)在第三層(網(wǎng)絡(luò)層)根據(jù)數(shù)據(jù)包目標(biāo)地址進(jìn)行轉(zhuǎn)發(fā),而不太采取集線器的廣播方式,從理論上講,通過交換設(shè)備對(duì)網(wǎng)絡(luò)進(jìn)行分段后,sniffer將無法透過邊界而窺探另一邊的數(shù)據(jù)包。但是,請(qǐng)注意:這是在邊界設(shè)備不轉(zhuǎn)發(fā)廣播包的情況下(這也是通常的網(wǎng)絡(luò)情況)。一旦入侵者使用spoofer誘騙某個(gè)邊界設(shè)備而將自己的廣播包流入不該進(jìn)入的網(wǎng)段后,原理上還是在一個(gè)共享設(shè)備端使用sniffer,而實(shí)際上將是聽到了邊界的另一邊).當(dāng)然,這樣會(huì)牽涉到ip欺詐和Mac欺詐的問題,然而,你別忘了,sniffer和spoofer是很少分開來的。北大青鳥北京通州校區(qū)
<2>加密
目前有許多軟件包可用于加密連接,從而使入侵者即使捕獲到數(shù)據(jù),但無法將數(shù)據(jù)解密而失去竊聽的意義。北大青鳥北京通州校區(qū)
<3>入侵檢測(cè)
使用諸如Tripwire之類的工具,生成文件系統(tǒng)的MD5"數(shù)據(jù)指紋",及時(shí)發(fā)現(xiàn)被修改的系統(tǒng)文件;北大青鳥北京通州校區(qū)
<4)使用antisniffer軟件
一些流行的檢測(cè)SNIFFER的程序:
http://www.attrition.org/security/newbie/security/sniffer/promisc.c --是一個(gè)很小的C程序,當(dāng)編譯好后,會(huì)查找本地機(jī)器上任何處于雜亂模式的NIC網(wǎng)絡(luò)適配卡。
http://www.attrition.org/security/newbie/security/sniffer/neped.c --是一個(gè)用來遠(yuǎn)程檢查任何嗅探活動(dòng)的程序,可惜它只在LINUX下編譯,當(dāng)然你也可以簡(jiǎn)單的使用'ifconfig-a'來檢查你的UNIX機(jī)器是否有PROMISC標(biāo)志。北大青鳥北京通州校區(qū)
http://www.l0pht.com/antisniff/這是L0pht寫的很好的反SNIFFER程序,L0PHT還打算公開LINUX版本上的源碼版本。北京北大青鳥通州校區(qū)
下面介紹一下sentinel的用法
Sentinel主要是設(shè)計(jì)思想是portable,arrcurate implementation,就是說小巧點(diǎn),精確實(shí)現(xiàn)幾個(gè)熟知的雜亂方式探測(cè)技術(shù)。其中Sentinel支持三種方法的遠(yuǎn)程雜亂探測(cè)模式:DNS測(cè)試,Etherping測(cè)試,和ARP測(cè)試,其中還有一種ICMP ping Latency(ICMP PING反應(yīng)時(shí)間)正在開發(fā)中。北大青鳥北京通州校區(qū)
此程序需要Libnet和libpcap庫(kù)來支持,大家可以到下面的地址去下載:
LIbnet 1.0: http://www.packetfactory.net/Projects/libnet
libpcap 0.4: ftp://ftp.ee.lbl.gov/libpcap-0.4.tar.Z
首先說下它其中使用的三種模式:
--ARP測(cè)試模式:北大青鳥北京通州校區(qū)
這種方法是采用發(fā)送一個(gè)ARP請(qǐng)求,其中包含所有正確信息除了偽造的目標(biāo)主機(jī)MAC硬件地址給我們的目標(biāo)主機(jī),這樣如果目標(biāo)主機(jī)沒有處于雜亂模式,它將不會(huì)理睬這些信息包,因?yàn)檫@些信息包其認(rèn)為不是指定給它們的,所以不會(huì)進(jìn)行響應(yīng)和回復(fù),但如果此目標(biāo)機(jī)器處于雜亂模式,ARP請(qǐng)求就會(huì)發(fā)生并進(jìn)行內(nèi)核處理,通過機(jī)器的回應(yīng)信息我們就可以知道其處于雜亂模式。這種方法結(jié)合內(nèi)核的特性來查看機(jī)器的運(yùn)作狀態(tài),請(qǐng)看下面的Etherping 測(cè)試模式。
-- DNS測(cè)試模式:
DNS測(cè)試主要是針對(duì)網(wǎng)絡(luò)數(shù)據(jù)收集工具能執(zhí)行IP到名字反轉(zhuǎn)解析來提供DNS名字來代替IP地址(The DNS tests operate on the premise that many attacker network data gathering tools perform IP to name inverse resolution to provide DNS names in place of IP addresses)。在執(zhí)行反轉(zhuǎn)查詢中,工具會(huì)從被動(dòng)網(wǎng)絡(luò)工具
模式轉(zhuǎn)變?yōu)橹鲃?dòng)網(wǎng)絡(luò)工具,而那些沒有監(jiān)視網(wǎng)絡(luò)書記的工具就不會(huì)去解析信息包中的IP地址。利用這種信息,ANTI SNIFFER工具可以自身在本地主機(jī)中變?yōu)殡s亂模式并在我們網(wǎng)絡(luò)中發(fā)送無數(shù)個(gè)偽造的主機(jī),這樣,ANTI SNIFFER工具就可以嗅探DNS請(qǐng)求來查看目標(biāo)是否在請(qǐng)求解析那些不存在主機(jī)。
--Etherping 測(cè)試模式:
Etherping 測(cè)試模式依賴于目標(biāo)主機(jī)的內(nèi)核,也就所謂的內(nèi)核測(cè)試。在通常情況下,硬件網(wǎng)絡(luò)接口卡過濾和丟棄那些MAC地址不同于自己機(jī)器上的MAC地址的信息包或者不是廣播Ethernet 地址的地址。就是說信息包是正確和實(shí)際的Ethernet地址或者是廣播Ethernet地址,接口就會(huì)把這些地址COPY和傳遞給內(nèi)核進(jìn)行進(jìn)一步處理。
但某些系統(tǒng)假定包含在以太幀中的數(shù)據(jù)包含某個(gè)目標(biāo)主機(jī)中正確的IP地址或者廣播地址,但具有不同于本地主機(jī)的MAC地址,當(dāng)NIC設(shè)置為雜亂模式,發(fā)送給目標(biāo)主機(jī)的每個(gè)數(shù)據(jù)包它還是傻傻的傳遞給操作系統(tǒng)進(jìn)行分析。這樣通過發(fā)送包含正確IP地址和不正確MAC地址的ICMP ECHO包給要檢測(cè)的主機(jī),如果目標(biāo)主機(jī)回應(yīng)了我們的請(qǐng)求,我們就知道其處于雜亂模式了。
多種LINUX內(nèi)核存在這種問題,其中NETBSD也可以利用這個(gè)問題來檢測(cè)雜亂模式,但需要使用廣播地址的信息包,這種信息包使用帶偽造ether幀的IP地址,如66:66:66:66:66:66. 北大青鳥北京通州校區(qū)
關(guān)于WINDOWS95,98,NT的操作系統(tǒng)在雜亂模式中確實(shí)是檢查信息包ETHER地址的,如果信息包的NIC ETHER地址符合本地主機(jī)就讓堆棧來處理。但WINDOWS對(duì)廣播的ether信息包存在問題,在普通環(huán)境下,如機(jī)器不在雜亂模式下,NIC只把含有起本身MAC地址的信息包或者ether地址是ff:ff:ff:ff:ff:ff傳遞給內(nèi)核。但當(dāng)在雜亂模式中驅(qū)動(dòng)程序是檢查ETHER地址,但它只檢查ETHER地址的第一個(gè)八未組是否為Oxff就來判斷信息包是否為廣播或者其他,因此如果我們建立一個(gè)包含EHTER地址為ff:00:00:00:00:00的IP正確的信息包并發(fā)送給目標(biāo)機(jī)器,如果其進(jìn)行了響應(yīng)的回應(yīng),就表示起處于雜亂模式。
但對(duì)WINDOWS的這種方法是依賴于所用的驅(qū)動(dòng)程序的,默認(rèn)的微軟驅(qū)動(dòng)程序有此特性并且大多數(shù)供應(yīng)商的驅(qū)動(dòng)程序也有此特性,但某些NIC過濾廣播只是依靠第一個(gè)八為組,所以這些卡不適合此方法。北大青鳥北京通州校區(qū)
--網(wǎng)絡(luò)和機(jī)器的反應(yīng)時(shí)間測(cè)試(也可以說ICMP PING反應(yīng)時(shí)間):
這種模式是比較有效的測(cè)試方法,依據(jù)是靠對(duì)操作系統(tǒng)的影響來測(cè)試。但其中的壞處就是這些測(cè)試會(huì)在短期內(nèi)產(chǎn)生一些多數(shù)量的網(wǎng)絡(luò)通信。
這些測(cè)試假定當(dāng)網(wǎng)絡(luò)卡不處于雜亂模式時(shí)提供硬件過濾,這樣的話,信息包不是指定給本身機(jī)器的將被網(wǎng)絡(luò)卡丟棄。當(dāng)在這中情況下,在網(wǎng)絡(luò)通信信息量將動(dòng)態(tài)增長(zhǎng)對(duì)操作系統(tǒng)的影響很小,相反的處于雜亂狀態(tài)的機(jī)器由于不對(duì)這層進(jìn)行過濾,就把這些信息傳遞給系統(tǒng)或者用戶模式進(jìn)行過濾,會(huì)對(duì)操作系統(tǒng)產(chǎn)生比較大的影響。簡(jiǎn)單的說,我們先正常情況下PING一機(jī)器,再我們構(gòu)建很多偽造的TCP連接來ping程序來ping目標(biāo),并且注意RTT(round
trip time),這樣處于雜亂模式的機(jī)器由于會(huì)處理這些垃圾信息包,并影響系統(tǒng)并導(dǎo)致網(wǎng)絡(luò)反映時(shí)間增加,然后來比較各個(gè)RTT,經(jīng)過多次測(cè)試和人工判斷就能決定目標(biāo)機(jī)器上是否存在SNIFFER。北大青鳥北京通州校區(qū)
Sentinel是根據(jù)這些方法來進(jìn)行測(cè)試的程序,是有源代碼形式發(fā)放的。使用于OPENBSD 2.6 ;FREEBSD 3.X;NETBSD 1.4.1;LINUX2.2.X平臺(tái)。
編譯后使用方法為:
#./sentinel -t 192.168.0.1 -a 是ARP測(cè)試。
#./sentinel -t 192.168.0.1 -e 是etherping test;
#./sentinel -t 192.168.0.1 -f 1.1.1.1 -d 是DNS測(cè)試;
#./sentinel -t 192.168.0.1 -f 1.1.1.1 -d -a -e 是允許所有模式進(jìn)行測(cè)試。
北大青鳥北京通州校區(qū)