日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
深入探究:Linux如何解析ARP數(shù)據(jù)包?(linux解析arp數(shù)據(jù)包)

ARP(Address Resolution Protocol)地址解析協(xié)議是一個(gè)用于將IP地址轉(zhuǎn)換為MAC地址的協(xié)議。在使用網(wǎng)絡(luò)通信的過程中,ARP協(xié)議非常重要,它幫助網(wǎng)絡(luò)設(shè)備在互聯(lián)網(wǎng)中更方便地通信。Linux系統(tǒng)中,解析ARP數(shù)據(jù)包需要通過網(wǎng)絡(luò)協(xié)議棧來實(shí)現(xiàn)。本文將要深入探究Linux系統(tǒng)是如何解析ARP數(shù)據(jù)包的。

成都創(chuàng)新互聯(lián)自2013年創(chuàng)立以來,先為鹿邑等服務(wù)建站,鹿邑等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鹿邑企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

一、ARP數(shù)據(jù)包的基本結(jié)構(gòu)

在深入探究如何解析ARP數(shù)據(jù)包之前,讓我們先來了解一下ARP數(shù)據(jù)包的基本結(jié)構(gòu)。一個(gè)ARP數(shù)據(jù)包通常包含以下幾個(gè)字段:

– 硬件類型:協(xié)議中存儲(chǔ)的硬件類型,如Ethernet。

– 協(xié)議類型:網(wǎng)絡(luò)層協(xié)議的類型,如IPv4或IPv6。

– 硬件地址長(zhǎng)度:硬件地址的長(zhǎng)度,如MAC地址是6個(gè)字節(jié)。

– 協(xié)議地址長(zhǎng)度:協(xié)議地址的長(zhǎng)度,如IP地址是4個(gè)字節(jié)。

– 操作類型:ARP數(shù)據(jù)包的類型,如ARP請(qǐng)求或ARP響應(yīng)。

– 源硬件地址:發(fā)送ARP請(qǐng)求或響應(yīng)的設(shè)備的MAC地址。

– 源協(xié)議地址:發(fā)送ARP請(qǐng)求或響應(yīng)的設(shè)備的IP地址。

– 目的硬件地址:接收ARP請(qǐng)求或響應(yīng)的設(shè)備的MAC地址。

– 目的協(xié)議地址:接收ARP請(qǐng)求或響應(yīng)的設(shè)備的IP地址。

二、 Linux系統(tǒng)中的ARP處理

在Linux系統(tǒng)中,ARP數(shù)據(jù)包是通過網(wǎng)絡(luò)協(xié)議棧來處理的。網(wǎng)絡(luò)協(xié)議棧包括五個(gè)主要的層次:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層。每一層在接收到數(shù)據(jù)包之后都會(huì)處理數(shù)據(jù)包的各個(gè)字段,然后將它傳遞給下一層。當(dāng)網(wǎng)絡(luò)設(shè)備接收到一個(gè)ARP請(qǐng)求或響應(yīng)的時(shí)候,它會(huì)按照以下步驟進(jìn)行處理:

1. 接收ARP數(shù)據(jù)包

最開始,網(wǎng)絡(luò)設(shè)備需要先接收ARP數(shù)據(jù)包。當(dāng)設(shè)備收到一個(gè)ARP請(qǐng)求或響應(yīng)的時(shí)候,它會(huì)將數(shù)據(jù)包傳遞給數(shù)據(jù)鏈路層,然后將其添加到接收隊(duì)列中。

2. 解析ARP數(shù)據(jù)包

接下來,設(shè)備需要解析這個(gè)ARP數(shù)據(jù)包。在解析這個(gè)數(shù)據(jù)包時(shí),設(shè)備會(huì)檢查以下幾個(gè)字段:

– 硬件類型和協(xié)議類型:設(shè)備會(huì)檢查硬件類型和協(xié)議類型是否匹配,來判斷是否要處理這個(gè)ARP數(shù)據(jù)包。

– 操作類型:根據(jù)操作類型,設(shè)備會(huì)決定是發(fā)送一個(gè)ARP請(qǐng)求還是一個(gè)ARP響應(yīng)。

– 目標(biāo)IP地址:設(shè)備會(huì)檢查接收到的ARP數(shù)據(jù)包中的目標(biāo)IP地址。如果這個(gè)IP地址是設(shè)備本機(jī)的IP地址,那么這個(gè)ARP數(shù)據(jù)包就是針對(duì)本機(jī)的。

3. 判斷本機(jī)是否應(yīng)該做出反應(yīng)

在確定這個(gè)ARP數(shù)據(jù)包是針對(duì)本機(jī)的之后,設(shè)備需要再次檢查這個(gè)ARP數(shù)據(jù)包中的源IP地址和目標(biāo)IP地址是否正確。如果這兩個(gè)IP地址都正確,那么設(shè)備就需要向發(fā)送方發(fā)送一個(gè)ARP響應(yīng)。

