姓名:齊鵬飛 ?學(xué)號(hào):17021211161
轉(zhuǎn)載自:七夜的故事 http://www.cnblogs.com/qiyeboy/
【嵌牛導(dǎo)讀】無(wú)線安全專題_攻擊篇--MAC泛洪攻擊
【嵌牛鼻子】服務(wù)器安全
【嵌牛提問(wèn)】如何成為一名合格的網(wǎng)管锰镀?竞滓??
一.MAC泛洪攻擊的原理
MAC泛洪攻擊主要是利用局域網(wǎng)交換機(jī)的mac學(xué)習(xí)和老化機(jī)制杨刨。
1.1交換機(jī)的工作流程如下:
局域網(wǎng)中的pc1發(fā)送數(shù)據(jù)幀給pc2,經(jīng)過(guò)交換機(jī)時(shí),交換機(jī)會(huì)在內(nèi)部mac地址表中查找數(shù)據(jù)幀中的目標(biāo)mac地址,如果找到就將該數(shù)據(jù)幀發(fā)送到相應(yīng)的端口谚殊,如果找不到婉陷,交換機(jī)就會(huì)向入端口以外的所有端口發(fā)送此數(shù)據(jù)幀(所謂的廣播,不過(guò)不是廣播幀咧纠,廣播幀的目的mac地址是全F)蓬痒。
由此可以看到交換機(jī)實(shí)現(xiàn)交換功能的關(guān)鍵就是內(nèi)部的mac地址表,那這個(gè)內(nèi)部mac地址是怎么形成的呢漆羔?有什么特性呢梧奢?接下來(lái)就要講解一下交換機(jī)的mac學(xué)習(xí)和老化機(jī)制。
1.2 交換機(jī)的mac學(xué)習(xí)機(jī)制
1.?首先咱們看一下內(nèi)部mac表的結(jié)構(gòu)钧椰,內(nèi)部mac表都是有大小的粹断,一般8k左右,一但mac表滿了嫡霞,其他mac地址就加不進(jìn)來(lái):
內(nèi)部mac表是將主機(jī)的mac地址和連接到交換機(jī)上的端口號(hào)進(jìn)行綁定瓶埋,這樣可以根據(jù)mac地址找到端口進(jìn)行轉(zhuǎn)發(fā)。
2.一開始的時(shí)候,沒有主機(jī)連接养筒,交換機(jī)內(nèi)的mac表是空白的曾撤,這時(shí)候就要進(jìn)行學(xué)習(xí)。
下面咱們幻想出一個(gè)場(chǎng)景: PC1這時(shí)候想往PC2發(fā)送數(shù)據(jù)晕粪,數(shù)據(jù)幀經(jīng)過(guò)交換機(jī)的時(shí)候挤悉,交換機(jī)會(huì)把數(shù)據(jù)幀中的源mac地址和進(jìn)入的端口號(hào)記錄到mac表中; 由于一開始mac表中沒有PC2的mac地址和端口綁定,所以交換機(jī)會(huì)將這個(gè)數(shù)據(jù)幀進(jìn)行全網(wǎng)轉(zhuǎn)發(fā)巫湘,就是所謂的廣播,也叫泛洪装悲。
交換機(jī)將所有數(shù)據(jù)幀進(jìn)行全網(wǎng)轉(zhuǎn)發(fā)后,每臺(tái)主機(jī)的協(xié)議棧會(huì)比對(duì)數(shù)據(jù)幀的目的mac地址是否和自身的一樣尚氛,如果一樣就進(jìn)行應(yīng)答诀诊,如果不一樣,就進(jìn)行丟棄(注意:那些mac地址不相同的主機(jī)網(wǎng)卡也會(huì)接收到數(shù)據(jù)幀阅嘶,只是不予理會(huì)属瓣,對(duì)網(wǎng)卡進(jìn)行抓包是能看到數(shù)據(jù)幀的)。
這個(gè)時(shí)候讯柔,PC2接收到了數(shù)據(jù)幀抡蛙,并進(jìn)行應(yīng)答。應(yīng)答數(shù)據(jù)幀經(jīng)過(guò)交換機(jī)的時(shí)候魂迄,交換機(jī)會(huì)將應(yīng)答數(shù)據(jù)幀的源mac地址和端口號(hào)學(xué)習(xí)到mac表中粗截,也就是PC2的mac地址和端口號(hào)綁定。
交換機(jī)根據(jù)應(yīng)答數(shù)據(jù)幀的目的mac地址极祸,開始查詢mac表慈格,發(fā)現(xiàn)PC1的記錄存在,就根據(jù)這綁定的端口號(hào)遥金,直接將應(yīng)答數(shù)據(jù)幀發(fā)給了PC1浴捆。這就是整個(gè)mac地址表的學(xué)習(xí)過(guò)程。
1.3 交換機(jī)的mac老化機(jī)制
若交換機(jī)與某臺(tái)主機(jī)長(zhǎng)時(shí)間未通信稿械,交換機(jī)就會(huì)把該主機(jī)的mac地址從mac地址表里刪除掉选泻,等下次通信時(shí)重新學(xué)習(xí)地址。
1.4 泛洪攻擊的可能性
正常的通信是除非一開始mac表中沒有目標(biāo)主機(jī)的mac和端口美莫,這樣才進(jìn)行數(shù)據(jù)廣播页眯,只要mac表中有相應(yīng)的綁定關(guān)系,之后兩臺(tái)主機(jī)間的 通信厢呵,都是由交換機(jī)直接根據(jù)mac和端口綁定進(jìn)行轉(zhuǎn)發(fā)窝撵,其他的主機(jī)是獲取不到這兩臺(tái)主機(jī)之間的數(shù)據(jù)的。
泛洪攻擊的目標(biāo)就是想獲取主機(jī)之間的通信數(shù)據(jù)襟铭。要想達(dá)到這個(gè)目的碌奉,就需要強(qiáng)迫交換機(jī)進(jìn)行數(shù)據(jù)廣播短曾,那就要實(shí)現(xiàn)mac表中沒有目標(biāo)主機(jī) ?的mac和端口綁定。泛洪攻擊的實(shí)現(xiàn)方法就是通過(guò)偽造大量的未知mac地址進(jìn)行通信赐劣,交換機(jī)進(jìn)行不斷的學(xué)習(xí)嫉拐,很快mac表就會(huì)被充滿,這樣正常的主機(jī)的mac地址在經(jīng)過(guò)老化之后魁兼,就無(wú)法再添加到mac地址表中婉徘,導(dǎo)致之后的數(shù)據(jù)都變成了廣播。
二.攻擊場(chǎng)景
ftp服務(wù)器:我在一臺(tái)windows主機(jī)上使用FileZilla Server搭建了一個(gè)ftp服務(wù)器,ip地址為10.170.62.240咐汞。如何搭建ftp服務(wù)器請(qǐng)參考盖呼,http://jingyan.baidu.com/article/6079ad0e67acf828ff86db3f.html。ftp的賬號(hào)為qiye,密碼為qiye123789碉考。
PC1: 局域網(wǎng)中的另一臺(tái)主機(jī)塌计,win7操作系統(tǒng)挺身,作為ftp的客戶機(jī)侯谁,ip地址為10.170.56.82。
PC2:我的個(gè)人筆記本電腦作為攻擊機(jī)章钾,kali系統(tǒng)墙贱,ip地址為10.170.39.165。
三.實(shí)戰(zhàn)攻擊
實(shí)施mac泛洪攻擊使用的工具是kali系統(tǒng)自帶的macof贱傀,用來(lái)發(fā)送大量偽造的mac地址的數(shù)據(jù)包惨撇。
第一步,我在PC2上打開macof,并且開啟多個(gè)窗口運(yùn)行府寒,力求以盡快的速度魁衙,填滿交換機(jī)的mac表。
與此同時(shí)株搔,在開啟一個(gè)窗口剖淀,使用tcpdump進(jìn)行抓包,抓取端口為21的ftp數(shù)據(jù)包纤房。
第二步纵隔,我使用PC1登錄ftp服務(wù)器。既可以在瀏覽器中登錄炮姨,也可以使用win7自帶的ftp客戶端捌刮。
第三步,查看PC2中是否抓包廣播出來(lái)的ftp登錄信息舒岸。
可以看到绅作,我已經(jīng)成功抓取到PC1訪問(wèn)ftp服務(wù)器的登錄賬號(hào)和密碼。我使用wireshark蛾派,也抓取了一下俄认,可能看的更直觀一些堕扶。
四.防御手段
限定交換機(jī)接入的端口的mac數(shù)量。例如:設(shè)置該交換機(jī)的該端口可以學(xué)習(xí)8個(gè)mac地址梭依,超過(guò)了8個(gè)mac地址就停止學(xué)習(xí)稍算,丟棄后來(lái)的mac。一般高級(jí)的交換機(jī)都有這項(xiàng)功能役拴。