1.ARP協(xié)議
地址解析協(xié)議,Address Resolution Protocol,用于實(shí)現(xiàn)IP地址到MAC地址映射(知道IP問(wèn)MAC)曹阔,實(shí)現(xiàn)數(shù)據(jù)的封裝過(guò)程茉盏。ARP協(xié)議是在Ethernet以上鉴未,屬于網(wǎng)絡(luò)層。
ARP數(shù)據(jù)包:
字段1是ARP請(qǐng)求的目的以太網(wǎng)地址鸠姨,全1時(shí)代表廣播地址铜秆。
字段2是發(fā)送ARP請(qǐng)求的以太網(wǎng)地址。
字段3以太網(wǎng)幀類型表示的是后面的數(shù)據(jù)類型讶迁,ARP請(qǐng)求和ARP應(yīng)答這個(gè)值為0x0806连茧。
字段4表示硬件地址的類型,硬件地址不只以太網(wǎng)一種巍糯,是以太網(wǎng)類型時(shí)此值為1啸驯。
字段5表示要映射的協(xié)議地址的類型,要對(duì)IPv4地址進(jìn)行映射祟峦,此值為0x0800罚斗。
字段6和7表示硬件地址長(zhǎng)度和協(xié)議地址長(zhǎng)度,MAC地址占6字節(jié)宅楞,IP地址占4字節(jié)针姿。
字段8是操作類型字段,值為1厌衙,表示進(jìn)行ARP請(qǐng)求距淫;值為2,表示進(jìn)行ARP應(yīng)答迅箩;值為3溉愁,表示進(jìn)行RARP請(qǐng)求;值為4饲趋,表示進(jìn)行RARP應(yīng)答拐揭。
字段9是發(fā)送端ARP請(qǐng)求或應(yīng)答的硬件地址,這里是以太網(wǎng)地址奕塑,和字段2相同堂污。
字段10是發(fā)送ARP請(qǐng)求或應(yīng)答的IP地址。
字段11和12是目的端的硬件地址和協(xié)議地址龄砰。
ARP常用命令:
- 使用arp-a命令就可以查看本地的ARP緩存內(nèi)容盟猖,所以讨衣,執(zhí)行一個(gè)本地的PING命令后,ARP緩存就會(huì)存在一個(gè)目的IP的記錄了式镐。
- 使用arp –d來(lái)刪除ARP高速緩存中的某一項(xiàng)內(nèi)容
- 使用arp –s來(lái)增加高速緩沖表中的內(nèi)容反镇,這個(gè)命令需要主機(jī)名和以太網(wǎng)地址。新增加的內(nèi)容是永久性的娘汞,除非在命令行的末尾加上關(guān)鍵字temp歹茶。
arp –s 157.55.85.212 00-aa-aa-562-c6-09
增加一個(gè)靜態(tài)的ARP表項(xiàng)。 - arppub –s:使系統(tǒng)起著主機(jī)ARP代理功能你弦。系統(tǒng)將回答與主機(jī)名對(duì)應(yīng)的IP地址的ARP請(qǐng)求惊豺。
2.ARP原理
-
假設(shè)現(xiàn)在有兩臺(tái)主機(jī),用戶土豆的IP是1.1禽作,MAC為MAC1尸昧,用戶洋芋IP是1.2,MAC是MAC2
現(xiàn)在土豆要給洋芋發(fā)消息旷偿,但土豆不知道洋芋的MAC是多少烹俗?(沒(méi)有MAC就無(wú)法發(fā)消息給洋芋了)
-
土豆想要給洋芋發(fā)消息,就要先廣播發(fā)送消息狸捅,跟大家say個(gè)hello衷蜓,問(wèn)一下局域網(wǎng)內(nèi)的大家知不知道洋芋在哪?(廣播請(qǐng)求)
當(dāng)然洋芋也能收到這個(gè)請(qǐng)求尘喝,所以他就回復(fù)了土豆他在哪(MAC2)(單播回復(fù)) -
當(dāng)土豆知道了洋芋的MAC地址之后(數(shù)據(jù)鏈路層的數(shù)據(jù)知道了目的地址),就可以愉快的通信了
從抓包的角度來(lái)看:
圖中MAC地址全為0表示的是廣播請(qǐng)求
也可以看出在廣播的時(shí)候是采用暴力掃描的方式
3.ARP攻擊
還是土豆想找洋芋斋陪,要給洋芋發(fā)送消息朽褪,這時(shí)候有個(gè)黑客山藥蛋企圖進(jìn)行ARP欺騙
-
土豆的廣播請(qǐng)求
土豆的廣播可以被山藥蛋收到
-
洋芋的單播回復(fù)
洋芋單播后的MAC地址是正確的MAC
-
山藥蛋進(jìn)行欺騙——告訴土豆,洋芋的MAC其實(shí)是“MAC3”
山藥蛋會(huì)重復(fù)發(fā)很多次說(shuō)“洋芋的MAC其實(shí)是MAC3”以確保原來(lái)正確的MAC地址被覆蓋掉
然后土豆想發(fā)給洋芋的信息就發(fā)給了山藥蛋