天天看點

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

一 ARP協定

ARP (位址解析協定)

位址解析協定,即ARP(Address Resolution Protocol),是根據IP位址擷取實體位址的一個TCP/IP協定。主機發送資訊時将包含目标IP位址的ARP請求廣播到網絡上的所有主機,并接收傳回消息,以此确定目标的實體位址;收到傳回消息後将該IP位址和實體位址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節約資源。位址解析協定是建立在網絡中各個主機互相信任的基礎上的,網絡上的主機可以自主發送ARP應答消息,其他主機收到應答封包時不會檢測該封包的真實性就會将其記入本機ARP緩存;由此攻擊者就可以向某一主機發送僞ARP應答封包,使其發送的資訊無法到達預期的主機或到達錯誤的主機,這就構成了一個ARP欺騙。ARP指令可用于查詢本機ARP緩存中IP位址和MAC位址的對應關系、添加或删除靜态對應關系等。相關協定有RARP、代理ARP。NDP用于在IPv6中代替位址解析協定。

OSI模型把網絡工作分為七層,IP位址在OSI模型的第三層,MAC位址在第二層,彼此不直接打交道。

功能

位址解析協定由網際網路工程任務組(IETF)在1982年11月釋出的RFC 826中描述制定。 位址解析協定是IPv4中必不可少的協定,而IPv4是使用較為廣泛的網際網路協定版本(IPv6仍處在部署的初期)。

OSI模型把網絡工作分為七層,IP位址在OSI模型的第三層,MAC位址在第二層,彼此不直接打交道。在通過以太網發送IP資料包時,需要先封裝第三層(32位IP位址)、第二層(48位MAC位址)的報頭,但由于發送時隻知道目标IP位址,不知道其MAC位址,又不能跨第二、三層,是以需要使用位址解析協定。使用位址解析協定,可根據網絡層IP資料包標頭中的IP位址資訊解析出目标硬體位址(MAC位址)資訊,以保證通信的順利進行。

原理

工作過程

主機A的IP位址為192.168.1.1,MAC位址為0A-11-22-33-44-01;

主機B的IP位址為192.168.1.2,MAC位址為0A-11-22-33-44-02;

當主機A要與主機B通信時,位址解析協定可以将主機B的IP位址(192.168.1.2)解析成主機B的MAC位址,以下為工作流程:

第1步:根據主機A上的路由表内容,IP确定用于通路主機B的轉發IP位址是192.168.1.2。然後A主機在自己的本地ARP緩存中檢查主機B的比對MAC位址。

第2步:如果主機A在ARP緩存中沒有找到映射,它将詢問192.168.1.2的硬體位址,進而将ARP請求幀廣播到本地網絡上的所有主機。源主機A的IP位址和MAC位址都包括在ARP請求中。本地網絡上的每台主機都接收到ARP請求并且檢查是否與自己的IP位址比對。如果主機發現請求的IP位址與自己的IP位址不比對,它将丢棄ARP請求。

第3步:主機B确定ARP請求中的IP位址與自己的IP位址比對,則将主機A的IP位址和MAC位址映射添加到本地ARP緩存中。

第4步:主機B将包含其MAC位址的ARP回複消息直接發送回主機A。

第5步:當主機A收到從主機B發來的ARP回複消息時,會用主機B的IP和MAC位址映射更新ARP緩存。本機緩存是有生存期的,生存期結束後,将再次重複上面的過程。主機B的MAC位址一旦确定,主機A就能向主機B發送IP通信了。

工作要素:ARP緩存

檢視ARP緩存

ARP緩存是個用來儲存IP位址和MAC位址的緩沖區,其本質就是一個IP位址-->MAC位址的對應表,表中每一個條目分别記錄了網絡上其他主機的IP位址和對應的MAC位址。每一個以太網或令牌環網絡擴充卡都有自己單獨的表。當位址解析協定被詢問一個已知IP位址節點的MAC位址時,先在ARP緩存中檢視,若存在,就直接傳回與之對應的MAC位址,若不存在,才發送ARP請求向區域網路查詢。

