日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

ARP原理和ARP攻擊

 AndyCloud 2020-04-11

ARP--在TCP/IP協(xié)議棧中,最不安全的協(xié)議莫過于ARP了,我們經(jīng)常聽到的網(wǎng)絡(luò)掃描,內(nèi)網(wǎng)滲透,流量欺騙等等,他們基本上都與ARP有關(guān)系,甚至可以說,他們的底層都是基于ARP實現(xiàn)的。但是ARP的是實現(xiàn)僅需一問一答的兩個包即可,實現(xiàn)上很簡單。



目錄

  • ARP協(xié)議

  • ARP數(shù)據(jù)包信息

  • ARP攻擊


一、ARP協(xié)議

ARP(Address Resolution Protocol)地址解析協(xié)議,目的是實現(xiàn)IP地址到MAC地址的轉(zhuǎn)換。

在計算機間通信的時候,計算機要知道目的計算機是誰(就像我們?nèi)私涣饕粯樱缹Ψ绞钦l),這中間需要涉及到MAC地址,而MAC是真正的電腦的唯一標識符。

為什么需要ARP協(xié)議呢?因為在OSI七層模型中,對數(shù)據(jù)從上到下進行封裝發(fā)送出去,然后對數(shù)據(jù)從下到上解包接收,但是上層(網(wǎng)絡(luò)層)關(guān)心的IP地址,下層關(guān)心的是MAC地址,這個時候就需要映射IP和MAC。

ARP之簡單請求應(yīng)答

    當(dāng)兩臺計算機在同一個局域網(wǎng)通信,我們以ping命令為例,該命令使用的ICMP協(xié)議

新建 Microsoft Visio 繪圖.png

PC1依據(jù)OSI模型①依次從上至下對數(shù)據(jù)進行封裝,包括對ICMP Date加IP包頭的封裝,但是到了封裝MAC地址的時候,②PC1首先查詢自己的ARP緩存表,發(fā)現(xiàn)沒有IP2和他的MAC地址的映射,這個時候MAC數(shù)據(jù)幀封裝失敗。我們使用ping命令的時候,是指定PC2的IP2的,計算機是知道目的主機的IP地址,能夠完成網(wǎng)絡(luò)層的數(shù)據(jù)封裝,因為設(shè)備通信還需要對方的MAC地址,但是PC1的緩存表里沒有,所以在MAC封裝的時候填入不了目的MAC地址。

那么PC1為了獲取PC2的MAC地址,③PC1要發(fā)送詢問信息,詢問PC2的MAC地址,詢問信息包括PC1的IP和MAC地址、PC2的IP地址,這里我們想到一個問題,即使是詢問信息,也是需要進行MAC數(shù)據(jù)幀的封裝,那這個詢問信息的目的MAC地址填什么呢,規(guī)定當(dāng)目的MAC地址為ff-ff-ff-ff-ff-ff時,就代表這是一個詢問信息,也即使后面我要說的廣播。

PC2收到這個詢問信息后,將這里面的IP1和MAC1(PC1的IP和MAC)添加到本地的ARP緩存表中,然后④PC2發(fā)送應(yīng)答信息,對數(shù)據(jù)進行IP和MAC的封裝,發(fā)送給PC1,因為緩存表里已經(jīng)有PC1的IP和MAC的映射了呢。這個應(yīng)答信息包含PC2的IP2和MAC2。PC1收到這個應(yīng)答信息,理所應(yīng)當(dāng)?shù)木瞳@取了PC2的MAC地址,并添加到自己的緩存表中。

經(jīng)過這樣交互式的一問一答,PC1和PC2都獲得了對方的MAC地址,值得注意的是,目的主機先完成ARP緩存,然后才是源主機完成ARP緩存。之后PC1和PC2就可以真正交流了。

ARP之廣播請求單播回應(yīng)

    上圖面的圖解是不完全的ARP協(xié)議,因為在局域網(wǎng)里邊不會只有兩臺主機,這里就要考慮如何在局域網(wǎng)眾多主機里獲得目的主機的MAC。

blob.png

和上面的一樣,剛開始PC1并不知道PC2的MAC地址,同樣需要發(fā)送ARP請求,但是這個局域網(wǎng)里主機很多,怎么唯獨獲取PC2的MAC呢,①我們想到和一群陌生人交流一樣,可以挨著詢問一遍,這就是我們要說的廣播,首先PC1廣播發(fā)送詢問信息(信息和上一張圖介紹的一樣),在這個普通交換機上連接的設(shè)備都會受到這個PC1發(fā)送的詢問信息。

