ARP协议(定义-工作原理-ARP欺骗-防御手段-实战演练)

声明:此次教程仅作为实验练习,请遵循网络安全法,禁止对他人使用进行网络攻击

一、ARP协议的定义

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;

二、ARP协议的工作原理

假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

  1. 主机A首先查看自己的ARP缓存表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。
  2. 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。
  3. 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
  4. 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

直观的表现就是:

 A-->B: A向局域网发送request广播包(包含A的IP地址,A的MAC地址,B的IP地址),当B收到request包,并发现request包中的IP地址和自己一样时,则会回复response 包(包含了B的MAC地址)  

三、ARP欺骗

ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的进行。基于ARP协议的这一工作特性,黑客向对方计算机不断发送有欺诈性质的ARP数据包,数据包内包含有与当前设备重复的Mac地址,使对方在回应报文时,由于简单的地址重复错误而导致不能进行正常的网络通信,或者如果不及时处理,便会造成网络通道阻塞、网络设备的承载过重、网络的通讯质量不佳等情况。(如何攻击:因为ARP协议不具有识别功能,所以C可以冒充B向A发送response包,将自己的MAC地址发送给A,从而欺骗A自己就是B。

一般情况下,受到ARP攻击的计算机会出现两种现象:

  1. 不断弹出“本机的XXX段硬件地址与网络中的XXX段地址冲突”的对话框。
  2. 计算机不能正常上网,出现网络中断的症状。

四、防御手段

  • 设置静态的arp缓存---在计算机上使用arp-s命令添加静态arp缓存记录。

  • 使用arp服务器---在arp服务器中保存局域网服务器中各主机的ip地址和mac地址的映射信息,同时禁用各主机的arp应答,保留服务器对arp请求的应答

  •  划分虚拟局域网(vlan)和端口绑定---根据arp欺骗不会发生跨网段攻击的特点,可以将网络划分为多个网段。优点就是能缩小arp欺骗的攻击范围,缺点是不够灵活,不能避免网关遭受攻击。

  • 采用arp防火墙---现在很多杀毒软件制造商都设计出了个人arp防火墙模块,该模块也是通过绑定主机和网关等其他方式,来避免遭受攻击者所冒充的家网关攻击。

  • 管理员定期轮询,检查主机上的ARP缓存。

五、实战演练

使用kail linux (192.168.153.129)对靶机root(192.168.153.128)进行ARP攻击

1、查看本机IP

kail虚拟机IP地址为192.168.153.129

root用户IP地址为192.168.153.128

2、查看网段中有哪些主机

fping:用于向多个主机发送ICMP回显请求的工具,常用于快速扫描网络设备的在线状态。

 查看可知192.168.153.0/24网段中有192.168.153.2(网关),192.168.153.128(靶机),192.168.153.129(kail本机)

3、查看ARP-MAC地址对应表

arp:命令用于显示和操作,系统的arp缓存

kail:

网关MAC地址为:00:50:56:f8:e5:b5

root:

未攻击前:

网关MAC地址为:00:50:56:f8:e5:b5

kail本机MAC地址为:00:0c:29:aa:cf:72

正常访问:www.baidu.com

4、开始攻击靶机

 

arpspoof -i eth0 -t 192.168.153.128 192.168.153.2( arpspoof -i eth0 -t 目标IP 网关IP )

-i 指定用于进行ARP欺骗的网络接口,例如eth0或wlan0。
-t 指定目标主机的IP地址,你可以指定单个目标主机或多个目标主机。
 

可以发现网关的地址发生改变:

 此时我们在靶机上查看ARP-MAC地址对应表

可以发现网关(192.168.153.2)的MAC地址和kail linuxMAC地址相同

现在网关(192.168.153.2)MAC地址为:00:0c:29:aa:cf:72

通过比较原网关MAC地址和现网关MAC地址:

原网关MAC地址为:00:50:56:f8:e5:b5

现网关MAC地址为:00:0c:29:aa:cf:72----kail的MAC地址

5、总结

通过查看ping www.baidu.com 发生网管修改,可以得知靶机遭受到了攻击,并且分析原MAC地址和现MAC地址可以得出,现MAC地址和kail linux MAC地址相同,所以我们成功的将靶机上网关的地址修改成kail linux 的地址,ARP欺骗成功。

  • 33
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值