4. 發(fā)送ARP響應(yīng)

設(shè)備會(huì)構(gòu)建一個(gè)ARP響應(yīng)數(shù)據(jù)包,并將其添加到發(fā)送隊(duì)列中。此時(shí),接口硬件會(huì)檢查發(fā)送隊(duì)列并發(fā)送響應(yīng)。

三、

在本文中,我們深入探究了Linux系統(tǒng)如何解析ARP數(shù)據(jù)包。通過了解ARP數(shù)據(jù)包的基本結(jié)構(gòu)和Linux系統(tǒng)中的ARP處理流程,我們可以更好地理解網(wǎng)絡(luò)設(shè)備如何在互聯(lián)網(wǎng)中通信。在Linux中,ARP處理是通過網(wǎng)絡(luò)協(xié)議棧來實(shí)現(xiàn)的。每一層都會(huì)處理數(shù)據(jù)包的各個(gè)字段,然后將其傳遞給下一層,直到最后被發(fā)送出去。希望本文能夠幫助你更好地理解Linux系統(tǒng)的ARP處理方式。

相關(guān)問題拓展閱讀:

  • 什么是ARP?

什么是ARP?

分類: 電腦/網(wǎng)絡(luò) >> 反病毒

問題描述:

詳細(xì)點(diǎn)可以嗎?

解析:

這里沒法看圖片,如果你想看的話,就到這里來:130/CMS/Pub/neork/neork_protocal/20231

ARP協(xié)議概述

IP數(shù)據(jù)包常通過以太網(wǎng)發(fā)送。以太網(wǎng)設(shè)備并不識(shí)別32位IP必須把IP目的地址轉(zhuǎn)換成以太網(wǎng)網(wǎng)目的地址。在這兩種地址之間存在著某種靜態(tài)的或算法的映射,常常需要查看一張表。地址解析協(xié)議(Address Resolution Protocol,ARP)就是用來確定這些映象的協(xié)議。

ARP工作時(shí),送出一個(gè)含有所希望的IP地址的以太網(wǎng)廣播數(shù)據(jù)包。目的地主機(jī),或另一個(gè)代表該主機(jī)的系統(tǒng),答鏈以一個(gè)含有IP和以太網(wǎng)地址對(duì)的數(shù)據(jù)包作為應(yīng)答。發(fā)送者將這個(gè)地址對(duì)高速緩存起來,以節(jié)約不必要的ARP通信。

如果有一個(gè)不被信任的節(jié)點(diǎn)對(duì)本地網(wǎng)絡(luò)具有寫訪問許可權(quán),那么也會(huì)有某種風(fēng)險(xiǎn)。這樣一臺(tái)機(jī)器可以發(fā)布虛假的ARP報(bào)文并將所有通信都轉(zhuǎn)向它自己,然后它就可以扮演某些機(jī)器,或者順便對(duì)數(shù)據(jù)流進(jìn)行簡(jiǎn)單的修改。ARP機(jī)制常常是自動(dòng)起作用的。在特別安全的網(wǎng)絡(luò)上, ARP映射可以用固件,并且具有自動(dòng)抑制協(xié)議達(dá)到防止干擾的目的。

圖1 以太網(wǎng)上的ARP報(bào)文格式

圖1是一個(gè)用作IP到以太網(wǎng)地址轉(zhuǎn)換的ARP報(bào)文的例子。在圖中每一行為32位,也就是4個(gè)八位組表示,在以后的圖中,我們也將遵循這一方式。

硬件類型字段指明了發(fā)送方想知道的硬件接口類型,以太網(wǎng)的值為1。協(xié)議類型字段指明了發(fā)送方提供的高層協(xié)議類型,IP為0806(16進(jìn)制)。硬件地址長(zhǎng)度和協(xié)議長(zhǎng)度指明了硬件地址和高層協(xié)議地址的長(zhǎng)度,這樣ARP報(bào)文就可以在任意硬件和任意協(xié)議的網(wǎng)絡(luò)中使用。操作字段用來表示這個(gè)報(bào)文的目的,ARP請(qǐng)求為1,ARP響應(yīng)為2,RARP請(qǐng)求為3,RARP響應(yīng)為4。

當(dāng)發(fā)出ARP請(qǐng)求時(shí),發(fā)送方填好發(fā)送方首部和發(fā)送方IP地址,還要填寫目標(biāo)IP地址。當(dāng)目標(biāo)裂舉戚機(jī)器收到這個(gè)ARP廣播包時(shí),就會(huì)在響應(yīng)報(bào)文中填上自己的48位主機(jī)地址。

2 ARP使用舉例

我們先看一下linux下的arp命令(如果開始arp表中的內(nèi)容為空的話,需要先對(duì)某臺(tái)主機(jī)進(jìn)行一個(gè)連接,例如ping一下目標(biāo)主機(jī)來產(chǎn)生一個(gè)arp項(xiàng)):

d2server:/home/kerberos# arp

Address HWtype HWaddress Flags Mask Iface

211.161.17.254 ether 00:04:9A:AD:1C:0A C eth0

Address:主機(jī)的IP地址

Hwtype:主機(jī)的硬件類型

Hwaddress:主機(jī)的硬件地址

Flags Mask:記錄標(biāo)志,”C”表示arp高速緩存中的條目,”M”表示靜態(tài)的arp條目。

用”arp –a”命令可以顯示主機(jī)地址與IP地址的對(duì)應(yīng)表,也就是機(jī)器中所保存的arp緩存信息。這個(gè)高速緩存存放了最近Inter地址到硬件地址之間的映射記錄。高速緩存中每一項(xiàng)的生存時(shí)間一般為20分鐘,起始時(shí)間從被創(chuàng)建時(shí)開始算起。

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A on eth0

可以看到在緩存中有一條211.161.17.254相對(duì)應(yīng)的arp緩存條目。

d2server:/home/kerberos# tel 211.161.17.21

Trying 211.161.17.21…

Connected to 211.161.17.21.

Escape character is ‘^>’.

^>.

tel>quit

conion closed.

在執(zhí)行上面一條tel命令的同時(shí),用tcpdump進(jìn)行監(jiān)聽:

d2server:/home/kerberos# tcpdump -e dst host 211.161.17.21

tcpdump: listening on eth0

我們將會(huì)聽到很多包,我們?nèi)∨c我們arp協(xié)肆陵議相關(guān)的2個(gè)包:

1 0.0 00:D0:F8:0A:FB:83 FF:FF:FF:FF:FF:FF arp 60

who has 211.161.17.21 tell d2server

2 0.002344(0.0021) 00:E0:3C:43:0D:24 00:D0:F8:0A:FB:83 arp 60

arp reply 211.161.17.21 is at 00:E0:3C:43:0D:24

在第1行中,源端主機(jī)(d2server)的硬件地址是00:D0:F8:0A:FB:83。目的端主機(jī)的硬件地址是FF:FF:FF:FF:FF:FF,這是一個(gè)以太網(wǎng)廣播地址。電纜上的每個(gè)以太網(wǎng)接口都要接收這個(gè)數(shù)據(jù)幀并對(duì)它進(jìn)行處理。

第1行中緊接著的一個(gè)輸出字段是arp,表明幀類型字段的值是0x0806,說明此數(shù)據(jù)幀是一個(gè)ARP請(qǐng)求或回答。

在每行中,單詞后面的值60指的是以太網(wǎng)數(shù)據(jù)幀的長(zhǎng)度。由于ARP請(qǐng)求或回答的數(shù)據(jù)幀長(zhǎng)都是42字節(jié)(28字節(jié)的ARP數(shù)據(jù),14字節(jié)的以太網(wǎng)幀頭),因此,每一幀都必須加入填充字符以達(dá)到以太網(wǎng)的最小長(zhǎng)度要求:60字節(jié)。

第1行中的下一個(gè)輸出字段arp who-has表示作為ARP請(qǐng)求的這個(gè)數(shù)據(jù)幀中,目的I P地址是211.161.17.21的地址,發(fā)送端的I P地址是d2server的地址。tcpdump打印出主機(jī)名對(duì)應(yīng)的默認(rèn)I P地址。

從第2行中可以看到,盡管ARP請(qǐng)求是廣播的,但是ARP應(yīng)答的目的地址卻是211.161.17.21(00:E0:3C:43:0D:24)。ARP應(yīng)答是直接送到請(qǐng)求端主機(jī)的,而是廣播的。tcpdump打印出arp reply的字樣,同時(shí)打印出響應(yīng)者的主機(jī)ip和硬件地址。

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

這個(gè)時(shí)候我們?cè)倏纯礄C(jī)器中的arp緩存:

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A on eth0

(211.161.17.21) at 00:E0:3C:43:0D:24 on eth0

arp高速緩存中已經(jīng)增加了一條有關(guān)211.161.17.21的映射。

再看看其他的arp相關(guān)的命令:

d2server:/home/kerberos# arp -s 211.161.17.21 00:00:00:00:00:00

d2server:/home/kerberos# arp

Address HWtype HWaddress Flags Mask Iface

211.161.17.254 ether 00:04:9A:AD:1C:0A C eth0

211.161.17.21 ether 00:00:00:00:00:00 CM eth0

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A on eth0

(211.161.17.21) at 00:00:00:00:00:00 PERM on eth0

可以看到我們用arp -s選項(xiàng)設(shè)置了211.161.17.21對(duì)應(yīng)的硬件地址為00:00:00:00:00:00,而且這條映射的標(biāo)志字段為CM,也就是說我們手工設(shè)置的arp選項(xiàng)為靜態(tài)arp選項(xiàng),它保持不變沒有超時(shí),不像高速緩存中的條目要在一定的時(shí)間間隔后更新。

如果想讓手工設(shè)置的arp選項(xiàng)有超時(shí)時(shí)間的話,可以加上temp選項(xiàng)

d2server:/home/kerberos# arp -s 211.161.17.21 00:00:00:00:00:00 temp

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A on eth0

(211.161.17.21) at 00:00:00:00:00:00 on eth0

d2server:/home/kerberos# arp

Address HWtype HWaddress Flags Mask Iface

211.161.17.254 ether 00:04:9A:AD:1C:0A C eth0

211.161.17.21 ether 00:00:00:00:00:00 C eth0

可以看到標(biāo)志字段的靜態(tài)arp標(biāo)志”M”已經(jīng)去掉了,我們手工加上的是一條動(dòng)態(tài)條目。

請(qǐng)大家注意arp靜態(tài)條目與動(dòng)態(tài)條目的區(qū)別。

在不同的系統(tǒng)中,手工設(shè)置的arp靜態(tài)條目是有區(qū)別的。在linux和win2023中,靜態(tài)條目不會(huì)因?yàn)閭卧斓腶rp響應(yīng)包而改變,而動(dòng)態(tài)條目會(huì)改變。而在win98中,手工設(shè)置的靜態(tài)條目會(huì)因?yàn)槭盏絺卧斓腶rp響應(yīng)包而改變。

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

d2server:/home/kerberos# arp -d 211.161.17.21

d2server:/home/kerberos# arp -a

(211.161.17.254) at 00:04:9A:AD:1C:0A on eth0

(211.161.17.21) at on eth0

可以看到211.161.17.21的arp條目已經(jīng)是不完整的了。

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

d2server:/home/kerberos# man arp

ARP欺騙

我們先復(fù)習(xí)一下上面所講的ARP協(xié)議的原理。在實(shí)現(xiàn)TCP/IP協(xié)議的網(wǎng)絡(luò)環(huán)境下,一個(gè)ip包走到哪里,要怎么走是靠路由表定義,但是,當(dāng)ip包到達(dá)該網(wǎng)絡(luò)后,哪臺(tái)機(jī)器響應(yīng)這個(gè)ip包卻是靠該ip包中所包含的硬件mac地址來識(shí)別。也就是說,只有機(jī)器的硬件mac地址和該ip包中的硬件mac地址相同的機(jī)器才會(huì)應(yīng)答這個(gè)ip包,因?yàn)樵诰W(wǎng)絡(luò)中,每一臺(tái)主機(jī)都會(huì)有發(fā)送ip包的時(shí)候,所以,在每臺(tái)主機(jī)的內(nèi)存中,都有一個(gè) arp–> 硬件mac 的轉(zhuǎn)換表。通常是動(dòng)態(tài)的轉(zhuǎn)換表(該arp表可以手工添加靜態(tài)條目)。也就是說,該對(duì)應(yīng)表會(huì)被主機(jī)在一定的時(shí)間間隔后刷新。這個(gè)時(shí)間間隔就是ARP高速緩存的超時(shí)時(shí)間。

通常主機(jī)在發(fā)送一個(gè)ip包之前,它要到該轉(zhuǎn)換表中尋找和ip包對(duì)應(yīng)的硬件mac地址,如果沒有找到,該主機(jī)就發(fā)送一個(gè)ARP廣播包,于是,主機(jī)刷新自己的ARP緩存。然后發(fā)出該ip包。

了解這些常識(shí)后,現(xiàn)在就可以談在以太網(wǎng)絡(luò)中如何實(shí)現(xiàn)ARP欺騙了,可以看看這樣一個(gè)例子。

3.1 同一網(wǎng)段的ARP欺騙

圖2 同一網(wǎng)段的arp欺騙

如圖2所示,三臺(tái)主機(jī)

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

一個(gè)位于主機(jī)B的入侵者想非法進(jìn)入主機(jī)A,可是這臺(tái)主機(jī)上安裝有防火墻。通過收集資料他知道這臺(tái)主機(jī)A的防火墻只對(duì)主機(jī)C有信任關(guān)系(開放23端口(tel))。而他必須要使用tel來進(jìn)入主機(jī)A,這個(gè)時(shí)候他應(yīng)該如何處理呢?

