簡單案例分析:
這裡用一個最簡單的案例來說明ARP欺騙的核心步驟。
假設在一個局網裡,只有三台主機A, B, C 而 C是攻擊者。
1.攻擊者聆聽局網上的MAC位址。它只要收到兩台主機洪泛的ARP Request,就可以進行欺騙活動。
2.主機A,B都洪泛了ARP Request.攻擊者現在有了兩台主機的IP、MAC位址,開始攻擊。
3.攻擊者發送一個 ARP Reply給主機B,把此包protocol header 里的sender IP設為A的IP位址, sender mac設為攻擊者自己的MAC位址。
4.主機B收到ARP Reply後,更新它的ARP表,把主機 A的條目 (IP_A, MAC_A)改為(IP_A, MAC_C)。
5.當主機B要發送資料包給主機A時,它根據ARP表來封裝資料包的Link報頭,把目的MAC位址設為MAC_C,而非MAC_A.
6.當交換機收到B發送給A的資料包時,根據此包的目的MAC位址 (MAC_C) 而把資料包轉發給攻擊者C.
7.攻擊者收到資料包後,可以把它存起來後再發送給A,達到偷聽效果。攻擊者也可以篡改資料後才發送資料包給A,造成傷害。
當然今天如果假設A是gateway,則攻擊者C則可以故意不把MAC_A改成MAC_C,改成其它任意的MAC Adress這時候B就會發生不能上網的情形。
防禦方法:
法1:
最理想的防制方法是網路內的每電腦的ARP一律改用靜態的方式,不過這在大型的網路是不可行的,因為需要經常更新每電腦的ARP表。
法2:
A每秒就發送幾個正確的封包給gateway說自己的資訊是正確的,這樣就可以暫時抵擋。
法3:藉由DHCP保留網路上各電腦的MAC位址,在偽造的ARP封包發出時即可偵測到。
法4:安裝一些針對ARP攻擊的防禦軟體(360、Arpwatch、XArp v2...等)
下一篇將介紹怎麼撰寫C程式來讀取/更改ARP封包資訊
沒有留言:
張貼留言
俗話說
凡走過必留下痕跡,凡住過必留下鄰居
凡爬過必留下樓梯,凡來過必留下IP
看過文章之後歡迎留下您寶貴的意見喔!