ARP與RARP協議及arp腳本
1、什麼是ARP與RARP協議
地址解析協議,即ARP(Address Resolution Protocol),是根據IP地址獲取物理地址的一個TCP/IP協議。
在?絡通訊時,源主機的應?程序知道?的主機的IP地址和端?號,卻不知道?的主機的硬體地址,?數據包?先是被?卡接收到再去處理上層協議的,如果接收到的數據包的硬體地址與本機不符,則直接丟棄。因此在通訊前必須獲得?的主機的硬體地址。 ARP協議就起到這個作?。
ARP通過IP地址獲取MAC地址方式:
(1)源主機發出ARP請求, 詢問「IP地址是192.168.0.1的主機的硬體地址是多少」, 並將這個請求?播到本地?段(以太?幀?部的硬體地址填FF:FF:FF:FF:FF:FF表??播);
(2)?的主機接收到?播的ARP請求, 發現其中的IP地址與本機相符, 則發送?個ARP應答數據包給源主機, 將??的硬體地址填寫在應答包中;
(3)源主機收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留一定時間,下次請求時直接查詢ARP緩存以節約資源。
反向地址轉換協議(RARP)顧名思義,是根據物理地址獲取IP地址的一個TCP/IP協議。每個主機都有一個ARP高速緩存表,這樣避免每次發包時都需要發送ARP請求來獲取硬體地址。反向地址轉換協議(RARP)允許區域網的物理機器從網關伺服器的 ARP 表或者緩存上請求其 IP 地址。網路管理員在區域網網關路由器里創建一個表以映射物理地址(MAC)和與其對應的 IP 地址。RARP協議廣泛應用於無盤工作站引導時獲取IP地址。
RARP工作原理:
(1) 源主機發送一個本地的RARP廣播,在此廣播包中,聲明自己的MAC地址並且請求任何收到此請求的RARP伺服器分配一個IP地址;
(2) 本地網段上的RARP伺服器收到此請求後,檢查其RARP列表,查找該MAC地址對應的IP地址;
(3) 如果存在,RARP伺服器就給源主機發送一個響應數據包並將此IP地址提供給對方主機使用;
(4) 如果不存在,RARP伺服器對此不做任何的響應;
(5) 源主機收到從RARP伺服器的響應信息,就利用得到的IP地址進行通訊;如果一直沒有收到RARP伺服器的響應信息,表示初始化失敗。
2、ARP數據報的幀格式乙太網目的地址:目的主機的硬體地址(48位MAC地址)。目的地址全為1的特殊地址是廣播地址。
乙太網源地址:源主機的硬體地址。
幀類型:對於ARP協議,該欄位為0x0806。對於RARP協議,該欄位為0x8035。
硬體類型:表示鏈路層?絡的類型。值為1時表示乙太網地址。也就是說ARP協議不僅僅應用於乙太網協議,還可以支持別的鏈路層協議。
協議類型:表示要映射的協議地址類型。值為0x0800時表示IP協議。
硬體地址長度:與硬體類型對應的硬體地址的長度,以位元組為單位。如果是乙太網,則是6位元組(MAC長度)。
協議地址長度:與協議類型對應的協議地址長度,以位元組為單位。如果是IP協議,則是4位元組(IP地址長度)。
操作類型(op):四中操作類型。ARP請求(1),ARP應答(2),RARP請求(3),RARP應答(4)。
發送端硬體地址:如果是乙太網,則是源主機乙太網地址,此處和乙太網頭中的源地址對應。
發送端協議地址:如果是IP協議,則表示源主機的IP地址。
目的端硬體地址:如果是乙太網,則是目的乙太網地址,和乙太網頭中的目的地址對應。
目的端協議地址:如果是IP協議,則表示源主機要請求硬體地址的IP地址。
對應ARP請求包來說,目的端的硬體地址欄位無須填充,其他欄位都需要填充。對於ARP回復包來說,所有欄位都需要填充。由於以太?規定最?數據長度為46節,ARP幀長度只有28位元組,因此有18位元組填充位,填充位的內容沒有定義,與具體實現相關。
3、ARP緩存每個主機都有一個ARP高速緩存表,這樣避免每次發包時都需要發送ARP請求來獲取硬體地址。利用arp -a命令可以查看顯示系統中高速緩存的內容。緩存表中的表項有過期時間(?般為20分鐘),如果20分鐘內沒有再次使?某個表項,則該表項失效,下次還要發ARP請求來獲得?的主機的硬體地址。
Windows下「arp -d」命令可以清除arp高速緩存表。
4、使用ARP的四種典型場景(1)發送方是主機H1,要把IP數據報發送到另一個網路上的另一個主機H2.這時H1發送ARP請求分組(在網1上廣播),找到目的主句H2的硬體地址;
(2)發送方是主機H1,要把IP數據報發送到另一個網路上的另一個主機H2.這時H1發送ARP請求分組(在網1上廣播),找到網1的一個路由器R1,剩下的工作由路由器R1來完成;
(3)發送方是路由器R1,要把IP數據報發送到R1連接在同一個網路(網2 )上的主機H3。這時R1發送ARP請求分組(在網2上廣播),找到目的主機H3的硬體地址;
(4)發送方是路由器R1,要把IP數據報發送到網3上的一個主機H4。這時R1發送ARP請求分組(在網2上廣播),找到連接在網2上的一個路由器R2的硬體地址,剩下的工作由路由器R2來完成。
5、ARP欺騙ARP地址轉換表是依賴於計算機中高速緩衝存儲器動態更新的,而高速緩衝存儲器的更新是受到更新周期的限制的,只保存最近使用的地址的映射關係表項,這使得攻擊者有了可乘之機,可以在高速緩衝存儲器更新表項之前修改地址轉換表,實現攻擊。ARP請求為廣播形式發送的,網路上的主機可以自主發送ARP應答消息,並且當其他主機收到應答報文時不會檢測該報文的真實性就將其記錄在本地的MAC地址轉換表,這樣攻擊者就可以向目標主機發送偽ARP應答報文,從而篡改本地的MAC地址表。 ARP欺騙可以導致目標計算機與網關通信失敗,更會導致通信重定向,所有的數據都會通過攻擊者的機器,因此存在極大的安全隱患。
6、用arp腳本抓取對應主機mac地址※whatwg-fetch源碼分析
※一篇關於Python裝飾器的博文
※「Git」1、常用Git命令行總結(一)
※jQchart 介紹
TAG:科技優家 |
※Python腳本將ABAQUS結果導出到excel的方法
※Python腳本建立ABAQUS節點集的方法
※Windows Defender ATP機器學習和AMSI:發掘基於腳本的攻擊
※使用 PySimpleGUI 輕鬆為程序和腳本增加 GUI
※如何在 Linux 或者 UNIX 下調試 Bash Shell 腳本
※PC、移動端VPN搭建Shadowsocks一鍵安裝腳本
※Redis 腳本
※首款基於Pascal腳本語言的全功能Web伺服器Moon Http Server即將上線
※橫掃各項NLP任務的BERT模型有了PyTorch實現!提供轉換腳本
※Red Hat DHCP客戶端腳本遠程命令注入
※PentestPackage-Pentesting腳本集合
※如何利用PowerShell診斷腳本執行命令並繞過AppLocker
※在 Linux 上用 Bash 腳本監控 messages 日誌
※「Exit Trap」 讓你的 Bash 腳本更穩固可靠
※使用AutoHotkey和Excel中嵌入的惡意腳本來繞過檢測
※使用PowerShell腳本執行命令並繞過AppLocker;Ruby CVE-2017-17405 分析
※微軟宣布全新命令行+腳本工具:PowerShell 7
※10 個增加 UNIX/Linux Shell 腳本趣味的工具
※毛子零售key網站YUPLAY免俄ip加購物車腳本使用說明
※如何在Windows下開發Python:在cmd下運行Python腳本