文/凡夫畏果 源自微信號:給產品經理講技術
大家應該都知道,現在我們使用的網絡協議都是基于IP地址來進行通信的,無論是IPV4還是IPV6都是如此。但是,可能有的同學并不知道,在IP地址之下,還有一個MAC地址(網卡地址)。當網絡上「相鄰」的兩臺網絡設備通信時,必須明確的知道對方的MAC地址才能通信。在局域網中的主機可以利用ARP(地址解析協議)來獲取局域網IP對應主機的MAC地址。
ARP協議的請求過程大致分為下述三個過程:
1、主機A在局域網中發送ARP請求,請求內容為「請主機B把MAC地址告訴我?!?;
2、局域網中的所有主機和網關都會收到這個消息,但是只有主機B會回答這個消息「我是主機B,我的MAC地址是XXX」;
3、主機A獲得主機B的MAC地址,并將其保存在自己的ARP緩存表中。
通過 arp -a查看本機的arp緩存表
協議很簡單,但是,安全隱患也顯而易見。尤其是第二步,可能是協議的設計者生活在一個素質高度發達的社會環境中,否則怎么會設計出這種完全靠自覺性保證的通信協議呢?!試想如果網絡中的某個家伙不按常理出牌,那主機A肯定會懵逼。就像在一個滿是人的大街上喊了一聲:「誰是張三?我剛撿到了你掉的一萬塊錢!」,相信肯定不止有一個「張三」來報道。正是由于ARP協議的這個特點,使得攻擊者可以輕而易舉的實現ARP攻擊。
攻擊者利用ARP攻擊能達到什么目的呢?
1、制造網絡中斷。
我們知道網絡中兩臺設備能通信的前提條件是兩臺設備明確的知道對方MAC地址,而攻擊者就是ARP協議的漏洞,打破這個條件,讓通信雙方中的至少一方無法獲得對方正確的MAC地址。比如當主機A發送ARP請求主機B的MAC地址時,攻擊者主動回復ARP消息,并將一個錯誤的MAC地址給到A,進而達到切斷A、B之間通信的目的。
2、ARP欺騙,中間人攻擊。
利用ARP攻擊「制造網絡中斷」只能算是惡意破壞,大多數情況下攻擊者只是為了逞一時之快。相比而言「中間人攻擊」的危害就更大了。當主機A請求網關的MAC地址時,惡意主機主動回復該消息,將自己的MAC地址放在應答消息中,偽裝成網關,這樣,主機A發送和接收到的所有信息都被惡意主機偷窺了一遍,更糟糕的是主機A和網關都不會意識到這個「中間人」的存在。
我們知道ARP攻擊的主要手段就是讓被攻擊主機的ARP緩存表中加入攻擊者期望的錯誤信息,為了避免ARP攻擊,我們可以自己配置系統和路由器的IP/MAC地址映射關系。
如果你是windows系統可以通過在命令行中輸入”arp -s IP地址 MAC”的方式指定IP到MAC地址的映射。
而路由器的設置界面,一般都有「靜態ARP綁定設置」界面,在這里可以指定IP到MAC的映射。
PS:你還能想到其他利用ARP制造網絡中斷的方法嗎?
新聞熱點
疑難解答
圖片精選