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