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