如何利用代碼進行ARP攻擊演練?

蜉蝣望雪


作為一個網絡安全學習者,想要進行某些攻擊的練習,不可能一開始就要到實際環境中進行演練,因此我們需要在特定的實驗環境中進行攻擊測試,最簡單的實驗環境就是虛擬機+自己的物理機。下面小編就利用虛擬機與物理機進行簡單的ARP攻擊測試!


既然題主已經提到了ARP攻擊,應該也是瞭解了ARP協議的基本原理,所以小編在這裡也不做過多的協議分析,只是做簡單的介紹:

1、ARP協議:又叫地址解析協議,主要作用是用於尋找已知IP地址所對應的MAC地址。

2、ARP報文:

*前三個為以太網幀首部,後面為arp請求/應答報文(28字節)。


幀類型:0x0806(arp協議)

硬件類型:1(表示以太網)

協議類型:0x0800(IP地址)

硬件地址長度:6(即MAC地址,以太網的物理地址為6字節,所以這裡為6)

協議地址長度:4(IP地址長度)

OP:1(ARP請求),2(ARP應答)


3、套接字編程:俗稱Socket編程、網絡編程。主要用於兩臺電腦之間數據的通信。分為原始套接字與標準套接字編程,區別在於前者是基於網絡的根部,即數據鏈路層;而後者基於網絡應用層。由於我們進行arp攻擊時需要讀取網卡的信息,而且C語言對操作底層非常方便、高效,因此我們選擇的是原始套接字編程。


4、ARP攻擊原理:

ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網絡中產生大量的ARP通信量使網絡阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網絡中斷或中間人攻擊。


5、實驗環境:

B為Windows虛擬機、C為Ubuntu虛擬機,A為本地物理機。三臺主機必須位於同一個局域網中(怎麼算同一個局域網我相信題主都懂的吧.......)。

兩臺虛擬機網絡模式需要設為橋接模式

6、攻擊流程:

攻擊者C向電腦A發送一個偽造的ARP響應,告訴A一個電腦B一個假的MAC地址,此時攻擊生效使得B的MAC地址已經發生改變,致使A和B不能正常通信。


7、話不多說,直接上代碼!這裡不做過多的C語言代碼解釋,感興趣的話題主可以自行百度,或者私信小編詢問,只需要根據註釋修改相應的IP地址、MAC地址就可以完成攻擊了。

Linux下,輸入ifconfig查看C主機的網卡名稱:

編譯運行代碼。(-w忽略參數警告)

攻擊IP地址為192.168.1.5的電腦,比較攻擊前後MAC地址的變化,發現MAC地址已經發生改變,證明攻擊已經生效......

利用飛Q聊天工具進行測試,攻擊之前,A和B可以正常通信。

攻擊後,由於B的MAC地址已經改變,所以無法和A進行通信。

ARP攻擊可以導致內網的主機無法進行正常的通信,甚至可以截取內網的主機之間通信的數據,本次實驗只演示怎麼破壞內網主機之間的正常通信,如果想要了解ARP攻擊之後怎麼竊取內網信信息的,可以關注小編,我會定時更新,需要源碼的也可以關注小編然後私信小編:ARP攻擊代碼。


切記,不要覺得小編教的可以完美應用實際環境中,這是非常愚蠢的,現在應付這種攻擊的措施已經很成熟了,所以小編懇求大家不要做傻事。


分享到:


相關文章: