ARP协议
- 定义:ARP(Address Resolution Protocol,地址解析协议)是一种网络协议,用于将网络层的IP地址映射为数据链路层的MAC地址。ARP协议在局域网中非常重要,因为网络通信需要通过MAC地址来传输数据,而主机通常知道的是IP地址,因此需要通过ARP协议将IP地址解析为MAC地址。
- 所在网络层:ARP工作在数据链路层和网络层之间,具体来说它属于OSI模型的数据链路层,但它的作用是在网络层和数据链路层之间进行地址解析。(ARP协议没有端口号,在传输层协议中(如TCP或UDP),才有端口号的概念,用来标识不同应用程序之间的通信端点。)
- 工作流程:
(1)发送ARP请求:当主机A(192.168.1.1)需要与主机B(192.168.1.2)通信时,首先主机A会检查ARP缓存表,看是否已有对应的MAC地址记录。如果没有,则主机A会向局域网中的所有设备发送一个ARP请求,以查找目标IP地址(192.168.1.2)对应的MAC地址。
(2)目标设备响应:主机B收到ARP请求后,会发现请求中的目标IP地址与自身的IP地址相符,因此会生成一个ARP响应消息,将其MAC地址(例如00:11:22:33:44:55)发送给主机A。
(3)更新ARP缓存:主机A收到ARP响应后,会将主机B的IP地址与MAC地址的对应关系存储在ARP缓存表中,并使用该MAC地址发送数据。
(4)数据传输:在完成ARP过程后,主机A可以直接使用主机B的MAC地址来发送数据包。
计算机A需要给计算机B发送
发送信息前,查找ARP缓存表,存在对方MAC地址,直接封装成帧。如果不存在,通过发送 ARP Request报文获取对方MAC地址。如果目标在其他网络,源设备会先查找网关MAC地址,将数据发给网关,再转发。
IP和MAC关系映射关系会放入ARP缓存表一段时间,有效期内都可查到,过了这个有效期会自动删除。
- ARP数据包格式
ARP Request 报文中包含源 IP 地址、目的 IP 地址、源 MAC 地址、目的 MAC 地址,其中目的 MAC 地址的值为0。(是一个广播包,会发送到网络中所有设备,因为计算机A不知道目标设备的MAC地址,所以必须广播请求。)
应答包(单播):本机IP地址、mac地址+来源主机IP地址、mac地址(是一个单播包,直接发送给请求者。)
- IP地址和MAC地址区别 :
MAC 地址是网络硬件设备(如网卡、交换机等)的唯一标识符,通常由硬件制造商分配。它是一种物理地址,用于标识网络设备。MAC地址用于数据包在局域网中的传输,用于局域网内设备间的通信。IP 地址是网络层用于标识和定位设备的逻辑地址,通常由网络管理员分配或者通过 DHCP 自动分配。它用于不同网络之间的通信。
PS:MAC地址是唯一的,但IP地址不是唯一的,可多次分配,更改。
特性MAC 地址IP 地址类型物理地址逻辑地址层级数据链路层网络层作用硬件设备的唯一标识标识计算机在网络中的唯一位置是否唯一唯一,由硬件制造商分配不唯一,可以多次分配更改,由网络管理员分配和管理范围局域网(LAN)内有效可跨越不同网络(广域网、互联网)格式6 字节,十六进制表示IPv4(32位)或 IPv6(128位)ARP欺骗
- 原理:
在局域网中,主机通信前必须通过ARP协议把IP地址转换为MAC地址,ARP欺骗就是通过伪造IP地址与MAC地址的映射关系实现的一种欺骗攻击。因为局域网内的主机根据MAC地址进行通信,发送方检查其ARP缓存中是否已存储目标IP的MAC地址,否则它会广播发送ARP请求报文,只有目标IP的主机才会响应一个包含其MAC地址的ARP应答报文,发送方收到该应答后,立即更新自身的ARP缓存。攻击者可以发送虚假的ARP请求或应答报文,使得目标主机接收错误的IP和MAC绑定关系。
- 使用工具:
arpspoof:是一款进行arp欺骗的工具,攻击者可以通过它来毒化受害者arp缓存,将网关mac替换为攻击者mac,然后攻击者可截获受害者发送和收到的数据包,可获取受害者账户、密码等相关敏感信息。
- 靶场复现
攻击机:kali虚拟机192.168.3.150
靶机:win7虚拟机192.168.229.130
场景:两台设备需要在同一个局域网下,网关相同
工具:arpspoof
语法
arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host
参数
-i interface:指定要用于发送欺骗数据包的网络接口(eth0...)
-c own|host|both:控制是否将欺骗信息发送给目标主机或路由器,或者两者都发送。
(own表示仅欺骗目标主机;host表示仅欺骗路由器;both表示同时欺骗两者)
-t target:指定要欺骗的目标IP地址。
-r:用于在主机和目标之间进行双向ARP欺骗。
host:想要欺骗的主机的IP地址。
1.ARP断网
首先尝试用靶机ping百度
ping www.baidu.com
能ping通说明网络环境没问题,接下来就可以进行攻击了
可以通过欺骗win7的arp缓存表,导致win7不能上网,这是最常用的arp断网技术
首先要查看win7的ip地址和网关
物理地址:
接着查看kali的ip地址:
接下来进行欺骗
arpspoof -i eth0 -t 192.168.152.143 192.168.152.2
ip.addr == 192.168.152.143 and arp
网关MAC地址改变成功
windows7/windows10 在本机上静态绑定ip地址和mac地址
CMD中输入:netsh i i show in
//注意两个i之间是有空格的
然后找到“本地连接”对应的 “Idx”
然后在CMD输入:netsh -c "i i" add neighbors 11 “192.168.152.2” “41-b0-22-9d-39-dd”,这里 13 是 idx 号。
预防措施:
客户端静态绑定网关的真实MAC地址。
在交换机和路由器上设置端口与MAC地址的静态绑定。
定期检测自身的ARP缓存,检测是否有MAC地址相同的不同表项,即可发现异常。
使用防火墙持续监控ARP缓存,检测异常变化。
补充知识
交换机(Switch)是计算机网络设备中的一种,它用于连接多个网络设备(如计算机、打印机、服务器等),并在它们之间转发数据。交换机工作的主要目的是根据MAC地址来决定数据包的转发路径,使得网络中的数据能够准确且高效地传输。
交换机的基本功能:
数据包转发:交换机通过接收数据包并根据数据包中的目标MAC地址,将数据包转发到正确的端口。它能识别网络中每个设备的物理地址(MAC地址),并根据这些地址做精确的转发。
局域网(LAN)分段:交换机能够将一个大网络划分为多个小的冲突域(collision domain),这样可以减少数据碰撞,提高网络效率。
学习功能:交换机会学习和存储每个设备的MAC地址与其对应的端口信息,并将这些信息保存到自己的MAC地址表中。这样,当设备发送数据时,交换机能够直接根据MAC地址查找目标设备的端口,确保数据高效传输。
全双工通信:大多数现代交换机支持全双工模式,这意味着数据可以同时在两个方向上传输,从而提高了网络的吞吐量。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |