ARP欺騙的原理,攻擊,防御


ARP協議簡介

  ARP是Address Resolution Protocol (地址解析協議)的縮寫。在以太網中,兩台主機想要 通信,就必須要知道目標主機的MAC (Medium/Media Access Control,介質訪問控制)地址, 如何獲取目標主機的MAC地址呢?這就是地址解析協議ARP的工作。地址解析協議的基本功 能就是在主機發送數據之前將目標IP轉換為MAC地址,完成網絡地址到物理地址的映射,以 保證兩台主機能夠正常通信。

ARP緩存表

  任何一台主機安裝了 TCP/IP協議都會有ARP緩存表,該表保存了這個網絡(局域網)中 各主機IP對應的MAC地址,ARP緩存表能夠有效地保證數據傳輸的一對一特性。在Windows 中可以使用arp-a命令來查看緩存表,結果如下:

     C:\>arp -a

    Interface: 192.168.1.8  0x20002

    Internet Address     Physical Address

    192.168.1.1          00-27-19-66-48-84

    192.168.1.12        2c-d0-5a-05-8e-fl

  在此時的ARP緩存表中可以看到,192.168.1.12對應的MAC地址為2c-d0-5a-05-8e-fl,並 且類型為動態。如果主機在一段時間內不與此IP通信,將會刪除對應的條目。而靜態ARP緩 存條目是永久性的。

  在Windows中建立靜態類型的ARP緩存表可以使用arp -s命令,如: C:\>arp -s 192.168.1.23 f4-b7-e2-8f-ld-91 〃建立靜態緩存表 查看ARP緩存表可以發現,192.168.1.23類型已經變為靜態,內容如下: C:\>arp -a

    Interface: 192.168.1.8 —— 0x20002

    Internet Address      Physical Address        Type

    192.168.1.1         00-27-19-66-48-84      dynamic

    192.168.1.23       f4-b7-e2-8f-ld-91        static

如果想要清空ARP緩存表,可以使用arp -d命令;如果想刪除單個條目,則可以使用arp -d ip命令。

ARP緩存表中的條目也是有時效的,在超過指定的時間后,將從緩存中刪除它們,Windows 默認的ARP緩存項存活時間為兩分鍾。

注:MAC地址如同身份證號碼,具有全球唯一性。

局域網主機通信

  假設現在擁有兩個網段、兩個網關和三台主機,內容分別如下:

主機IP

MAC

 

網關1

192.168.0.1

01-01-01-01-01-01

主機A

192.168.0.2

02-02-02-02-02-02

主機B

192.168.0.3

03-03-03-03-03-03

網關2

192.168.1.1

11-11-11-11-11-11

主機C

192.168.1.2

12-12-12-12-12-12

 

  現在主機A與主機B通信,主機A使用命令ping 192.168.0.3,這時主機A首先會通過子 網掩碼進行對比,看與目標主機是否在同一局域網內,如果在同一個局域網中,主機A將會 查詢本機的ARP緩存表,看是否存在主機B的MAC地址,如果存在,則直接發送數據,如 果不存在,主機A將會對局域網內所有的主機大喊:“我是192.168.0.2, MAC地址是 02-02-02-02-02-02,誰是192.168.0.3,快把你的MAC地址給我,我要給你發送數據! ”,局域 網內所有的主機都可以聽到“叫聲”,當主機B聽到有人叫自己,就會將自己的MAC地址發 送給主機A,並且將主機A的MAC地址加入自己的ARP緩存中,而其他主機發現不是在“叫” 自己,所以不會有任何應答。

  接下來,主機A會收到主機B的響應,並把主機B的MAC地址加入到自己的ARP緩存 中,方便下次聯系,然后發送數據。主機A這聲“吶喊”其實就是以廣播方式發送一個ARP請求報文。ARP請求報文中包含 本機的IP地址、MAC地址等信息。

在局域網中通信比較簡單,不需要經過網關就可以直接通信,但若不在一•個局域網內就比 較復雜了,如主機A與主機C的通信過程如下:

  主機A通過網絡掩碼對比,發現與主機C不在同一局域網內,所以需要網關來轉發處理。 主機A首先將會查詢自己的ARP緩存中是否存在網關1的MAC地址,如果不存在,使用 廣播獲取,如果存在,就直接向網關1發送數據包,由網關1向網關2發送數據包,網關2 收到數據包之后發現是發送給主機C的數據,網關2將會查詢自己的ARP緩存中是否存在 主機C的MAC地址,若存在,則直接發送數據,不存在則以廣播方式獲取MAC地址后發送 數據。

ARP欺騙原理

  ARP協議最初設計的目的是為了方便傳輸數據,設計該協議的前提是在網絡絕對安全的情 況下。隨着信息技術的發展,攻擊者的手段層出不窮,他們經常會利用ARP協議的缺陷發起攻 擊,ARP協

議主要的缺陷如下:

  •由於主機不知道通信對方的MAC地址,所以才需要ARP廣播請求獲取。當在廣播請求 時,攻擊者就可以偽裝ARP應答,冒充真正要通信的主機,以假亂真。

  ・ARP協議是無狀態的,這就表示主機可以自由地發送ARP應答包,即使主機並未收到 查詢,並且任何ARP響應都是合法的,許多主機會接收未請求的ARP應答包。

  • 一台主機的IP被緩存在另一台主機中,它就會被當作一台可信任的主機。而計算機沒有 提供檢驗IP到MAC地址是否正確的機制。當主機接收到一個ARP應答后,主機不再 考慮IP        到MAC地址的真實性和有效性,而是直接將應答包中的MAC地址與對應的1P 地址替換掉原有ARP緩存表的相關信息。

我們知道,以太網中主機之間不知道對方的MAC地址是無法通信的,所以主機會以廣播 的形式發送請求來獲取對方的MAC地址,請求中包含發送方的IP、MAC地址,如果入侵者正 處在局域網內,利用ARP設計的一些缺陷可以在網絡中發送虛假的ARP請求或響應,這就是 ARP欺騙。

  從上面內容可知,主機A與主機C之間通信會經過網關1和網關2,但當主機收到 一個ARP的應答包后,它並不會去驗證自己是否發送過這個ARP請求,而是直接將應答包的 MAC地址與IP替換掉原有的ARP緩存信息,這就導致了主機A與主機C之間的通信內容可 能會被主機B截取。下面是主機B的ARP欺騙場景:

  首先,主機B向主機A發送一個ARP響應:192.168.0.1的MAC地址是03-03-03-03-03-03 (主機B的MAC地址),而主機A接收到響應后卻不會去驗證數據的真實性,而是直接替換本 機ARP緩存表中192.168.0.1的MAC地址。同時主機B也向主機網關1發送一個ARP響應: 192.168.0.3的MAC地址是03-03-03-03-03-03,同樣網關也不會去驗證,直接放到自己的ARP 緩存中。當主機A與主機C通信時,主機A首先會檢査自己的ARP緩存表中是否有網關的 MAC地址,發現有緩存MAC地址為:03-03-03-03-03-03,於是直接向MAC地址發送數據, 但是此時的MAC卻不是網關1的,而是主機B的MAC地址。主機B接收到數據后再轉發到 真正的網關1,由網關1發送到主機C。當主機C接收到數據后,可能會返回數據,而返回數 據在到達網關1的時候,網關I首先會檢查自己的ARP緩存表,去尋找192.168.0.3對應的MAC 地址,MAC地址為:03-03-03-03-03-03,也就是主機B的地址,當主機B接收到數據包后,再 轉發給真正的主機A,可以說主機A與主機C的通信數據都經過了主機B,沒有任何秘密可言, 這就是ARP欺騙。

  ARP欺騙是入侵者常用的攻擊手段,也許讀者聽說過一種攻擊一中間人攻擊。中間人攻 擊即Man-in-the-Middle Attack,簡稱“MITM攻擊”,是一種“間接”的入侵攻擊,就好比主機 A與主機C之間通信都要通過主機B,主機B就被稱為“中間人”。使用“中間人”能夠與原 始計算機建立活動連接,並允許其讀取或修改傳遞的信息,然而兩個原始計算機卻認為它們是 在直接通信。

