记ARP欺骗攻击与防范实验

本文仅用于研究ARP欺骗攻击与防护技术,切勿用于非法用途,本文不承担任何法律责任。
ARP(地址解析协议)欺骗是一种中间人攻击,攻击者试图在网络通信中介入,截取、篡改或监视通信流量。ARP欺骗攻击利用了ARP协议的漏洞,通过伪造ARP响应来欺骗目标设备,使其误认为攻击者的MAC地址与特定IP地址相对应,从而导致网络通信流量被重定向到攻击者的设备上。

前置准备

  1. 虚拟机网关:192.168.0.2(win10)
  2. 靶机:192.168.0.134(win sp1)
  3. 攻击机:192.168.0.140(kali 2023.1)
  4. 工具安装:driftnet、arpspooff

driftnet
类型:网络嗅探工具。
简介:Driftnet是一个开源的网络嗅探工具,旨在捕获网络流量中的图像文件。它可以监视网络中的HTTP流量,并提取其中的图像文件,然后将这些图像显示在用户界面上。Driftnet通常用于教育、安全研究和网络监视,以便分析网络流量中是否存在敏感或不适当的图像内容。
使用示例:
driftnet -i eth0
arpspoof
类型:ARP欺骗工具。
简介:Arpspoof是一个网络工具,用于执行ARP欺骗攻击。ARP欺骗攻击是一种中间人攻击,攻击者通过伪造ARP响应来欺骗目标设备,使其认为攻击者的MAC地址与目标设备的IP地址相对应。这使得攻击者能够拦截、篡改或监视目标设备与其他设备之间的网络通信。Arpspoof通常用于网络安全测试和演示,以揭示网络中的潜在安全漏洞。
使用示例:
arpspoof -i eth0 -t target_ip gateway_ip

漏洞原理

ARP数据包的种类有两种
ARP请求:
目的:当一个设备需要知道某个特定IP地址对应的MAC地址时,它会发送一个ARP请求。
过程:设备会在本地网络广播一个ARP请求帧,其中包含了目标IP地址,以请求其他设备提供对应的MAC地址。
响应:网络中的其他设备会接收到这个ARP请求,如果其中有一个设备拥有被请求的IP地址,它会发送一个ARP应答帧回应,包含了自己的MAC地址。
ARP应答:
目的:当一个设备收到ARP请求并且拥有被请求的IP地址时,它会发送一个ARP应答。
过程:设备收到ARP请求后,会构建一个ARP应答帧,其中包含了自己的MAC地址,并将其发送给ARP请求的源设备。
效果:源设备收到ARP应答后,就知道了目标IP地址对应的MAC地址,从而可以在数据链路层上正确地发送数据帧。
ARP欺骗漏洞产生原因
ARP协议的工作原理:ARP(Address Resolution Protocol)是用于将IP地址映射到物理MAC地址的协议。它是一个无状态协议,没有验证机制,因此容易受到攻击。攻击者可以发送虚假的ARP响应,欺骗其他计算机,使其将数据发送到错误的MAC地址。

  1. 缺乏身份验证:ARP协议本身没有身份验证机制,任何计算机都可以发送ARP请求或响应。这使得攻击者可以伪装成合法设备,发送虚假ARP响应,引导流量经过他们的计算机。
  2. 局域网环境:ARP欺骗漏洞通常发生在局域网环境中,因为ARP协议仅在同一局域网中工作。攻击者必须在同一物理网络中,才能执行ARP欺骗攻击。
  3. 缺乏加密:ARP协议中的ARP请求和响应都是明文传输的,不经过加密。这意味着攻击者可以轻松地拦截和篡改这些消息,从而进行欺骗攻击。
  4. 网络设备不安全:某些网络设备可能缺乏足够的安全措施,容易受到ARP欺骗攻击。这些设备可能不会正确验证ARP响应的真实性,导致攻击成功。

漏洞复现

抓取ICMP包

清空windows靶机的arp表并关闭防火墙

攻击机ip信息

Linux开启路由转发功能

# 将配置项写入配置文件
└─$ sudo vim /etc/sysctl.conf
└─$ cat /etc/sysctl.conf | tail -n 1
net.ipv4.ip_forward=1
# 重新加载内核参数设置
└─$ sudo sysctl -p
net.ipv4.ip_forward = 1
# 重启主机并验证
└─$ sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

查看当前网段下的主机的IPMAC地址

靶机原ARP

正常ICMP请求包

进行ARP欺骗攻击

# 将攻击机(192.168.0.140)伪装成网关(192.168.0.2)
sudo arpspoof -i eth0 -t 192.168.0.2 192.168.0.140
# 将攻击机(192.168.0.140)伪装成靶机(192.168.0.134)
sudo arpspoof -i eth0 -t 192.168.0.134 192.168.0.2

欺骗后的ARP表,可以发现网关的MAC地址被篡改

被篡改后的ICMP请求包

抓取HTTP包

在云主机上存放一张图片,启动一个简单的HTTP服务器

url为:http://x.x.x.x:8080/1.jpg
注意: 浏览器出于安全原因会封禁一些端口(ERR_UNSAFE_PORT),如6666,6667等。
项目部署到6666端口访问不了

开启driftnet捕获网络流量中的图像文件

靶机浏览器请求访问 http://x.x.x.x:8080/1.jpg

篡改前与篡改后的请求路线对比

"网关"(这里的网关被篡改为攻击机的MAC)去请求云服务器
数据在回传回来到"网关",最后“网关”再回传到靶机浏览器上显示1.jpg图片

ps: 这里难以抓取https的数据包
还有一些利用方法后续更新(下次一定)

ARP安全防范

  1. 静态ARP表项设置:将重要的网络设备的ARP表项设置为静态,这样它们不会轻易受到欺骗攻击的影响。这需要在网络设备上手动配置。
  2. ARP缓存检查:监控ARP缓存中的条目,检测是否有异常的ARP记录,例如同一IP地址对应不同的MAC地址。可以使用工具或脚本来实现自动检查。
  3. ARP欺骗检测工具:部署专门的ARP欺骗检测工具,这些工具可以监控和检测ARP攻击,并立即采取措施来应对异常情况。
  4. 端口安全措施:在交换机和路由器上启用端口安全功能,限制每个端口可以学习的MAC地址数量,防止攻击者通过伪造MAC地址来进行ARP欺骗。
  5. 网络隔离:将网络分段,使用VLAN等技术将不同的部门或设备隔离开来,减少潜在的ARP攻击面。
  6. ARP缓存定期清除:定期清除设备上的ARP缓存,以防止缓存中的恶意或过期ARP记录对网络造成潜在威胁。
  7. 网络监控:实施全面的网络监控,以检测异常流量和活动,从而更早地发现并应对潜在的ARP攻击。
  8. 强化物理安全:确保网络设备受到适当的物理安全保护,防止未经授权的人员访问设备并进行ARP攻击。

ARP防御实验
使用XArp防火墙,检查出ARP欺骗攻击

参考链接

linux 网络问题 ipv4 forwarding_ipv4_forward_MrMoving的博客-CSDN博客
arpspoof+driftnet+ ARP欺骗简单图片抓取 - 晓枫v5 - 博客园
ARP欺骗 · 白帽与安全 · 看云

posted @   fnewll  阅读(644)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示

目录导航

前置准备
漏洞原理
漏洞复现
抓取ICMP包
抓取HTTP包
ARP安全防范
参考链接