接下來②需要做的是,所有在這個交換機上的設(shè)備需要判斷此詢問信息,如果各自的IP和要詢問的IP不一致,則丟棄,如圖PC3、Route均丟棄該詢問信息,而對于PC2判斷該詢問信息發(fā)現(xiàn)滿足一致的要求,則接受,同樣的寫入PC1的IP和MAC到自己的ARP映射表中。

最后,③PC2單播發(fā)送應(yīng)答信息給PC1,告訴PC1自己的IP和MAC地址。


二、ARP數(shù)據(jù)包信息

ARP數(shù)據(jù)的詳細信息列表如下

     Hardware type 硬件類型,標識鏈路層協(xié)議
     Protocol type 協(xié)議類型,標識網(wǎng)絡(luò)層協(xié)議
     Hardware size  硬件地址大小,標識MAC地址長度,這里是6個字節(jié)(48bit)
     Protocol size 協(xié)議地址大小,標識IP地址長度,這里是4個字節(jié)(32bit)
        Opcode 操作代碼,標識ARP數(shù)據(jù)包類型,1表示請求,2表示回應(yīng)
   Sender MAC address  發(fā)送者MAC
    Sender IP address 發(fā)送者IP
   Target MAC address 目標MAC,此處全0表示在請求
    Target IP address 目標IP

ARP請求包

blob.png

ARP應(yīng)答包

內(nèi)容格式和上圖相似,不過會有目的地址對應(yīng)的MAC地址,ARP數(shù)據(jù)包類型字段為2。


三、ARP攻擊

新建 Microsoft Visio 繪圖 (3).png

我們知道,當(dāng)PC1對PC2正常通信的時候(先別管攻擊者PC3),PC2、PC1會先后建立對方的IP和MAC地址的映射(即建立ARP緩存表),同時對于交換機而言,它也具有記憶功能,會基于源MAC地址建立一個CAM緩存表(記錄MAC對應(yīng)接口的信息),理解為當(dāng)PC1發(fā)送消息至交換機的Port1時,交換機會把源MAC(也就是MAC1)記錄下來,添加一條MAC1和Port1的映射,之后交換機可以根據(jù)MAC幀的目的MAC進行端口轉(zhuǎn)發(fā),這個時候PC3只是處于監(jiān)聽狀態(tài),會把PC1的廣播丟棄。

正常的PC3會把廣播包丟棄,同樣的PC3可以抓住這一環(huán)節(jié)的漏洞,把不屬于自己的廣播包接收,同時回應(yīng)一個虛假的回應(yīng)包,告訴PC1我就是PC2

(IP2-MAC3),這樣PC1會收到兩個回應(yīng)包(一個正確的IP2-MAC2,一個虛假的IP2-MAC3),但是PC1并不知道到底哪個是真的,所以PC1會做出判斷,并且判斷后到達的為真,那么怎么讓虛假的回應(yīng)包后到達呢,PC3可以連續(xù)不斷的發(fā)送這樣的回應(yīng)包,總會把哪個正確的回應(yīng)包覆蓋掉。

而后PC1會建立IP2-MAC3這樣一條ARP緩存條目,以后當(dāng)PC1給PC2發(fā)送信息的時候,PC1依據(jù)OSI模型從上至下在網(wǎng)絡(luò)層給數(shù)據(jù)封裝目的IP為IP2的包頭,在鏈路層通過查詢ARP緩存表封裝目的MAC為MAC3的數(shù)據(jù)幀,送至交換機,根據(jù)查詢CAM表,發(fā)現(xiàn)MAC3對應(yīng)的接口為Port3,就這樣把信息交付到了PC3,完成了一次ARP攻擊。

新建 Microsoft Visio 繪圖 (4).png

如果ARP攻擊嚴重話,會導(dǎo)致同一個局域網(wǎng)(也是同一個廣播域)的所有主機的ARP緩存表中都存放著錯誤的IP和MAC的映射,如上圖,每臺主機的ARP緩存表中,不論哪個IP,都會映射到攻擊者的MAC地址MAC1上,這樣該局域網(wǎng)內(nèi)的所有主機的消息都發(fā)送到Hacker的主機上。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多