前言
在局域网渗透与网络安全学习中,ARP欺骗是最经典、门槛最低的中间人攻击入门技术,在此基础上还可以进阶实现DNS劫持、流量嗅探、网页篡改等更深层次的操作。
重要安全声明
本文仅用于网络安全技术学习与合法测试,禁止对任何未授权的网络、设备进行攻击操作,非法入侵与网络破坏行为需承担对应的法律责任,请遵守《网络安全法》等相关法律法规,一切测试仅限个人虚拟机、自有实验环境。
一、原理科普
1. ARP协议与ARP欺骗原理
ARP(地址解析协议):负责将局域网内的IP地址解析为对应的MAC物理地址,是局域网通信的基础。
ARP欺骗(ARP中毒):攻击者伪造ARP响应报文,欺骗受害主机与网关,让二者都把攻击者的MAC地址当成对方的MAC地址,让所有流量都经过攻击者主机转发,既可以直接切断目标网络,也可以实现中间人监听。
2. DNS劫持原理
DNS负责把域名(比如www.baidu.com)解析为服务器IP地址。DNS劫持 = 在ARP中间人攻击的基础上,篡改DNS解析结果,当受害者访问正常网站时,被强行跳转到攻击者指定的钓鱼网站、恶意页面。
二、实验环境
| 设备/系统 | 角色 | 说明 |
| Kali Linux | 攻击机 | 预装arpspoof、ettercap等渗透工具 |
| Windows 10虚拟机 | 受害主机 | 作为被攻击测试的设备 |
| 同网段路由器 | 网关 | 局域网出口 |
实验网段: 192.168.154.0/24
- Kali攻击机IP: 192.168.154.128
- 受害主机IP: 192.168.154.131
- 网关IP: 192.168.154.2
三、ARP断网攻击
步骤1:扫描局域网存活主机
首先探测当前局域网内所有在线设备,锁定受害主机与网关:
arp-scan -l执行后会列出网段内所有主机的IP、MAC、设备厂商信息,提前记录好网关IP、受害机IP。
步骤2:确认本机网卡与网关信息
1. 查看Kali攻击机网卡与MAC地址
ifconfig找到网卡,记录本机MAC地址。
2. 查看本机ARP缓存,确认网关MAC
arp -a步骤3:验证受害主机网络正常
攻击前先在Windows受害机测试网络连通性:
ping www.baidu.com此时可以正常收到百度的回复,网络通畅。
步骤4:发起ARP断网欺骗
使用 arpspoof 工具,持续发送伪造ARP报文:
arpspoof -i eth0 -t 192.168.154.131 192.168.154.2参数说明:
- -i eth0 :指定使用的网卡
- -t 目标IP 网关IP :欺骗目标主机,让它认为网关的MAC就是攻击机MAC
步骤5:断网效果验证
攻击开启后,回到Windows受害机再次ping百度:
ping www.baidu.com此时会提示 Ping 请求找不到主机 ,目标主机彻底断网。
步骤6:查看受害机ARP缓存变化
在受害机执行:
arp -a可以发现,网关对应的MAC地址已经被篡改为Kali攻击机的MAC地址,ARP欺骗生效。
四、DNS域名劫持攻击
ARP断网只是基础玩法,开启流量转发后,我们就可以实现中间人DNS劫持。
步骤1:修改Ettercap DNS配置
编辑ettercap的DNS解析规则,把指定域名劫持到攻击机IP:
vim /etc/ettercap/etter.dns在文件末尾添加劫持规则:
* A 192.168.154.128 *.baidu.com A 192.168.154.128 *.com A 192.168.154.128含义:所有匹配的域名,全部解析到Kali攻击机的IP。
步骤2:启动本地Web站点
开启Apache服务,搭建默认站点,用来展示劫持后的页面:
service apache2 start浏览器访问Kali本机IP,即可看到Apache默认页面,后续受害者就会跳转到这个页面。
步骤3:Ettercap工具配置与ARP中间人
1. 打开Ettercap图形界面,选择攻击网卡
2. 扫描局域网存活主机
3. 将受害主机添加到Target1,网关添加到Target2
步骤4:开启ARP毒化攻击
顶部菜单选择:MITM -> ARP Poisoning
勾选Sniff remote connections,确认开启中间人流量嗅探。
步骤5:加载DNS劫持插件
菜单选择:Plugins -> Manage the plugins
找到并启用dns_spoof插件,DNS劫持正式生效。
步骤6:劫持效果演示
受害主机打开浏览器,访问 www.baidu.com 等任意配置好的域名,原本的百度页面,会直接跳转到Kali搭建的Apache默认网站,劫持成功
五、攻击原理总结
1. ARP断网:单向欺骗目标主机,让目标所有流量都发给攻击机,攻击机不转发流量 → 目标彻底断网
2. 完整中间人:开启内核流量转发( echo 1 > /proc/sys/net/ipv4/ip_forward ),流量正常中转 → 不影响上网,可监听、篡改流量
3. DNS劫持:在中间人基础上,伪造DNS响应包,篡改域名解析结果 → 钓鱼跳转
六、安全防范方案
1. 针对ARP欺骗的防御手段
1. 静态绑定ARP:手动将网关IP与MAC做静态绑定,拒绝动态伪造的ARP更新
2. 定期清理ARP缓存:定期执行 arp -d 清除无效缓存
3. 交换机开启DAI(动态ARP检测)、IP+MAC地址绑定
4. 安装专业防火墙、终端安全防护软件
5. 谨慎连接陌生、公共免费WiFi,公共局域网极易遭受此类攻击
2. 针对DNS劫持的防御手段
1. 手动配置公共可信DNS(如223.5.5.5、114.114.114.114)
2. 锁定本机HOSTS文件,禁止恶意篡改
3. 浏览器开启HTTPS+DNS over HTTPS(DoH)加密DNS查询
4. 定期查杀恶意软件、木马程序
5. 访问网站认准HTTPS安全锁标识,警惕跳转陌生站点
七、写在最后
ARP与DNS劫持是网络攻防入门的必学内容,弄懂这个实验,就能透彻理解局域网通信的底层脆弱点。技术本身无善恶,守住法律与道德底线,用技术守护网络安全,才是网络安全从业者、爱好者的初心。
后续还可以拓展:HTTPS降级、图片嗅探、密码抓包、网页注入等进阶玩法,感兴趣可以持续关注~
博主补充小提示
实验遇到不通的常见坑:
1. 虚拟机和攻击机要保证在同一网段,能互相ping通
2. Kali记得关闭防火墙,放行网卡转发
3. ettercap权限需要root,所有命令务必 sudo 或者直接root用户运行