网络详解 - 网络层(4)地址解析协议 ARP

在网络中,我们已经了一个IP地址,但是不知道该地址对应的物理地址是多少,就无法正确的传输数据。ARP 地址解析协议就是用于处理这个问题的。

如下,抓一对请求来分析下。
arp抓包

当 192.168.200.14 这个服务器,想要和 192.168.200.155 发起通讯的时候,发现本地 arp 缓存表中没有 192.168.200.155 的以太网地址,这个时候就需要向该网络中发起广播询问,下图是模拟了通信内容。

Created with Raphaël 2.1.0 192.168.200.14 192.168.200.14 192.168.200.155 192.168.200.155 嘿,你知道192.168.200.155的MAC地址吗? 192.168.200.155的MAC地址是78:4f:43:9e:0d:12。

具体的数据报如下,其中关键 Opcode 1: ARP Request(请求)。相对应的Opcode 2: ARP Reply(应答)。Sender MAC AddressSender IP Address 告知对方,自己的地址,方便被询问方做出应答。Target IP Address 则是需要询问的 IP 地址
arp_request

应答数据包
和请求数据包类似,只是Opcode字段不一致,以及 Sender 和 Target 置换了位置。
arp_reply

攻击 - ARP欺骗

ARP 表是关联 IP 地址和下一跳 MAC 地址数据表,一般来说实现了 TCP/IP 协议栈的设备都会维护这么一张表。而 ARP 表的建立有 2 种方式。

1.主动询问,如上所示的整个流程,当设备需要和某个 IP 地址的设备进行通讯的时候,需要知道该 IP 的在本网络的的下一跳 MAC 地址,就会主动向网络中的设备发起广播,再通过应答建立关系。
2.被动建立,如果一台机器接受到另外一台设备的ARP请求,就可以在本设备的 ARP 表中建立关联关系。

攻击方式

假设有 3 台设备,A、B、C。A、B为正常设备,切均已建立关系,而C为攻击者,想要窃听AB通信的内容。

1.C现在本地记录AB的 IP 地址和 MAC 地址。
2.伪造数据报,源IP地址:A的IP,**源MAC地址**C的MAC地址,并将该数据报发送给B。B更新ARP表。
3.伪造数据报,源IP地址:B的IP,**源MAC地址**C的MAC地址,并将该数据报发送给A。A更新ARP表。
4.A想要发送数据报给B的时候,数据报中的IP地址是B,MAC地址就是C,这个时候C就截获了该数据,再将该数据包发送给B,或者可以修改其中的数据。
5.相应的响应也是同理。
6.完成了一次arp欺骗。

Created with Raphaël 2.1.0 A A C C B B 发送数据报给B ARP表中B的IP地址对应是C的MAC地址 查看了数据,做了些不可告人的秘密。 把该数据报转发给B。 处理了数据报中的消息,准备给A进行应答 ARP表中A的IP地址对应是C的MAC地址 继续查看了数据,你想干啥就干啥。 把该数据报转发给A。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值