交換機CAM表端口轉發攻擊--研究及實現

 

大家看到這個題目可能感覺有點奇怪,網絡安全圈裏好像沒有人定義過這種名詞,起初我也不清楚該定義一個什麼樣的名詞,我只是根據攻擊的原裏定義這樣的名詞,如果那位有更好的建議爲他來填上一個更響亮的名字,例如熊貓燒香等,天下皆知。

      
這種攻擊方式不知有人研究過沒,我在網上沒有看到過,最近一段時間花費了點心思,把這種攻擊技術稍微鑽研了下,希望能對安全技術愛好者又提供一個奠基石,但不希望大家用他來做網絡破壞,因爲後果很嚴重,網管很生氣,因爲他找不到攻擊源,對於防護這種攻擊目前沒有很好的解決辦法,所以大家三思而後行。

      
廢話說了不少,進入正題。

      
起初對於這種攻擊的發現是來源早期對ARP協議的學習與研究,在當時發現發送特定格式的ARP數據包會對網絡造成一定影響,假如我是B機器,捕獲到C機器發向AARP返回包,在B機器上使用SNIFFER PRO 捕獲後,進行數據包重放,就是說B機器上發出了源MAC C機器的這樣的數據包,交換機時收到這樣連續不段的數據包時(發送的數量與攻擊的效果有很大關係)C機器突然就與網絡中的其他機器失去聯繫,網絡中的其他機器也訪問不到C機器,根據抓包發現C機器的數據包是能夠發送出去的,只是沒有收到迴應包,問題出在那裏?。

     
有想法的人肯定會想到數據包被交換機轉發到B機器上來了,爲了證實我們的想法,在B機器上抓包發現,有很多數據包是其他IPC機器的迴應包。很多人會不明白爲什麼會這樣那。大家知道交換機和HUB的區別,交換機不對數據包進行廣播,他工作的模式是:A機器--->B機器的數據包 C機器是接收不到的,應爲交換機內部有轉發列表(CAM, AMC表的作用是建立MAC地址與端口的對應關係,一個端口可以和很多MAC地址建立對應關係,(在802.1x下好像只能建立一個),這看上去沒什麼問題,問題是出在CAM是實時動態更新的, 說到這裏在看上面的問題就清楚了,原本C機器發送數據包到A沒有問題,C機器的MAC3口建立了臨時的對應關係,A機器收到後如果再與C機器進行通訊,交換機會把數據包直接轉向了3口,他們之間的數據連接就會成功。
B機器捕獲到這個數據包時進行連續重放,剛纔也說了是從B機器上發送源地址爲C機器MAC的數據包,數據包通過交換機時會改變C機器MAC3口的對應關係,交換機發現這個數據包的源MAC地址是從交換機的2口發送,所以會建立C機器的MAC 2號端口建立CAM表的對應關係,A機器再發向C機器的數據包,全被交換機轉到2號端口B機器上面,所有就形成了C機器的斷網現象,大家現在應該明白了吧,上面是我自己的理解,可能有些地方解釋的有問題,希望大家提出。
      
下面有人會說C機器也在不斷的發包,也會改變CAM表上C機器MAC2號端口的對應關係,上面我也說過,這就要看B機器的重放數據包的數量了,經過我測試發現在B機器重放每秒500-1000個數據包的同時,C機器應經與機器不能通訊或通訊非常非常的慢,有意思的是在C機器上能PING 的通其他機器,這讓C機器挺鬱悶吧,而且C機器收不到任何攻擊數據包,應爲是C對應A機器的數據包,沒有進行廣播,如數據包的數量在1萬左右,C機器收不到任何信息。
      
你又會說爲什麼不進行數據包廣播那,應爲數據包進行廣播的話,對交換機影響很大,會對其他機器造成影響,而且容易讓別人發現這種數據包,(雖然他不查看交換機MAC表是找不到你,但是就怕他看^_^),如果你網絡很大,廣播對你自己利用說也會造成影響,所以我們要把數據包做成定向發送,找個傀儡機嘍,在上面A就是我們的傀儡機了,假如還有D機器的話,在D機器上抓包是發現不了這種攻擊的,是不是很可怕,下面還有更可怕的那,大家又要開動腦筋了,既然可以對單臺機器發動攻擊,也可以對網關發動攻擊,對網關發送攻擊會出現什麼後果那,就是大家都不能和網關進行通訊,網絡全部斷掉(包括你自己),前提只需在B機器上發送源地址爲網關的數據包。我們已經說了廣播包是最不可取的,那我們就要找個傀儡機器,還找機器A嗎,不行啦,因爲是定向包B機器和A機器在同一交換機上面,所能更改的也只是這臺交換機的CAM表,也只是對這個交換機的下面的機器有影響,我們怎麼突破範圍那,上面說了廣播可以,但是又是最不可行的方法,怎麼辦?,放心,聰明人總會有辦法的,在這個時候傀儡機器的作用顯現出來了,用專業術語說下,從B機器發送源地址爲網關MAC的數據包,它所經過的交換機都會被更改與網關CAM的對應關係,也就是說傀儡機有多遠我們攻擊的交換機就有多遠,所以說選擇傀儡機所在網絡拓撲的位置很重要,他決定了我們攻擊交換機的範圍。如果我想讓全網掉線的話,我會選擇主幹交換下面的機器做傀儡機器,是不是我很壞。
      
      
大家都看懂了吧,也可能會說這種攻擊很完美了,我反對,因爲大家想,這種攻擊如只侷限於ARP協議是很容易被封殺的,因爲測試過程中這種攻擊很多ARP防火牆是不允許的,然後我只好在想辦法啦,大家又要動腦筋了。
       
聰明的姐妹們很快想出來了吧(我是男同胞)。
       
我們在回到原理上,是數據包的那個部分對交換機CAM造成影響,是DLC鏈路層,在數據包中的頭十四個字節,這十四個字節包含了數據的源MAC地址6個字節,目的MAC地址6個字節 協議類型2個字節。我們想一想還有什麼數據包包含這十四個字節那,很多啦例如有TCP /UDP /ICMP等,我們馬上操刀開練,在B機器上發送源地址爲C機器MACUDP數據包,發送到A機器,哈哈,TCP/ICMP等效果一樣,後來發現高興的太早了,彩影和巡路做的ARP防火牆還是會針對IP欺騙做過濾,我痛苦啊,我鬱悶啊,我絕望啊,我撓頭啊,我撓……,哈哈撓出辦法來了,終於想出辦法突破ARP防火牆了,(臭雞蛋 ,別買關子了,兄弟們很辛苦啊放假晚上還要加班到1點中給大家寫東西 )從原理上看他們是用NDIS技術做了TCP/IP協議的過濾,我們來試下IPX 協議還有其他的協議只要帶頭十四個字節就OK ,馬上操刀…………過程省略,結果很完美,完全突破了防火牆的限制,而且可以達到我們的預期效果。
      
好像我可以睡覺了,(又一個臭雞蛋扔上來了 ),又有人說了你搞了這麼多原理就把我們搞迷糊了,你還讓我們做測試的時候先學下SNIFFER PRO怎麼用,然後在填充幾十到上百字節的數據包嗎,到時候黃花菜都涼了。(看來又睡不成了,明天還要趕火車回北京,可憐 
      
我只好再想想辦法了,我又想既然大家都知道了是利用頭十四個字節,協議類型隨便,可以隨便填,搞些不存在的協議類型,把防火牆的作者搞毛了,看看讓他怎麼來定義過濾,怎麼實現那,我們這樣設想,發送一個數據包只要可以改動頭十四個字節,其他全部填充爲,這樣利用SNIFFER PRO編輯方便多了吧,但是我好人做到底吧,由於本人編程技術起步晚技術不佳,在網上下了個TCP SYN的數據包,做了些改動來完成我們的目的,讓它只發送數據包大小爲54,頭14字節可以隨便改動,其他爲0的小工具,我沒有限制發送數量,最大能力發,我粗略計算每秒1萬多吧,大家用起來還是小心爲好。

     
我提供了小工具的下載地址,是爲了方面不會用SNIFFER PRO的人用來做測試,堅決鄙視用來搞網絡破壞的恐怖分子(因爲你攻擊我,我也沒有很好的辦法找到真正的攻擊源頭),希望大家一起發揮自己的想象,找到完美的解決方法,爲我們安全愛好者增光添彩。
   
     
下載地址: http://211.154.169.179/antiswitch.rar
        
解壓密碼:antis   
        
服務器經常不太穩定,如有需求可以對我發送郵件索取
      
郵箱:[email protected]

                                                       
作者:馮智慧
               
如有轉帖請註明源作者,如用以上技術與工具做網絡破壞造成後果與本人無關。
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章