我們這樣考慮,入侵者必須讓主機(jī)A相信主機(jī)B就是主機(jī)C,如果主機(jī)A和主機(jī)C之間的信任關(guān)系是建立在ip地址之上的。如果單單把主機(jī)B的ip地址改的和主機(jī)C的一樣,那是不能工作的,至少不能可靠地工作。如果你告訴以太網(wǎng)卡設(shè)備驅(qū)動(dòng)程序, 自己IP是192.168.0.3,那么這只是一種純粹的競(jìng)爭(zhēng)關(guān)系,并不能達(dá)到目標(biāo)。我們可以先研究C這臺(tái)機(jī)器如果我們能讓這臺(tái)機(jī)器暫時(shí)當(dāng)?shù)簦?jìng)爭(zhēng)關(guān)系就可以解除,這個(gè)還是有可能實(shí)現(xiàn)的。在機(jī)器C當(dāng)?shù)舻耐瑫r(shí),將機(jī)器B的ip地址改為192.168.0.3,這樣就可以成功的通過23端口tel到機(jī)器A上面,而成功的繞過防火墻的限制。

上面的這種想法在下面的情況下是沒有作用的,如果主機(jī)A和主機(jī)C之間的信任關(guān)系是建立在硬件地址的基礎(chǔ)上。這個(gè)時(shí)候還需要用ARP欺騙的手段讓主機(jī)A把自己的ARP緩存中的關(guān)于192.168.0.3映射的硬件地址改為主機(jī)B的硬件地址。

我們可以人為的制造一個(gè)arp_reply的響應(yīng)包,發(fā)送給想要欺騙的主機(jī),這是可以實(shí)現(xiàn)的,因?yàn)閰f(xié)議并沒有規(guī)定必須在接收到arp_echo后才可以發(fā)送響應(yīng)包.這樣的工具很多,我們也可以直接用snifferpro抓一個(gè)arp響應(yīng)包,然后進(jìn)行修改。

你可以人為地制造這個(gè)包??梢灾付ˋRP包中的源IP、目標(biāo)IP、源MAC地址、目標(biāo)MAC地址。

這樣你就可以通過虛假的ARP響應(yīng)包來修改主機(jī)A上的動(dòng)態(tài)ARP緩存達(dá)到欺騙的目的。

下面是具體的步驟:

他先研究192.0.0.3這臺(tái)主機(jī),發(fā)現(xiàn)這臺(tái)主機(jī)的漏洞。

根據(jù)發(fā)現(xiàn)的漏洞使主機(jī)C當(dāng)?shù)?,暫時(shí)停止工作。

這段時(shí)間里,入侵者把自己的ip改成192.0.0.3

他用工具發(fā)一個(gè)源ip地址為192.168.0.3源MAC地址為BB:BB:BB:BB:BB:BB的包給主機(jī)A,要求主機(jī)A更新自己的arp轉(zhuǎn)換表。

主機(jī)更新了arp表中關(guān)于主機(jī)C的ip–>mac對(duì)應(yīng)關(guān)系。

防火墻失效了,入侵的ip變成合法的mac地址,可以tel 了。

上面就是一個(gè)ARP的欺騙過程,這是在同網(wǎng)段發(fā)生的情況,但是,提醒注意的是,在B和C處于不同網(wǎng)段的時(shí)候,上面的方法是不起作用的。

3.2 不同網(wǎng)段的ARP欺騙

圖3 不同網(wǎng)段之間的ARP欺騙

如圖3所示A、C位于同一網(wǎng)段而主機(jī)B位于另一網(wǎng)段,三臺(tái)機(jī)器的ip地址和硬件地址如下:

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

B: ip地址 192.168.1.2 硬件地址 BB:BB:BB:BB:BB:BB

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

在現(xiàn)在的情況下,位于192.168.1網(wǎng)段的主機(jī)B如何冒充主機(jī)C欺騙主機(jī)A呢?顯然用上面的辦法的話,即使欺騙成功,那么由主機(jī)B和主機(jī)A之間也無法建立tel會(huì)話,因?yàn)槁酚善鞑粫?huì)把主機(jī)A發(fā)給主機(jī)B的包向外轉(zhuǎn)發(fā),路由器會(huì)發(fā)現(xiàn)地址在192.168.0.這個(gè)網(wǎng)段之內(nèi)。

現(xiàn)在就涉及到另外一種欺騙方式―ICMP重定向。把ARP欺騙和ICMP重定向結(jié)合在一起就可以基本實(shí)現(xiàn)跨網(wǎng)段欺騙的目的。

什么是ICMP重定向呢?

ICMP重定向報(bào)文是ICMP控制報(bào)文中的一種。在特定的情況下,當(dāng)路由器檢測(cè)到一臺(tái)機(jī)器使用非優(yōu)化路由的時(shí)候,它會(huì)向該主機(jī)發(fā)送一個(gè)ICMP重定向報(bào)文,請(qǐng)求主機(jī)改變路由。路由器也會(huì)把初始數(shù)據(jù)報(bào)向它的目的地轉(zhuǎn)發(fā)。

我們可以利用ICMP重定向報(bào)文達(dá)到欺騙的目的。

下面是結(jié)合ARP欺騙和ICMP重定向進(jìn)行攻擊的步驟:

