1. 程式人生 > >無線安全專題_攻擊篇--MAC泛洪攻擊

無線安全專題_攻擊篇--MAC泛洪攻擊




    內部mac表是將主機的mac地址和連線到交換機上的埠號進行繫結,這樣可以根據mac地址找到埠進行轉發。

   2.一開始的時候,沒有主機連線,交換機內的mac表是空白的,這時候就要進行學習。

  下面咱們幻想出一個場景: PC1這時候想往PC2傳送資料,資料幀經過交換機的時候,交換機會把資料幀中的源mac地址和進入的埠號記錄到mac表中; 由於一開始mac表中沒有PC2的mac地址和埠繫結,所以交換機會將這個資料幀進行全網轉發,就是所謂的廣播,也叫泛洪。

  1.   交換機將所有資料幀進行全網轉發後,每臺主機的協議棧會比對資料幀的目的mac地址是否和自身的一樣,如果一樣就進行應答,如果不一樣,就進行丟棄(注意:那些mac地址不相同的主機網絡卡也會接收到資料幀,只是不予理會,對網絡卡進行抓包是能看到資料幀的
    )。
  2.   這個時候,PC2接收到了資料幀,並進行應答。應答資料幀經過交換機的時候,交換機會將應答資料幀的源mac地址和埠號學習到mac表中,也就是PC2的mac地址和埠號繫結。
  3.   交換機根據應答資料幀的目的mac地址,開始查詢mac表,發現PC1的記錄存在,就根據這繫結的埠號,直接將應答資料幀發給了PC1。這就是整個mac地址表的學習過程。

  1.3 交換機的mac老化機制

    若交換機與某臺主機長時間未通訊,交換機就會把該主機的mac地址從mac地址表裡刪除掉,等下次通訊時重新學習地址。

  1.4 泛洪攻擊的可能性

  •   正常的通訊是除非一開始mac表中沒有目標主機的mac和埠,這樣才進行資料廣播,只要mac表中有相應的繫結關係,之後兩臺主機間的 通訊,都是由交換機直接根據mac和埠繫結進行轉發,其他的主機是獲取不到這兩臺主機之間的資料的。
  •   泛洪攻擊的目標就是想獲取主機之間的通訊資料。要想達到這個目的,就需要強迫交換機進行資料廣播,那就要實現mac表中沒有目標主機  的mac和埠繫結。泛洪攻擊的實現方法就是通過偽造大量的未知mac地址進行通訊,交換機進行不斷的學習,很快mac表就會被充滿,這樣正常的主機的mac地址在經過老化之後,就無法再新增到mac地址表中,導致之後的資料都變成了廣播。

  二.攻擊場景

  ftp伺服器:我在一臺windows主機上使用FileZilla Server搭建了一個ftp伺服器,ip地址為10.170.62.240。如何搭建ftp伺服器請參考,http://jingyan.baidu.com/article/6079ad0e67acf828ff86db3f.html。ftp的賬號為qiye,密碼為qiye123789。

  PC1: 區域網中的另一臺主機,win7作業系統,作為ftp的客戶機,ip地址為10.170.56.82。

  PC2:我的個人膝上型電腦作為攻擊機,kali系統,ip地址為10.170.39.165。

  三.實戰攻擊

    實施mac泛洪攻擊使用的工具是kali系統自帶的macof,用來發送大量偽造的mac地址的資料包。

    第一步,我在PC2上開啟macof,並且開啟多個視窗執行,力求以儘快的速度,填滿交換機的mac表。

    與此同時,在開啟一個視窗,使用tcpdump進行抓包,抓取埠為21的ftp資料包。

    第二步,我使用PC1登入ftp伺服器。既可以在瀏覽器中登入,也可以使用win7自帶的ftp客戶端。

  第三步,檢視PC2中是否抓包廣播出來的ftp登入資訊。

    可以看到,我已經成功抓取到PC1訪問ftp伺服器的登入賬號和密碼。我使用wireshark,也抓取了一下,可能看的更直觀一些。

  四.防禦手段

  限定交換機接入的埠的mac數量。例如:設定該交換機的該埠可以學習8個mac地址,超過了8個mac地址就停止學習,丟棄後來的mac。一般高階的交換機都有這項功能。

  今天的分享就到這裡,下一篇繼續分析。如果大家覺得還可以呀,記得推薦呦。


歡迎大家支援我公眾號: