ARP協議揭密

2020-12-05 51cto

1ARP協議概述
IP數據包常通過乙太網發送。乙太網設備並不識別32位IP位址:它們是以48位乙太網地址傳輸乙太網數據包的。因此,IP驅動器必須把IP目的地址轉換成乙太網網目的地址。在這兩種地址之間存在著某種靜態的或算法的映射,常常需要查看一張表。
地址解析協議(AddressResolutionProtocol,ARP)就是用來確定這些映象的協議。
ARP工作時,送出一個含有所希望的IP位址的乙太網廣播數據包。目的地主機,或另一個代表該主機的系統,以一個含有IP和乙太網地址對的數據包作為應答。發送者將這個地址對高速緩存起來,以節約不必要的ARP通信。
如果有一個不被信任的節點對本地網絡具有寫訪問許可權,那麼也會有某種風險。這樣一臺機器可以發布虛假的ARP報文並將所有通信都轉向它自己,然後它就可以扮演某些機器,或者順便對數據流進行簡單的修改。ARP機制常常是自動起作用的。在特別安全的網絡上,ARP映射可以用固件,並且具有自動抑制協議達到防止幹擾的目的。

圖1乙太網上的ARP報文格式

圖1是一個用作IP到乙太網地址轉換的ARP報文的例子。在圖中每一行為32位,也就是4個八位組表示,在以後的圖中,我們也將遵循這一方式。

硬體類型欄位指明了發送方想知道的硬體接口類型,乙太網的值為1。協議類型欄位指明了發送方提供的高層協議類型,IP為0806(16進位)。硬體地址長度和協議長度指明了硬體地址和高層協議地址的長度,這樣ARP報文就可以在任意硬體和任意協議的網絡中使用。操作欄位用來表示這個報文的目的,ARP請求為1,ARP響應為2,RARP請求為3,RARP響應為4。

當發出ARP請求時,發送方填好發送方首部和發送方IP位址,還要填寫目標IP位址。當目標機器收到這個ARP廣播包時,就會在響應報文中填上自己的48位主機地址。

2、ARP使用舉例

我們先看一下linux下的arp命令(如果開始arp表中的內容為空的話,需要先對某臺主機進行一個連接,例如ping一下目標主機來產生一個arp項):

d2server:/home/kerberos#arpAddressHWtypeHWaddressFlagsMaskIface211.161.17.254ether00:04:9A:AD:1C:0ACeth0

Address:主機的IP位址

Hwtype:主機的硬體類型

Hwaddress:主機的硬體地址

FlagsMask:記錄標誌,"C"表示arp高速緩存中的條目,"M"表示靜態的arp條目。

用"arp--a"命令可以顯示主機地址與IP位址的對應表,也就是機器中所保存的arp緩存信息。這個高速緩存存放了最近Internet地址到硬體地址之間的映射記錄。高速緩存中每一項的生存時間一般為20分鐘,起始時間從被創建時開始算起。

d2server:/home/kerberos#arp-a(211.161.17.254)at00:04:9A:AD:1C:0A[ether]oneth0

可以看到在緩存中有一條211.161.17.254相對應的arp緩存條目。

d2server:/home/kerberos#telnet211.161.17.21Trying211.161.17.21...Connectedto211.161.17.21.Escapecharacteris'^]'.^].telnet>quitconnetionclosed.

在執行上面一條telnet命令的同時,用tcpdump進行監聽:

d2server:/home/kerberos#tcpdump-edsthost211.161.17.21tcpdump:listeningoneth0

我們將會聽到很多包,我們取與我們arp協議相關的2個包:

10.000:D0:F8:0A:FB:83FF:FF:FF:FF:FF:FFarp60whohas211.161.17.21telld2server20.002344(0.0021)00:E0:3C:43:0D:2400:D0:F8:0A:FB:83arp60arpreply211.161.17.21isat00:E0:3C:43:0D:24

在第1行中,源端主機(d2server)的硬體地址是00:D0:F8:0A:FB:83。目的端主機的硬體地址是FF:FF:FF:FF:FF:FF,這是一個乙太網廣播地址。電纜上的每個乙太網接口都要接收這個數據幀並對它進行處理。

第1行中緊接著的一個輸出欄位是arp,表明幀類型欄位的值是0x0806,說明此數據幀是一個ARP請求或回答。

