黃浩
河源職業(yè)技術(shù)學(xué)院電子與信息學(xué)院 廣東 517000
嗅探器是利用計(jì)算機(jī)網(wǎng)絡(luò)接口截獲目的地為非本機(jī)計(jì)算機(jī)的數(shù)據(jù)報(bào)文的一種技術(shù)。其工作原理為:網(wǎng)卡通常設(shè)定為只接收擁有本機(jī)MAC地址的數(shù)據(jù)包,如果接收到傳送給其他地址的數(shù)據(jù)包,則會(huì)直接丟棄。而嗅探器可以工作在“混雜”模式,在該模式下的網(wǎng)卡可以捕捉傳輸中的數(shù)據(jù)包而不論是否發(fā)送給自己的,一概將其轉(zhuǎn)送到上級(jí)軟件,因此可以監(jiān)視到流經(jīng)該網(wǎng)卡的所有數(shù)據(jù)。
嗅探器的應(yīng)用極為廣泛,網(wǎng)絡(luò)運(yùn)作和維護(hù)都可以采用,如監(jiān)視網(wǎng)絡(luò)流量、分析數(shù)據(jù)包、監(jiān)視網(wǎng)絡(luò)資源利用、鑒定分析網(wǎng)絡(luò)數(shù)據(jù)以及診斷并修復(fù)網(wǎng)絡(luò)問(wèn)題等等。同樣因?yàn)樾崽狡鞯墓δ苋绱藦?qiáng)大,以致網(wǎng)絡(luò)黑客常將它作為攻擊武器,非法獲取網(wǎng)絡(luò)信息,嚴(yán)重威脅著網(wǎng)絡(luò)安全。
眾所周知交換機(jī)是通過(guò)MAC地址表來(lái)決定將數(shù)據(jù)包轉(zhuǎn)發(fā)到哪個(gè)端口的。因此簡(jiǎn)單的將網(wǎng)絡(luò)嗅探器接入到交換機(jī)端口,然后將網(wǎng)絡(luò)接口卡設(shè)為混雜模式,將只能捕捉到進(jìn)出網(wǎng)絡(luò)嗅探器本身的數(shù)據(jù)包。因此在交換機(jī)構(gòu)建的網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)嗅探器不使用特殊的方式是無(wú)法獲得其它主機(jī)傳遞的數(shù)據(jù)包。
那是否在交換環(huán)境下就無(wú)法收到其他用戶的數(shù)據(jù)包,從而無(wú)法實(shí)現(xiàn)嗅探?是否意味著基于交換機(jī)而構(gòu)建的企業(yè)網(wǎng)絡(luò)就是安全的?答案是否定的。下面筆者將探討一下嗅探器在交換環(huán)境下的實(shí)現(xiàn),讓大家更清楚的認(rèn)識(shí)到它的危害性。
對(duì)于網(wǎng)絡(luò)管理員來(lái)說(shuō),實(shí)現(xiàn)網(wǎng)絡(luò)嗅探的常見(jiàn)的方法是通過(guò)利用可網(wǎng)管交換機(jī)的端口匯聚功能、接入Cable TAP接線盒或集線器的方法來(lái)實(shí)現(xiàn)?,F(xiàn)在的可網(wǎng)管式交換機(jī)一般都有端口匯聚功能,使用該功能時(shí),將允許我們將交換機(jī)中其它端口上的流量鏡像到一個(gè)特殊的端口當(dāng)中。這時(shí)只要將網(wǎng)絡(luò)嗅探器連接到這個(gè)端口上,然后將嗅探器的網(wǎng)絡(luò)接口卡設(shè)為混雜模式,即可嗅探到所有由交換機(jī)轉(zhuǎn)發(fā)的數(shù)據(jù)包。而使用Cable TAP接線盒或集線器,則是將網(wǎng)絡(luò)嗅探器和所有需要被管理的工作站或服務(wù)器連接其上,由于它們都是共享式網(wǎng)絡(luò)連接設(shè)備,會(huì)轉(zhuǎn)發(fā)數(shù)據(jù)包給所有連接的端口,因而可以嗅探到使用它構(gòu)建的整個(gè)局域網(wǎng)中傳輸?shù)乃袛?shù)據(jù)包。
一般情況下黑客并沒(méi)有機(jī)會(huì)使用這些設(shè)備,且如果使用了這些設(shè)備會(huì)很容易被發(fā)現(xiàn),那么有沒(méi)有不需要特殊設(shè)備而實(shí)現(xiàn)嗅探的辦法呢?其實(shí)可以通過(guò)使用網(wǎng)絡(luò)欺騙的手段,從而達(dá)到在交換網(wǎng)絡(luò)環(huán)境中得到數(shù)據(jù)包的目的。
以太網(wǎng)設(shè)備無(wú)法識(shí)別IP地址,只能以48位MAC地址傳輸來(lái)數(shù)據(jù)包,因此必須把IP目的地址轉(zhuǎn)換成以太網(wǎng)網(wǎng)目的地址,才能在以太網(wǎng)中傳遞數(shù)據(jù)。在這兩種地址之間存在著映射,地址解析協(xié)議(ARP)就是用來(lái)確定這些映射的協(xié)議。ARP工作時(shí),將發(fā)送一個(gè)含有所希望的IP地址的廣播數(shù)據(jù)包。目的主機(jī),則以一個(gè)含有IP和以太網(wǎng)地址對(duì)的數(shù)據(jù)包作為應(yīng)答。發(fā)送者為節(jié)約不必要的ARP通信,將把這個(gè)地址對(duì)緩存起來(lái)。
網(wǎng)絡(luò)嗅探器可以通過(guò)發(fā)送定制的 ARP協(xié)議包——在其中申明自己是該網(wǎng)段的路由器,當(dāng)該網(wǎng)段計(jì)算機(jī)收到這個(gè)ARP包時(shí),就會(huì)更新它緩存的ARP表,在這以后這些被騙的計(jì)算機(jī)都會(huì)將數(shù)據(jù)包發(fā)送到新的路由器——嗅探器上。如果針對(duì)這個(gè)網(wǎng)段的計(jì)算機(jī)進(jìn)行ARP地址欺騙,告訴他們嗅探器就是路由器,那么將嗅探到交換機(jī)環(huán)境中所有計(jì)算機(jī)發(fā)送出來(lái)的數(shù)據(jù)包。為了不影響網(wǎng)絡(luò)業(yè)務(wù),例如無(wú)法連接互聯(lián)網(wǎng),從而被發(fā)現(xiàn),這些被欺騙的數(shù)據(jù)包還要通過(guò)網(wǎng)絡(luò)嗅探器再次轉(zhuǎn)發(fā)到正確的路由器上。
ARP協(xié)議欺騙因?yàn)樾枰l(fā)送大量的ARP數(shù)據(jù)包到所有計(jì)算機(jī),導(dǎo)致網(wǎng)絡(luò)數(shù)據(jù)流量、協(xié)議比率的異常,所以容易被管理員發(fā)現(xiàn)。
網(wǎng)絡(luò)嗅探器軟件可以通過(guò)偽造MAC地址來(lái)冒充不同的計(jì)算機(jī)。嗅探器將包含偽造的MAC地址的數(shù)據(jù)包發(fā)給交換機(jī),這樣就可以讓交換機(jī)認(rèn)為它也是這個(gè)數(shù)據(jù)包的源地址,交換機(jī)會(huì)將這個(gè)MAC地址保存到其地址表中,然后將所有發(fā)給真實(shí)MAC地址計(jì)算機(jī)的數(shù)據(jù)包也復(fù)制一份發(fā)給網(wǎng)絡(luò)嗅探器。
相對(duì)于ARP協(xié)議欺騙要欺騙其它計(jì)算機(jī),這種方法只需要欺騙交換機(jī),不需要大的數(shù)據(jù)包流量,同時(shí)不會(huì)導(dǎo)致協(xié)議比率的異常,因此更不容易被發(fā)現(xiàn),危害更大。下面舉例說(shuō)明實(shí)現(xiàn)過(guò)程。
本次操作使用到了科來(lái)數(shù)據(jù)包生成器,該軟件是一個(gè)用于網(wǎng)絡(luò)測(cè)試的網(wǎng)絡(luò)數(shù)據(jù)生成工具,可以生成各種的數(shù)據(jù)包,或直接對(duì)網(wǎng)絡(luò)中捕獲的數(shù)據(jù)包進(jìn)行數(shù)據(jù)值編輯,可以說(shuō)是目前Windows平臺(tái)上最強(qiáng)的數(shù)據(jù)包編輯器。在這里使用它來(lái)構(gòu)造數(shù)據(jù)包,進(jìn)行交換機(jī)的欺騙。
首先在Windows系統(tǒng)中的CMD輸入arp -a,顯示本機(jī)arp緩存,查找到路由器(網(wǎng)關(guān))的MAC地址為aa.bb.cc.dd.ee.ff,記錄下來(lái),這就是我們需要偽造的地址。
然后通過(guò)科來(lái)數(shù)據(jù)包生成器構(gòu)建數(shù)據(jù)包(圖1),本軟件提供了 4種數(shù)據(jù)包模板:ARP、IP、TCP、UDP,可以選擇任一模板構(gòu)建欺騙數(shù)據(jù)包。因?yàn)榻粨Q機(jī)只會(huì)查看網(wǎng)絡(luò)第二層的地址并學(xué)習(xí),因此我們需要修改數(shù)據(jù)包的網(wǎng)絡(luò)的第二層,也就是以太網(wǎng)層,改為路由器的MAC地址。
然后設(shè)定該數(shù)據(jù)包以一定的時(shí)間發(fā)送,例如每10秒發(fā)送一次,避免長(zhǎng)時(shí)間無(wú)數(shù)據(jù)發(fā)送導(dǎo)致交換機(jī)刪除該地址記錄。
通過(guò)這種方法,交換機(jī)就從連接路由器的端口和連接嗅探器的端口中學(xué)習(xí)并記錄了同樣的MAC地址,那么當(dāng)目標(biāo)機(jī)器發(fā)送數(shù)據(jù)給路由器時(shí),同樣會(huì)發(fā)送一份完全相同的數(shù)據(jù)給本機(jī),從而獲取到相應(yīng)的數(shù)據(jù)。
圖1 科來(lái)數(shù)據(jù)包生成器構(gòu)建數(shù)據(jù)包
最后打開(kāi)嗅探器,在本此操作中,筆者使用的嗅探器是SniffPass,它可以監(jiān)聽(tīng)網(wǎng)絡(luò),捕獲通過(guò)網(wǎng)絡(luò)適配器的密碼,并即刻顯示在屏幕上。SniffPass可以捕獲以下協(xié)議中的密碼:POP3,IMAP4,SMTP,F(xiàn)TP,和HTTP(基本身份驗(yàn)證密碼,非加密)。效果如圖2。
圖2 SniffPass嗅探結(jié)果圖
當(dāng)然只偽造路由器的MAC地址的話,就只能監(jiān)聽(tīng)到向外發(fā)送的數(shù)據(jù)(一般是連接互聯(lián)網(wǎng)的),如果還需要監(jiān)聽(tīng)某臺(tái)計(jì)算機(jī)所有數(shù)據(jù)的話,可以重復(fù)上面的過(guò)程,偽造MAC的地址改為該計(jì)算機(jī)即可。
以上的兩種方法只適合對(duì)同網(wǎng)段計(jì)算機(jī)的嗅探,如果被嗅探的計(jì)算機(jī)和嗅探器不在同一網(wǎng)段,例如一個(gè)在 192.168.1.0/24,另外一個(gè)在 192.168.2.0/24。對(duì)于像這些雖然連接到同一臺(tái)交換機(jī)上,在物理上連通,但是邏輯上卻是處于不同的網(wǎng)段的計(jì)算機(jī),那么以上兩種方法就不適合了,需要用到其他的網(wǎng)絡(luò)攻擊手段,例如ICMP重定向。
ICMP重定向報(bào)文是ICMP控制報(bào)文中的一種。在某些情況下,當(dāng)路由器檢測(cè)到一臺(tái)機(jī)器使用非優(yōu)化路由,如對(duì)于計(jì)算機(jī)A通過(guò)路由器B轉(zhuǎn)發(fā)數(shù)據(jù)包,且數(shù)據(jù)包下一跳目的路由器C和計(jì)算機(jī)A在同一交換機(jī)可以直接互連的時(shí)候,路由器B會(huì)向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,提示計(jì)算機(jī)A改變路由,數(shù)據(jù)包直接發(fā)往路由器 C。ICMP雖然不是路由協(xié)議,但是它卻可以指導(dǎo)數(shù)據(jù)包的流向,使數(shù)據(jù)流向正確的網(wǎng)關(guān)(也有可能是錯(cuò)誤的網(wǎng)關(guān),如果被人利用的話)。
對(duì)于在同一交換機(jī)網(wǎng)絡(luò)中,處于不同子網(wǎng)的計(jì)算機(jī)A要和計(jì)算機(jī)B進(jìn)行會(huì)話,必須通過(guò)路由器來(lái)進(jìn)行。這就給黑客一個(gè)可以利用的方法,就是發(fā)送一個(gè)偽造的ICMP數(shù)據(jù)包給計(jì)算機(jī)A,讓它將數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)嗅探器所在的計(jì)算機(jī)。
它同樣示利用ICMP報(bào)文進(jìn)行的網(wǎng)絡(luò)攻擊,ICMP路由公告用來(lái)告訴計(jì)算機(jī)哪臺(tái)路由器可以使用。黑客可以先通過(guò)這種方式宣告網(wǎng)絡(luò)嗅探器就是路由器,該網(wǎng)絡(luò)中的所有計(jì)算機(jī)就會(huì)將其數(shù)據(jù)包發(fā)送給網(wǎng)絡(luò)嗅探器,希望由它進(jìn)行轉(zhuǎn)發(fā),那么接下來(lái)的事情自然可想而知。
綜合以上可知嗅探器的非法使用嚴(yán)重影響著網(wǎng)絡(luò)的安全,尤其是MAC地址欺騙這種容易實(shí)施,且不容易發(fā)現(xiàn)的方法,危害更是極大。所以管理員以及網(wǎng)絡(luò)使用者必須對(duì)安全問(wèn)題高度重視,時(shí)刻保持警惕。
[1]JEFFRY.ARP欺騙攻擊原理深入分析.http://netsecurity.51cto.com.
[2]劉毅,朱燕京,陳陣.局域網(wǎng)絡(luò)環(huán)境下ARP欺騙攻擊及安全防范策略[J].電腦知識(shí)與技術(shù).2008.
[3]momoplus.ICMP詳解.http://www.infosecurity.org.cn.
[4]ICMP重定向.http://www.godupgod.com/post/92.html.
[5]SniffPass說(shuō)明.http://www.nirsoft.net/utils/password_sniffer.html.