為使廣播量最小,ARP維護IP位址到MAC位址映射的緩存以便将來使用。ARP緩存可以包含動态和靜态項目。動态項目随時間推移自動添加和删除。每個動态ARP緩存項的潛在生命周期是10分鐘。新加到緩存中的項目帶有時間戳,如果某個項目添加後2分鐘内沒有再使用,則此項目過期并從ARP緩存中删除;如果某個項目已在使用,則又收到2分鐘的生命周期;如果某個項目始終在使用,則會另外收到2分鐘的生命周期,一直到10分鐘的最長生命周期。靜态項目一直保留在緩存中,直到重新啟動計算機為止。

工作媒介:封包

位址解析協定是通過封包工作的。封包包括如下字段:

ARP封包格式

  

硬體類型

   協定類型

硬體位址長度

   協定長度 操作類型

發送方硬體位址(0-3位元組)

發送方硬體位址(4-5位元組) 發送方IP位址(0-1位元組)

  

發送方IP位址(2-3位元組) 目标硬體位址(0-1位元組)

目标硬體位址(2-5位元組)

目标IP位址(0-3位元組)

硬體類型:指明了發送方想知道的硬體接口類型,以太網的值為1;

協定類型:指明了發送方提供的高層協定類型,IP為0800(16進制);

硬體位址長度和協定長度:指明了硬體位址和高層協定位址的長度,這樣ARP封包就可以在任意硬體和任意協定的網絡中使用;

操作類型:用來表示這個封包的類型,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4;

發送方硬體位址(0-3位元組):源主機硬體位址的前3個位元組;

發送方硬體位址(4-5位元組):源主機硬體位址的後3個位元組;

發送方IP位址(0-1位元組):源主機硬體位址的前2個位元組;

發送方IP位址(2-3位元組):源主機硬體位址的後2個位元組;

目标硬體位址(0-1位元組):目的主機硬體位址的前2個位元組;

目标硬體位址(2-5位元組):目的主機硬體位址的後4個位元組;

目标IP位址(0-3位元組):目的主機的IP位址。[3] 

二 執行個體

arp-storm.pcap,下載下傳自https://wiki.wireshark.org/SampleCaptures

打開檔案;

看到源都是CiscoInc_af:f4:54;那麼這應是在一個以Cisco路由器或交換機為伺服器的區域網路中;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

協定分級;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

按長度過濾一下,所有包長度都是60;取非後一個包也沒有;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

看下面,選中某一部分,在包的16進制資料中的對應内容也會被選中;

目的位址:廣播;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

源位址;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

協定類型;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

Padding,應該是填充;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

硬體類型;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

操作類型:請求;

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

三 ARP指令

ARP緩存中包含一個或多個表,它們用于存儲IP位址及其經過解析的MAC位址。ARP指令用于查詢本機ARP緩存中IP位址-->MAC位址的對應關系、添加或删除靜态對應關系等。如果在沒有參數的情況下使用,ARP指令将顯示幫助資訊。

常見用法

arp -a或arp –g

用于檢視緩存中的所有項目。-a和-g參數的結果是一樣的,多年來-g一直是UNIX平台上用來顯示ARP緩存中所有項目的選項,而Windows用的是arp -a(-a可被視為all,即全部的意思),但它也可以接受比較傳統的-g選項。

arp -a Ip

如果有多個網卡,那麼使用arp -a加上接口的IP位址,就可以隻顯示與該接口相關的ARP緩存項目。

arp -s Ip 實體位址

可以向ARP緩存中人工輸入一個靜态項目。該項目在計算機引導過程中将保持有效狀态,或者在出現錯誤時,人工配置的實體位址将自動更新該項目。

arp -d Ip

使用該指令能夠人工删除一個靜态項目。

圖解ARP協定分析執行個體一 ARP協定二 執行個體三 ARP指令

繼續閱讀