無ARP欺騙嗅探技術(shù)
ARP欺騙的攻擊和防御技術(shù)都比較成熟了,這里也不再闡述。此次重點講解如何不用ARP欺騙進行嗅探以及會話劫持的技術(shù)原理,實際的攻擊方法是進行MAC欺騙。
一、原理:
在開始之前我們先簡單了解一下交換機轉(zhuǎn)發(fā)過程:交換機的一個端口收到一個數(shù)據(jù)幀時,首先檢查改數(shù)據(jù)幀的目的MAC地址在MAC地址表(CAM)對應(yīng)的端口,如果目的端口與源端口不為同一個端口,則把幀從目的端口轉(zhuǎn)發(fā)出去,同時更新MAC地址表中源端口與源MAC的對應(yīng)關(guān)系;如果目的端口與源端口相同,則丟棄該幀。
有如下的工作場景:
一個4口的switch,端口分別為Port.A、Port.B、Port.C、Port.D對應(yīng)主機 A,B,C,D,其中D為網(wǎng)關(guān)。
當主機A向B發(fā)送數(shù)據(jù)時,A主機按照OSI往下封裝數(shù)據(jù)幀,過程中,會根據(jù)IP地址查找到B主機的MAC地址,填充到數(shù)據(jù)幀中的目的MAC地址。發(fā)送之前網(wǎng)卡的MAC層協(xié)議控制電路也會先做個判斷,如果目的MAC相同于本網(wǎng)卡的MAC,則不會發(fā)送,反之網(wǎng)卡將這份數(shù)據(jù)發(fā)送出去。Port.A接收到數(shù)據(jù)幀,交換機按照上述的檢查過程,在MAC地址表發(fā)現(xiàn)B的MAC地址(數(shù)據(jù)幀目的MAC)所在端口號為Port.B,而數(shù)據(jù)來源的端口號為Port.A,則交換機將數(shù)據(jù)幀從端口Port.B轉(zhuǎn)發(fā)出去。B主機就收到這個數(shù)據(jù)幀了。
這個尋址過程也可以概括為IP->MAC->PORT,ARP欺騙是欺騙了IP/MAC的應(yīng)關(guān)系,而MAC欺騙則是欺騙了MAC/PORT的對應(yīng)關(guān)系。比較早的攻擊方法是泛洪交換機的MAC地址,這樣確實會使交換機以廣播模式工作從而達到嗅探的目的,但是會造成交換機負載過大,網(wǎng)絡(luò)緩慢和丟包甚至癱瘓,我們不采用這種方法。
二、實戰(zhàn)
工作環(huán)境為上述的4口swith,軟件以cncert的httphijack 為例,應(yīng)用為A主機劫持C主機的數(shù)據(jù)。
以下是劫持過程(da為目的MAC,sa為源MAC)
1.A發(fā)送任意da=網(wǎng)關(guān).mac、sa=B.mac的數(shù)據(jù)包到網(wǎng)關(guān)。
這樣就表明b.mac對應(yīng)的是port.a,在一段時間內(nèi),交換機會把發(fā)往b.mac的數(shù)據(jù)幀全部發(fā)到a主機。這個時間一直持續(xù)到b主機發(fā)送一個數(shù)據(jù)包,或者另外一個da=網(wǎng)關(guān).mac、sa=b.mac的數(shù)據(jù)包產(chǎn)生前。
2.A 主機收到網(wǎng)關(guān)發(fā)給B的數(shù)據(jù),記錄或修改之后要轉(zhuǎn)發(fā)給B,在轉(zhuǎn)發(fā)前要
發(fā)送一個請求B.MAC的廣播,這個包是正常的
MAC信息為:da=FFFFFFFFFF、sa=a.mac。
這個數(shù)據(jù)幀表明了a.mac對應(yīng)port.a,同時會激發(fā)b主機響應(yīng)一個應(yīng)答包
MAC信息為:da=a.mac、sa=b.mac
這個數(shù)據(jù)幀表明了 b.mac對應(yīng)port.b
至此,對應(yīng)關(guān)系已經(jīng)恢復(fù),A主機將劫持到的數(shù)據(jù)可順利轉(zhuǎn)發(fā)至B
3. 轉(zhuǎn)發(fā)劫持到的數(shù)據(jù)到B,完成一次劫持
三、攻擊特點
1.由于這種攻擊方法具有時間分段特性,所以對方的流量越大,劫持頻率也越低,網(wǎng)絡(luò)越穩(wěn)定。
2.隱蔽性強,基于1的特殊性和工作本質(zhì),可以在ARP防火墻和雙向綁定的環(huán)境中工作。
四、如何防護
高級的交換機可以采用ip+mac+port綁定,控制CAM表的自動學習。目前尚無軟件可以防護此類攻擊
五、利用工具
1.httphijack beta 2 說明:http會話劫持
2.ssclone 說明:交換環(huán)境下的會話復(fù)制軟件(gmail,qqmail,sohumail…..)
3.skiller 說明:流量控制
【編輯推薦】