就如Burp Suite那樣,作為一個代理可以攔截並編輯HTTP請求,也算是一個中間人攻擊 軟件。

常見的中間人攻擊有會話劫持、DNS欺騙等。當然,ARP欺騙也屬於最常見的中間人攻擊 手段

                                                                                         以上內容摘抄於書籍《Web安全深度剖析》,感興趣的話可以自行觀看~

ARP 攻擊

  ARP攻擊並不少見,且威力巨大。有時候攻擊者在入侵目標站點時,由於安全措施很到位, 並不能獲取權限,恰好服務器也只放了一個網站,無法旁注,這時攻擊者就可能通過C段ARP 嗅探攻擊,繼續入侵指定的目標網站,C段攻擊也可以看作是另類的“旁注”。

  所謂C段攻擊,就是指同一網關下的主機ARP嗅探,在嗅探出敏感數據后,繼續實施對 目標網站的滲透。比如,攻擊者的目標網站為“www.secbug.org服務器地址為:192.168.1.8, 在無法直接滲透目標服務器時,攻擊者就可能去入侵與192.168.1.8在同一網關下的服務器, 般是192.168.1.xxx,也就是C段IP,在得到服務器權限后,對目標主機實施ARP嗅探攻擊(一 般嗅探敏感數據為FTP密碼、Admin Pass等)

  這里我們使用kali linux,里面包含了許多攻擊工具,包括需要使用到的arpspoof,ettercap,driftnet。

  ARP攻擊的前提是攻擊機與受害機需要在同一局域網內,但一般情況下為了使用方便,都是直接使用net模式,這種模式下虛擬機共享主機的IP地址,Vmware會在主機上創建專用的虛擬網絡,用於主機和虛擬機之間進行通信,這樣的話kali與物理機是不在同一局域網的,而在橋接模式下,虛擬機被當做一個完全獨立的主機,占用局域網的一個IP地址,將虛擬機的網卡交接到主機的物理網卡上,通過主機的網卡訪問外部的Internet。所以我們應該選擇橋接模式。

  那么怎樣橋接使kali與物理機在同一局域網且能上網呢?(我當時也是弄了半天才連上網...),如果你已經橋接好了可以pass

1.虛擬機設置中網絡適配器選擇橋接模式

2 . 點擊編輯,選擇虛擬網絡適配器設置

 3.點擊VMnet0,選擇橋接模式,網卡選擇你的物理機正在使用的網卡,我這里是Intel(R) Wireless-AC 9462

 4.點擊確定,......

你以為這就配好了嗎,不 這樣還是連不上網的

我們需要在kali中將IP設置到與物理機是同一網段

 輸入 vim /etc/network/interfaces

inface eth0 inet static 設置 eth0 使用默認的靜態地址

address 192.168.1.15 設置 eth0 的ip 地址

gatework 192.168.1.1 配置當前主機的默認網關

netmask 255.255.255.0 設置 eth0 的子網掩碼

5.輸入 vim /etc/resolv.conf  文件

 將物理機的DNS服務器添加進去,我這里是192.168.1.1

6.在終端下,輸入:/etc/init.d/networking restart 回車,進行重啟網卡

7.在終端下,輸入update-rc.d networking defaults 回車,設置設置系統啟動后自動啟用網卡

OK! ping一下百度

 說明已經有網了(但是ping物理機ping不通,物理機ping kali linux又ping得通,我認為是物理機上進行了設置禁止了外面機器ping它,而linux沒進行此設置,不管這些了~~)