為了使自己發(fā)出的非法ip包能在網(wǎng)絡(luò)上能夠存活長(zhǎng)久一點(diǎn),開始修改ip包的生存時(shí)間ttl為下面的過程中可能帶來的問題做準(zhǔn)備。把ttl改成255. (ttl定義一個(gè)ip包如果在網(wǎng)絡(luò)上到不了主機(jī)后,在網(wǎng)絡(luò)上能存活的時(shí)間,改長(zhǎng)一點(diǎn)在本例中有利于做充足的廣播)

下載一個(gè)可以自由制作各種包的工具(例如hping2)

然后和上面一樣,尋找主機(jī)C的漏洞按照這個(gè)漏洞當(dāng)?shù)糁鳈C(jī)C。

在該網(wǎng)絡(luò)的主機(jī)找不到原來的192.0.0.3后,將更新自己的ARP對(duì)應(yīng)表。于是他發(fā)送一個(gè)原ip地址為192.168.0.3硬件地址為BB:BB:BB:BB:BB:BB的ARP響應(yīng)包。

好了,現(xiàn)在每臺(tái)主機(jī)都知道了,一個(gè)新的MAC地址對(duì)應(yīng)192.0.0.3,一個(gè)ARP欺騙完成了,但是,每臺(tái)主機(jī)都只會(huì)在局域網(wǎng)中找這個(gè)地址而根本就不會(huì)把發(fā)送給192.0.0.3的ip包丟給路由。于是他還得構(gòu)造一個(gè)ICMP的重定向廣播。

自己定制一個(gè)ICMP重定向包告訴網(wǎng)絡(luò)中的主機(jī):”到192.0.0.3的路由最短路徑不是局域網(wǎng),而是路由,請(qǐng)主機(jī)重定向你們的路由路徑,把所有到192.0.0.3的ip包丟給路由?!?/p>

主機(jī)A接受這個(gè)合理的ICMP重定向,于是修改自己的路由路徑,把對(duì)192.0.0.3的通訊都丟給路由器。

入侵者終于可以在路由外收到來自路由內(nèi)的主機(jī)的ip包了,他可以開始tel到主機(jī)的23口。

其實(shí)上面的想法只是一種理想話的情況,主機(jī)許可接收的ICMP重定向包其實(shí)有很多的限制條件,這些條件使ICMP重定向變的非常困難。

TCP/IP協(xié)議實(shí)現(xiàn)中關(guān)于主機(jī)接收ICMP重定向報(bào)文主要有下面幾條限制:

新路由必須是直達(dá)的

重定向包必須來自去往目標(biāo)的當(dāng)前路由

重定向包不能通知主機(jī)用自己做路由

被改變的路由必須是一條間接路由

由于有這些限制,所以ICMP欺騙實(shí)際上很難實(shí)現(xiàn)。但是我們也可以主動(dòng)的根據(jù)上面的思維尋找一些其他的方法。更為重要的是我們知道了這些欺騙方法的危害性,我們就可以采取相應(yīng)的防御辦法。

3.3 ARP欺騙的防御

知道了ARP欺騙的方法和危害,我們給出一些初步的防御方法:

不要把你的網(wǎng)絡(luò)安全信任關(guān)系建立在ip地址的基礎(chǔ)上或硬件mac地址基礎(chǔ)上,(rarp同樣存在欺騙的問題),理想的關(guān)系應(yīng)該建立在ip+mac基礎(chǔ)上。

設(shè)置靜態(tài)的mac–>ip對(duì)應(yīng)表,不要讓主機(jī)刷新你設(shè)定好的轉(zhuǎn)換表。

除非很有必要,否則停止使用ARP,將ARP做為永久條目保存在對(duì)應(yīng)表中。在linux下可以用ifconfig -arp可以使網(wǎng)卡驅(qū)動(dòng)程序停止使用ARP。

使用代理網(wǎng)關(guān)發(fā)送外出的通訊。

修改系統(tǒng)拒收ICMP重定向報(bào)文

在linux下可以通過在防火墻上拒絕ICMP重定向報(bào)文或者是修改內(nèi)核選項(xiàng)重新編譯內(nèi)核來拒絕接收ICMP重定向報(bào)文。

在win2023下可以通過防火墻和IP策略拒絕接收ICMP報(bào)文。

4 代理ARP的應(yīng)用

代理ARP有兩大應(yīng)用,一個(gè)是有利的就是我們?cè)诜阑饓?shí)現(xiàn)中常說的透明模式的實(shí)現(xiàn),另一個(gè)是有害的就是通過它可以達(dá)到在交換環(huán)境中進(jìn)行嗅探的目的.由此可見同樣一種技術(shù)被應(yīng)用于不同的目的,效果是不一樣的.

我們先來看交換環(huán)境中局域網(wǎng)的嗅探.

通常在局域網(wǎng)環(huán)境中,我們都是通過交換環(huán)境的網(wǎng)關(guān)上網(wǎng)的。在交換環(huán)境中使用NetXray或者NAI Sniffer一類的嗅探工具除了抓到自己的包以外,是不能看到其他主機(jī)的網(wǎng)絡(luò)通信的。

但是我們可以通過利用ARP欺騙可以實(shí)現(xiàn)Sniffer的目的。

ARP協(xié)議是將IP地址解析為MAC地址的協(xié)議,局域網(wǎng)中的通信都是基于MAC地址的。

圖4 交換網(wǎng)絡(luò)中的ARP欺騙

如圖4所示,三臺(tái)主機(jī)位于一個(gè)交換網(wǎng)絡(luò)的環(huán)境中,其中A是網(wǎng)關(guān):

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

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

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

在局域網(wǎng)中192.168.0.2和192.168.0.3都是通過網(wǎng)關(guān)192.168.0.1上網(wǎng)的,假定攻擊者的系統(tǒng)為192.168.0.2,他希望聽到192.168.0.3的通信,那么我們就可以利用ARP欺騙實(shí)現(xiàn)。

這種欺騙的中心原則就是arp代理的應(yīng)用.主機(jī)A是局域網(wǎng)中的代理服務(wù)器,局域網(wǎng)中每個(gè)節(jié)點(diǎn)的向外的通信都要通過它.主機(jī)B想要聽主機(jī)C的通信,它需要先使用ARP欺騙,讓主機(jī)C認(rèn)為它就是主機(jī)A,這個(gè)時(shí)候它發(fā)一個(gè)IP地址為192.168.0.1,物理地址為BB:BB:BB:BB:BB:BB的ARP響應(yīng)包給主機(jī)C,這樣主機(jī)C會(huì)把發(fā)往主機(jī)A的包發(fā)往主機(jī)B.同理,還要讓網(wǎng)關(guān)A相信它就是主機(jī)C,向網(wǎng)關(guān)A發(fā)送一個(gè)IP地址為192.168.0.3,物理地址為BB:BB:BB:BB:BB:BB的包.

上面這一步的操作和前面的ARP欺騙的原理是一樣的,但是還是有問題,過一段時(shí)間主機(jī)B會(huì)發(fā)現(xiàn)自己無法上網(wǎng).所以下面還有一個(gè)步驟就是需要在主機(jī)B上轉(zhuǎn)發(fā)從主機(jī)A到主機(jī)C的包,并且轉(zhuǎn)發(fā)從主機(jī)C到主機(jī)A的包.現(xiàn)在我們可以看到其實(shí)主機(jī)B在主機(jī)A和主機(jī)C的通訊中起到了一個(gè)代理的作用,這就是為什么叫做ARP代理的原因.

具體實(shí)現(xiàn)要用到兩個(gè)工具dsniff和fragrouter,dsniff用來實(shí)現(xiàn)ARP欺騙,fragroute用來進(jìn)行包的轉(zhuǎn)發(fā).

首先利用dsniff中的arpspoof來實(shí)現(xiàn)ARP欺騙,dsniff軟件可以在下面的網(wǎng)址下載:

naughty.monkey/~dugsong/dsniff

安裝這個(gè)軟件包之前先要下載安裝lib.

欺騙192.168.0.3,告訴這臺(tái)機(jī)器網(wǎng)關(guān)192.168.0.1的MAC地址是192.168.0.2的MAC地址.

# ./arpspoof -i eth0 -t 192.168.0.3 192.168.0.1欺騙192.168.0.1,告訴192.168.0.1主機(jī)192.168.0.3的MAC地址是192.168.0.2的MAC地址。

# ./arpspoof -i eth0 -t 192.168.0.1 192.168.0.3現(xiàn)在我們已經(jīng)完成了之一步的欺騙,這個(gè)欺騙是通過arpspoof來完成的,當(dāng)然您也可以使用別的工具甚至自己發(fā)包來完成.現(xiàn)在我們可以看到在主機(jī)A和主機(jī)C的arp列表里面都完成了我們需要的工作.在后面的透明代理中我們將使用另外一種不同的理念.

下面我們先打開linux系統(tǒng)中的轉(zhuǎn)發(fā)包的選項(xiàng):

# echo “1” >/proc/sysipv4/ip_forward下面我們可以下載大名鼎鼎的dugsong的另外一個(gè)工具fragroute,這個(gè)工具以前叫做fragrouter(僅有1字的差別)主要用于實(shí)現(xiàn)入侵檢測(cè)系統(tǒng)處理分片的ip和tcp包功能的檢測(cè),本身自代包轉(zhuǎn)發(fā)的功能.可以到下面的網(wǎng)站下載:

monkey/~dugsong/fragroute/

安裝這個(gè)軟件包之前先要下載安裝libpcap和libevent.

當(dāng)然我們也可以使用fragrouter來完成:

packetstormsecurity/groups/ w00w00/sectools/fragrouter/

# ./fragrouter -B1

fragrouter: base-1: normal IP forwarding

