實例講解如何對目標進行ARP欺騙 |
發(fā)布時間: 2012/6/17 21:42:10 |
以太網(wǎng)內的嗅探sniff對于網(wǎng)絡安全來說并不是什么好事,雖然對于網(wǎng)絡管理員能夠跟蹤數(shù)據(jù)包并且發(fā)現(xiàn)網(wǎng)絡問題,但是如果被破壞者利用的話,就對整個網(wǎng)絡構成嚴重的安全威脅。
其中: A的地址為:IP:192.168.10.1 MAC: AA-AA-AA-AA-AA-AA B的地址為:IP:192.168.10.2 MAC: BB-BB-BB-BB-BB-BB C的地址為:IP:192.168.10.3 MAC: CC-CC-CC-CC-CC-CC 假設B是屬于一個嗅探愛好者的,比如A機器的ARP緩存: C:\>arp -a Interface: 192.168.10.1 on Interface 0x1000003 Internet Address Physical Address Type 192.168.10.3 CC-CC-CC-CC-CC-CC dynamic 這是192.168.10.1機器上的ARP緩存表,假設,A進行一次ping 192.168.10.3操作,PING主機C,會查詢本地的ARP緩存表,找到C的IP地址的MAC地址,那么就會進行數(shù)據(jù)傳輸,目的地就是C 的MAC地址。如果A中沒有C的ARP記錄,那么A首先要廣播一次ARP請求,當C接收到A 的請求后就發(fā)送一個應答,應答中包含有C的MAC地址,然后A接收到C的應答,就會更新本地的ARP緩存。接著使用這個MAC地址發(fā)送數(shù)據(jù)(由網(wǎng)卡附加MAC地址)。因此,本地高速緩存的這個ARP表是本地網(wǎng)絡流通的基礎,而且這個緩存是動態(tài)的。 集線器網(wǎng)絡(Hub-Based) 很多網(wǎng)絡都是用Hub進行連接的。數(shù)據(jù)包經(jīng)過Hub傳輸?shù)狡渌嬎銠C的時候,Hub只是簡單地把這個數(shù)據(jù)包廣播到Hub的所有端口上。這就是上面舉例中的一種網(wǎng)絡結構。 現(xiàn)在A需要發(fā)送TCP數(shù)據(jù)包給C。首先,A需要檢查本地的ARP 緩存表,查看是否有IP為192.168.10.3即C的ARP記錄,如果沒有那么A將要廣播一個ARP請求,當C接收到這個請求后,就作出應答,然后A更新自己的ARP緩存表。并獲得與C的IP相對應的MAC地址。這時就傳輸這個TCP數(shù)據(jù)包,Ethernet幀中就包含了C的MAC地址。當數(shù)據(jù)包傳輸?shù)紿UB的時候,HUB直接把整個數(shù)據(jù)包廣播到所有的端口,然后C就能夠接收到A發(fā)送的數(shù)據(jù)包。 正因為HUB把數(shù)據(jù)廣播到所有的端口,所以計算機B也能夠收到A發(fā)送給C的數(shù)據(jù)包。這正是達到了B嗅探的目的。因此,Hub-Based的網(wǎng)絡基本沒有安全可言,嗅探在這樣的網(wǎng)絡中非常容易。 交換網(wǎng)絡(Switched Lan) 交換機用來代替HUB,正是為了能夠解決HUB的幾個安全問題,其中就是能夠來解決嗅探問題。Switch不是把數(shù)據(jù)包進行端口廣播,它將通過自己的ARP緩存來決定數(shù)據(jù)包傳輸?shù)侥莻端口上。因此,在交換網(wǎng)絡上,如果把上面例子中的HUB換為Switch,B就不會接收到A發(fā)送給C的數(shù)據(jù)包,即便設置網(wǎng)卡為混雜模式,也不能進行嗅探。 ARP欺騙(ARP spoofing) ARP協(xié)議并不只在發(fā)送了ARP請求才接收ARP應答。當計算機接收到ARP應答數(shù)據(jù)包的時候,就會對本地的ARP緩存進行更新,將應答中的IP和MAC地址存儲在ARP緩存中。因此,在上面的假設網(wǎng)絡中,B向A發(fā)送一個自己偽造的ARP應答,而這個應答中的數(shù)據(jù)為發(fā)送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來應該是CC-CC-CC-CC-CC-CC,這里被偽造了)。當A接收到B偽造的ARP應答,就會更新本地的ARP緩存(A可不知道被偽造了),F(xiàn)在A機器的ARP緩存更新了: C:\>arp -a Interface: 192.168.10.1 on Interface 0x1000003 Internet Address Physical Address Type 192.168.10.3 DD-DD-DD-DD-DD-DD dynamic 這可不是小事。局域網(wǎng)的網(wǎng)絡流通可不是根據(jù)IP地址進行,而是按照MAC地址進行傳輸。現(xiàn)在192.168.10.3的MAC地址在A上被改變成一個本不存在的MAC地址,F(xiàn)在A開始Ping 192.168.10.3,網(wǎng)卡遞交的MAC地址是DD-DD-DD-DD-DD-DD,結果是什么呢?網(wǎng)絡不通,A根本不能Ping通C!這就是一個簡單的ARP欺騙。 我們來實現(xiàn)這樣的ARP欺騙。這里需要使用一個WinPcap提供的API和驅動。(http://winpcap.polito.it/),winpcap是一個偉大而且開放的項目。Windows環(huán)境下的nmap、snort、windump都是使用的winpcap。
本文出自:億恩科技【1tcdy.com】 |