在每行中,單詞後面的值60指的是乙太網數據幀的長度。由於ARP請求或回答的數據幀長都是42位元組(28位元組的ARP數據,14位元組的乙太網幀頭),因此,每一幀都必須加入填充字符以達到乙太網的最小長度要求:60位元組。

第1行中的下一個輸出欄位arpwho-has表示作為ARP請求的這個數據幀中,目的IP位址是211.161.17.21的地址,發送端的IP位址是d2server的地址。tcpdump列印出主機名對應的默認IP位址。

從第2行中可以看到,儘管ARP請求是廣播的,但是ARP應答的目的地址卻是211.161.17.21(00:E0:3C:43:0D:24)。ARP應答是直接送到請求端主機的,而是廣播的。tcpdump列印出arpreply的字樣,同時列印出響應者的主機ip和硬體地址。

在每一行中,行號後面的數字表示tcpdump收到分組的時間(以秒為單位)。除第1行外,每行在括號中還包含了與上一行的時間差異(以秒為單位)。

這個時候我們再看看機器中的arp緩存:

d2server:/home/kerberos#arp-a(211.161.17.254)at00:04:9A:AD:1C:0A[ether]oneth0(211.161.17.21)at00:E0:3C:43:0D:24[ether]oneth0

arp高速緩存中已經增加了一條有關211.161.17.21的映射。

再看看其他的arp相關的命令:

d2server:/home/kerberos#arp-s211.161.17.2100:00:00:00:00:00d2server:/home/kerberos#arpAddressHWtypeHWaddressFlagsMaskIface211.161.17.254ether00:04:9A:AD:1C:0ACeth0211.161.17.21ether00:00:00:00:00:00CMeth0d2server:/home/kerberos#arp-a(211.161.17.254)at00:04:9A:AD:1C:0A[ether]oneth0(211.161.17.21)at00:00:00:00:00:00[ether]PERMoneth0

可以看到我們用arp-s選項設置了211.161.17.21對應的硬體地址為00:00:00:00:00:00,而且這條映射的標誌欄位為CM,也就是說我們手工設置的arp選項為靜態arp選項,它保持不變沒有超時,不像高速緩存中的條目要在一定的時間間隔後更新。

如果想讓手工設置的arp選項有超時時間的話,可以加上temp選項

d2server:/home/kerberos#arp-s211.161.17.2100:00:00:00:00:00tempd2server:/home/kerberos#arp-a(211.161.17.254)at00:04:9A:AD:1C:0A[ether]oneth0(211.161.17.21)at00:00:00:00:00:00[ether]oneth0d2server:/home/kerberos#arpAddressHWtypeHWaddressFlagsMaskIface211.161.17.254ether00:04:9A:AD:1C:0ACeth0211.161.17.21ether00:00:00:00:00:00Ceth0

可以看到標誌欄位的靜態arp標誌"M"已經去掉了,我們手工加上的是一條動態條目。

請大家注意arp靜態條目與動態條目的區別。

在不同的系統中,手工設置的arp靜態條目是有區別的。在linux和win2000中,靜態條目不會因為偽造的arp響應包而改變,而動態條目會改變。而在win98中,手工設置的靜態條目會因為收到偽造的arp響應包而改變。

如果您想刪除某個arp條目(包括靜態條目),可以用下面的命令:

d2server:/home/kerberos#arp-d211.161.17.21d2server:/home/kerberos#arp-a(211.161.17.254)at00:04:9A:AD:1C:0A[ether]oneth0(211.161.17.21)atoneth0

可以看到211.161.17.21的arp條目已經是不完整的了。

還有一些其他的命令,可以參考linux下的man文檔:

d2server:/home/kerberos#manarp

3、ARP欺騙

我們先複習一下上面所講的ARP協議的原理。在實現TCP/IP協議的網絡環境下,一個ip包走到哪裡,要怎麼走是靠路由表定義,但是,當ip包到達該網絡後,哪臺機器響應這個ip包卻是靠該ip包中所包含的硬體mac地址來識別。也就是說,只有機器的硬體mac地址和該ip包中的硬體mac地址相同的機器才會應答這個ip包,因為在網絡中,每一臺主機都會有發送ip包的時候,所以,在每臺主機的內存中,都有一個arp-->硬體mac的轉換表。通常是動態的轉換表(該arp表可以手工添加靜態條目)。也就是說,該對應表會被主機在一定的時間間隔後刷新。這個時間間隔就是ARP高速緩存的超時時間。

通常主機在發送一個ip包之前,它要到該轉換表中尋找和ip包對應的硬體mac地址,如果沒有找到,該主機就發送一個ARP廣播包,於是,主機刷新自己的ARP緩存。然後發出該ip包。

了解這些常識後,現在就可以談在乙太網絡中如何實現ARP欺騙了,可以看看這樣一個例子。

3.1同一網段的ARP欺騙

圖2同一網段的arp欺騙

如圖2所示,三臺主機

A:ip地址192.168.0.1硬體地址AA:AA:AA:AA:AA:AA

B:ip地址192.168.0.2硬體地址BB:BB:BB:BB:BB:BB

C:ip地址192.168.0.3硬體地址CC:CC:CC:CC:CC:CC

【相關文章】

【責任編輯:

安妮

TEL:(010)68476606】

相關焦點

  • arp協議屬於哪一層_arp協議的主要功能
    打開APP arp協議屬於哪一層_arp協議的主要功能 網絡整理 發表於 2021-01-11 15:51:34   arp協議屬於哪一層
  • arp地址解析協議工作的基本原理
    arp協議 區域網一個很重要的協議arp是地址解析協議是發現兩個地址之間的映射關係的過程。在使用ipv4的tcp/ip協議族種,這是由arp來實現的。arp是供網絡層地址(也就是ip地址)到相關硬體地址的動態映射,為什麼說是動態映射呢,因為隨著硬體地址的改變,arp協議在一定的時間內會繼續提供映射關係,無需人工管理。
  • 什麼是arp地址?什麼是arp攻擊?如何利用arp命令解決網絡故障
    一、什麼是arp1、什麼是arp地址解析協議(Address Resolution Protocol),其基本功能為透過目標設備的IP位址,查詢目標設備的MAC地址,以保證通信的順利進行。它是IPv4中網絡層必不可少的協議,不過在IPv6中已不再適用,並被鄰居發現協議(NDP)所替代。說白了,就是把通過ip地址找到設備mac地址。
  • arp是什麼意思 遭受arp攻擊怎麼辦【圖解】
    實際上,這正是小編今天要為大家介紹的一個數碼名詞:arp,那麼arp是什麼意思,ARP斷網攻擊時又該怎麼解決呢?相信你看過接下來這篇文章過後,你就會知曉一二了!   ARP是什麼意思  ARP實際上是英文詞組Address Resolution Protocol的簡稱,它的中文名叫做地址解析協議。
  • arp攻擊原理_arp攻擊怎麼解決
    打開APP arp攻擊原理_arp攻擊怎麼解決 網絡整理 發表於 2021-01-11 16:12:50   arp攻擊原理
  • 網絡命令Ping netstat ipconfig arp tracert用法整理
    ping也屬於一個通信協議,是TCP/IP協議的一部分。利用「ping」命令可以檢查網絡是否連通,可以很好地幫助我們分析和判定網絡故障。-t 顯示TCP協議的連接情況-u 顯示UDP協議的連接情況。-v 顯示正在進行的工作。-p 顯示建立相關連接的程序名和PID。-b 顯示在創建每個連接或偵聽埠時涉及的可執行程序。
  • 網絡工程師應該了解的ARP知識
    動態ARP表項學習大多數情況下,設備可以通過ARP協議動態學習和更新ARP表項。設備是如何進行動態學習的呢?其實動態ARP主要是通過廣播ARP請求報文和單播ARP應答報文這兩個過程完成地址解析的。
  • 實例講解如何對目標進行ARP欺騙
    ARP欺騙(ARP spoofing)ARP協議並不只在發送了ARP請求才接收ARP應答。當計算機接收到ARP應答數據包的時候,就會對本地的ARP緩存進行更新,將應答中的IP和MAC地址存儲在ARP緩存中。
  • 「神馬課堂」代理ARP之路由器代理ARP
    對應的使能命令分別為arp-proxy enable、arp-proxy inner-sub-vlan-proxy enable、arp-proxy inter-sub-vlan-proxy enable。每種代理功能在相應的場景下才生效,其中VLAN間Proxy ARP需要配合Super Vlan來使用。下面通過實驗來看一下路由器代理ARP的實現過程。
  • ICMP/ARP協議解析及ARP欺騙
    ICMP/ARP協議解析及ARP欺騙 ICMP是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。
  • ARP協議技術
    ARP協議是「Address Resolution Protocol」(地址解析協議)的縮寫。其作用是在乙太網環境中,數據的傳輸所依懶的是MAC地址而非IP位址,而將已知IP位址轉換為MAC地址的工作是由ARP協議來完成的。
  • ARP路由式代理詳解
    華為設備開啟ARP代理功能三、如何實現ARP代理以主機A請求主機B為例:1、主機A發送arp廣播報文,請求主機B MAC地址。當我們訪問同一網段主機時,是不會向網關發出請求的,而是先通過廣播arp包來尋找對方的mac地址,然後再根據mac地址來進行二層的訪問只有訪問不同網段主機時,才會請求網關,接著網關網關查找自己的路由表,如果發現有到達目的網路的路由,則用自己的mac地址做回應,因為二層流量在三層裡面是被隔離的。
  • 針對區域網ARP斷網攻擊監測及防禦追蹤的具體方法
    如何針對區域網arp斷網攻擊進行檢測呢?當區域網網速不穩定、或者計算機無法正常聯網、區域網網絡性能下降時,都有可能是區域網受到arp病毒攻擊所造成的,針對區域網arp攻擊以及防禦辦法,我們可以通過下面的方法來實現。
  • ARP協議的工作流程
    ARP協議的工作流程 對於ARP協議的學習我們一直在進行中,這個重要的協議,存在著重大的安全問題。所以對於這協議的學習,也是每個管理員的必修課。
  • 科普文,TCP/IP 模型中的網絡層的協議
    先說TCP/IP模型,這是一組實現通信的協議簇,由一系列相關網絡通信協議組成。目標非常明確,用來是實現Internet/Intranet/ Extranet各項功能的基礎。進一步科普,TCP/IP協議互連層實現的功能,自然要儘量與OSI參考模型中的網絡層保持足夠的一致。但是!TCP/IP模型有自己的個性,定義了一種數據包投遞服務!特點有兩個!1、無連接。2、不可靠。不要小看了這個定義,不可靠的隱含意思,就是更高的效率。
  • 計算機網絡IP位址與硬體地址與ARP協議
    下面我們來講一下這個地址解析協議ARP補充一下:IP協議,提供一種無連接不可靠的協議。已經知道了一個機器的IP位址需要找出其相應的硬體地址——ARP地址解析協議幹的事情。ARP協議在主機ARP高速緩存中存放一個IP位址到硬體地址的映射表,這些都是該主機目前知道的一些地址。當主機A要向本區域網上的某臺主機B發送數據報時,先在ARP高速緩存中查找這個B的IP位址。如果有,就查出其MAC地址,再把這個硬體地址寫入MAC幀,之後通過區域網把該MAC幀發往對應的硬體地址。
  • 《變形金剛3》24位金剛悍將身世大揭密
    《變形金剛3》身世大揭密 汽車人VS霸天虎  7月21日,麥可·貝的《變形金剛》真人電影第三部即將正式登陸中國。闊別兩年之後,我們終於可以在大銀幕上再度聽到那酷勁十足的變形機械音,感受機器人金屬碰撞的火花。
  • 兩會安保大揭密:特種設備黑衣人一應俱全
    兩會安保大揭密
  • 《領土ALOD》「三級寵物大揭密」活動獲獎者名單公布
    「三級寵物大揭密」活動歷時9天,給玩家留下深刻印象。二期內測期間3級寵物現身,玩家歡呼雀躍、興高採烈,能夠獲得一隻屬於自己的3級寵物,對玩家而言也是件非常高興的事情。經過本次活動,眾玩家滿載而歸。目前「三級寵物大揭密」活動已經結束,獲獎者名單公布如下:內測1服帳號            名稱            等級    獎項    獎品alodsh05544      命運之星        27      金獎    三級寵物蛋1個alodsh00515      小樸            23      銀獎    二級寵物蛋1
  • 國際軍事比武大賽中國坦克脫靶原因揭密
    國際軍事比武大賽中國坦克脫靶原因揭密