現(xiàn)在就可以實(shí)現(xiàn)在交換局域網(wǎng)中嗅探的目標(biāo).當(dāng)然上面這些只是一些原理性的介紹,在真正的使用中會(huì)遇到很多的問題,比如如何實(shí)現(xiàn)對(duì)網(wǎng)關(guān)A和主機(jī)C的欺騙,以及如何處理可能出現(xiàn)的廣播風(fēng)暴問題,這些可以在實(shí)踐中學(xué)習(xí).還有一個(gè)叫arpsniff的工具能夠很方便的完成這一功能,很多網(wǎng)站都提供下載,界面比較友好,由于和上面的原理一樣,只是工具使用上的不同并且添加了一些附加的功能,所以這里不在進(jìn)行介紹.

代理ARP的另外一個(gè)應(yīng)用就是防火墻的透明代理的實(shí)現(xiàn).我們都知道早期的防火墻大都是基于路由模式,也就是防火墻要完成一個(gè)路由的作用.這種接入方式需要在局域網(wǎng)內(nèi)的主機(jī)上設(shè)置防火墻的IP為代理,而且需要在外部路由器的路由表中加入一條指向防火墻的路由.這種方式的缺點(diǎn)在于不透明,需要進(jìn)行過多的設(shè)置,并且破壞了原有的網(wǎng)絡(luò)拓?fù)?所以現(xiàn)在幾乎全部的防火墻都實(shí)現(xiàn)了一種透明接入的功能,用戶的路由器和客戶端不用做任何修改,用戶甚至感覺不到透明接入方式防火墻的存在.這種透明接入的原理就是ARP代理.

我們現(xiàn)在看如何配置一臺(tái)主機(jī)作為透明接入模式的防火墻(透明接入的防火墻不需要IP),

圖5

如圖5所示,一臺(tái)防火墻連接內(nèi)部網(wǎng)段和DMZ網(wǎng)段到外部路由.我們?cè)谶@臺(tái)用作防火墻的主機(jī)上使用linux操作系統(tǒng),這樣我們可以方便的使用iptables防火墻.假設(shè)三塊網(wǎng)卡為eth0,eth1和eth2,eth0和路由器相連,eth1和內(nèi)網(wǎng)相連.eth2和外網(wǎng)相連.假設(shè)DMZ區(qū)有2臺(tái)服務(wù)器.

內(nèi)網(wǎng)

DMZ

路由器的ip

eth0:AA:AA:AA:AA:AA:AA

eth1:BB:BB:BB:BB:BB:BB

eth2:CC:CC:CC:CC:CC:CC

和前面差不多,之一步需要實(shí)現(xiàn)ARP欺騙,這次我們有個(gè)簡(jiǎn)單的實(shí)現(xiàn).我們把路由器的IP地址和防火墻的eth1和eth2的網(wǎng)卡物理地址綁定,將內(nèi)網(wǎng)和DMZ網(wǎng)段的IP地址和eth0的網(wǎng)卡綁定,在linux系統(tǒng)上我們用arp命令實(shí)現(xiàn):

arp -s 192.168.1.1 BB:BB:BB:BB:BB:BB

arp -s 192.168.1.1 CC:CC:CC:CC:CC:CC

arp -s 192.168.1.0/24 AA:AA:AA:AA:AA:AA

第二部我們需要在基于linux的防火墻上設(shè)置路由,把目標(biāo)地址是外部路由的包轉(zhuǎn)發(fā)到eth0,把目標(biāo)地址為內(nèi)網(wǎng)的包轉(zhuǎn)發(fā)到eth1,把目標(biāo)地址是DMZ網(wǎng)段服務(wù)器的包轉(zhuǎn)發(fā)到eth2.在linux下面用route命令實(shí)現(xiàn)

route add 192.168.1.1 dev eth0

route add – 192.168.1.0/24 dev eth1

route add 192.168.1.2 dev eth2

route add 192.168.1.3 dev eth3

(針對(duì)DMZ網(wǎng)段里面的每臺(tái)服務(wù)器都要增加一條單獨(dú)的路由) 現(xiàn)在我們就已經(jīng)實(shí)現(xiàn)了一個(gè)簡(jiǎn)單的arp代理的透明接入,當(dāng)然對(duì)應(yīng)于防火墻的iptables部分要另外配置,iptables的配置不在本文范疇之內(nèi).

小結(jié)

linux 解析arp數(shù)據(jù)包的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux 解析arp數(shù)據(jù)包,深入探究:Linux如何解析ARP數(shù)據(jù)包?,什么是ARP?的信息別忘了在本站進(jìn)行查找喔。

成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。


網(wǎng)站題目:深入探究:Linux如何解析ARP數(shù)據(jù)包?(linux解析arp數(shù)據(jù)包)
標(biāo)題網(wǎng)址:http://www.dlmjj.cn/article/dpcepej.html