它是将IP地址解析为以太网MAC地址(或称物理地址)的协议
在局域网中,当主机或其他网络设备有数据要发送给另一个主机或设备时,必须知道对方的IP地址和MAC地址
ARP地址解析协议,是如何把目的地址的IP地址转化为MAC地址的?
1. 首先,主机A向主机B发送消息,但它不知道主机B的MAC地址,只知道主机B的IP地址。此时,主机A会在当前局域网下以广播的形式发送ARP请求数据报,表示主机A想知道主机B的MAC地址
2. 局域网中的每一台主机都会接受并处理这个ARP请求报文,然后进行验证,查看接收方的IP地址是不是自己的地址,除了主机B外,在这个局域网内的其他主机都会丢弃数据报
3. 验证成功的主机会返回一个ARP响应报文,这个响应报文包含接收方的IP地址和物理地址。这个报文以单播的方式直接 发送给ARP请求报文的请求方
为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念
这个表包含IP地址到MAC地址的映射关系,表中记录了<IP地址,MAC地址>对,称之为ARP表项
当需要发送数据时,主机会根据数据报中的目标IP地址信息,然后在ARP缓存表中查找对应的MAC地址,最后通过网卡将数据发送出去
注意:arp缓存中每一项都被设置了生存时间,一般是20分钟,从被创建时开始计时,到时则清除
ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为如图
硬件类型:占2字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址
上层协议类型:占2字节,表示硬件地址要映射的协议地址类型。其中,0x0800表示IP协议
MAC地址长度:占1字节,标识MAC地址长度
IP地址长度:占1字节,标识IP地址长度
操作类型:占2字节,指定本次ARP报文类型。1表示ARP请求报文,2表示ARP应答报文
源MAC地址:占6字节,表示发送方设备的硬件地址
源IP地址:占4字节,表示发送方设备的IP地址
目的MAC地址:占6字节,表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-00-00-00-00, 表示任意地址,因为现在不知道这个MAC地址
目的IP地址:占4字节,表示接收方设备的IP地址
简介:ARP欺骗(英语:ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。
原理:ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,例如netcut软件。
攻击机:kali linux
靶机:window7
靶机IP:192.168.8.122
默认网关:192.168.8.1
在kali里面输入arp 命令来查看局域网存活的机器,发现局域网中192.168.8.121这台机器存活。
接下来使用kali 里面自带的工具arpspoof 对192.168.2.121进行arp欺骗攻击。
Arpspoof命令详解:
-i 指定要使用的接口(即指定一块网卡)
-c指定在恢复ARP配置时使用的硬件地址;当在清理(cleaning up)时,数据包的源地址可以用自己的也可以用主机(host)的硬件地址。使用伪造的硬件地址可能导致某些配置下的交换网络、AP网络或桥接网络通信中断,然而它比起默认值————使用自己的硬件地址要工作地更为可靠。
-t 指定一个特殊的、将被ARP毒化的主机(如果没有指定,则认为是局域网中所有主机)。重复可以指定多个主机。
-r 毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)
host 是你想要截获数据包的主机 (通常是网关)。
arpspoof -i eth0 -t 192.168.8.121 192.168.8.1
此时已经成功进行了arp欺骗攻击,但此时没有配置数据包转发,因此靶机请求到的数据包到达kali的时候会丢弃,即出现断网现象。可以看到靶机虽然现在是联网状态,但是已经无法访问互联网。
这时,在kali上执行命令,来打开IP转发,开启IP转发后,目标已经可以访问互联网。
echo 1 > /proc/sys/net/ipv4/ip_forward
注:/proc/sys/net/ipv4/ip_forward是配置文件,默认值为0,代表此时IP转发是关闭的,使用上述命令将该配置文件的内容改为1,代表开启IP转发。开启IP转发后流量会经过kali的主机然后再到目标,所以这时开启arpspoof 那么目标就不会断网,因为流量先通过了kali主机,然后再转发到目标机器,那么我们就可以拦截数据。
在kali上面使用driftnet工具,使用命令driftnet -i eth0,就可以抓取靶机所访问的网站的图片了。
原文始发于微信公众号(银河护卫队super):ARP协议
评论