下面進入正題!先使用arpspoof進行斷網攻擊

 

需要先在kali中開啟端口轉發功能:

echo 1 >/proc/sys/net/ipv4/ip_forward

查看端口轉發是否成功:cat /proc/sys/net/ipv4/ip_forward  如果顯示1則表示開啟成功,顯示0則開啟失敗

 

使用命令arpspoof -i eth0 -t 192.168.1.14 192.168.1.1,其中,-i后面的參數是網卡名稱,-t后面的參數是目的主機和網關,要截獲目的主機發往網關的數據包。

 這樣物理機就斷網了....

 使用arp -a查看arp緩存發現攻擊前網關192.168.1.1與攻擊機192.168.1.15的物理地址是不同的

 而攻擊后物理機192.168.1.15的物理地址變得和網關192.168.1.1的物理地址相同了,這樣就把物理機給騙了!使原本要發給網關的數據包發給了攻擊機192.168.1.15

使用ettercap進行斷網攻擊

使用ettercap -G進入圖形化界面

 點擊勾勾,點擊右上角的三點,選擇Hosts

 然而並沒有發現網關,再點擊Scan for hosts

 找到了網關192.168.1.1

點擊攻擊機192.168.1.15,再點擊Add to Target 1

同樣 點擊192.168.1.1 ,再點擊Add to Target 2,點擊右上角的圈圈,選擇ARP poisoning,點擊OK

 這樣物理機就又斷網了......

使用driftnet進行圖片嗅探

在使用arpspoof,或者ettercat進行完斷網攻擊后隨即輸入  driftnet -i eth0

這時我們在物理機上打開網站,瀏覽圖片時,就能被driftnet盡收眼底了

我們在物理機上打開7K7K小游戲

 隨便點開一個游戲

 然后發現攻擊機上已經有了我們瀏覽的圖片,,是不是非常interesting呢

 

使用ettercap -Tq -i eth0進行賬號密碼嗅探

 

 這時我們打開學習通,使用賬號密碼登陸

 登錄,

發現kali上已經截取了我的賬號密碼

 不過這里進行了加密,容易看出這是使用了base64加密

使用站長工具進行解密就行了

 這樣賬號密碼就出來了.....

知道了攻擊,當然還要學會防御 

ARP防御

最常見的防御ARP攻擊的方法一般有兩種,一種是靜態綁定,另一種是安裝ARP防火牆。

1.靜態綁定

靜態綁定是指對每台主機進行IP和MAC地址靜態綁定,靜態綁定是防止ARP欺騙的最 根本辦法。

靜態綁定可以通過命令arp-s實現:"arp - s IP MAC地址",比如,對網關的靜態綁定:

Arp -s  192.168.195.2  00-50-56-ee-12-6a

輸入命令后,可以看到使用arp -a命令查看arp緩存表,在緩存表中可以發現網關的類型已 經為靜態,如圖15-25所示。

 

另外,也需要網關對局域網主機進行IP-MAC地址的靜態綁定,這樣就是雙綁。

2. ARP防火牆

相對來說,使用ARP防火牆要比靜態綁定ARP緩存表要簡單得多,並且同樣能有效地防 止ARP攻擊。

ARP防火牆有很多,常見的有金山ARP防火牆、Anti ARP Sniffer (彩影防火牆)、360 ARP 防火牆等。

這類ARP軟件的功能是非常多的,一般都可以査殺ARP木馬,精准地追蹤攻擊源IP,攔 截DNS欺騙、網關欺騙、IP沖突等多種攻擊。

使用ARP防火牆不需要復雜的操作,使用者只需要單擊幾個按鈕,即可攔截ARP攻擊。

 

感謝你仔細看完 -->_<--,

有什么不懂的或細心的你發現錯誤了的就在評論區留下你的看法吧~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM