从零开始学习网络安全中间人攻击

内网 MITM 中间人攻击完整实操|ARP 毒化 + DNS 劫持钓鱼全过程

前言

在内网渗透、等保测评、安全实训中,中间人(MITM)攻击是最经典、最容易复现的基础攻击手段。利用 ARP 协议无身份校验、DNS 解析可篡改两大底层漏洞,攻击者能悄无声息劫持内网全部流量,搭建钓鱼页面窃取账号密码。本文结合虚拟机实验环境,完整拆解攻击原理、Kali Ettercap 实操流程、攻击危害与企业防御方案。

温馨提示:本文仅用于安全学习、授权实验环境演练,严禁在未授权内网、公网实施任何攻击行为,违规操作承担法律责任。

一、中间人攻击核心底层原理

1. ARP 欺骗(ARP 毒化)底层逻辑

ARP 协议作用:IP 地址 ↔ MAC 物理地址映射,局域网通信依靠 MAC 转发数据包。 协议致命缺陷:无身份认证机制,主机收到 ARP 应答包直接更新本地 ARP 缓存,不会校验报文发送方真实性。 攻击者持续发送伪造 ARP 广播包:

  • 对靶机:伪造网关 MAC = 攻击者 MAC
  • 对网关 / 服务器:伪造靶机 MAC = 攻击者 MAC 双向毒化完成后,靶机与服务器所有网络流量都会先流经攻击者主机,实现流量监听、篡改。

2. DNS 劫持(DNS 欺骗)联动攻击逻辑

单纯 ARP 劫持只能抓流量,结合dns_spoof插件可篡改域名解析应答: 用户访问合法域名(如test.com)时,DNS 查询包被拦截,攻击者返回伪造 A 记录,将域名解析到 Kali 钓鱼网站 IP,用户浏览器自动跳转仿冒登录页面,输入账号密码全部留存。

3 整套攻击链路总结

攻击者 ARP 双向毒化劫持流量 → 拦截 DNS 请求 → 返回伪造解析记录 → 受害者跳转钓鱼站点 → 窃取登录凭据。

二、实验环境搭建

环境拓扑(三台虚拟机同一桥接 / NAT 网段)

  1. Attacker-PC:Kali Linux(攻击机,Ettercap+Apache 钓鱼)
  2. DC-Server:Windows Server 2025 域控、IIS 内网站点
  3. Client-PC:Win7 域内客户机(受害靶机) 网段示例:192.168.52.0/24

前置准备

  1. Kali 关闭防火墙,放行 80 端口 Apache 服务;
  2. 搭建仿冒登录钓鱼页面;
  3. 靶机、攻击机互通,无拦截策略。

三、分步实操:Ettercap 实现 ARP+DNS 劫持

步骤 1:搭建 Apache 钓鱼网站(Kali)

  1. 启动 Web 服务

bash

运行

systemctl start apache2 systemctl enable apache2 netstat -anptl | grep 80 # 验证80端口监听
  1. 修改站点首页/var/www/html/index.html编写带账号密码输入的仿后台登录页面,后端脚本接收并保存输入的账号密码到日志文件;
  2. 浏览器访问 Kali 本机 IP,确认钓鱼页面正常加载。

步骤 2:配置 Ettercap DNS 欺骗规则

  1. 进入 Ettercap 配置目录,编辑劫持规则文件

bash

运行

cd /etc/ettercap vim etter.dns
  1. 在文件末尾添加劫持规则

plaintext

test.com A 192.168.~~~ # 替换为你的Kali本机IP *.test.com A 192.168.~~~
  • 含义:所有访问test.com及其子域名的解析请求,全部指向攻击机 IP
  1. 保存退出 vim:按ESC,输入:wq

步骤 3:图形化 Ettercap 实施中间人攻击

  1. 启动图形界面

bash

运行

ettercap -G
  1. 选择网卡 eth0,点击对勾进入主界面;
  2. 扫描全网存活主机:Hosts → Scan for hosts,扫描完成打开主机列表;
  3. 设置双向欺骗靶机:
    • Target1:DC-Server(域名服务器 / 网关)IP
    • Target2:Client-PC 受害主机 IP
  4. 开启 ARP 毒化攻击:顶部MITM → ARP Poisoning,默认双向毒化,确认启动;
  5. 加载 DNS 欺骗插件:Plugins → Manage plugins,双击dns_spoof启用,插件旁出现 * 代表激活成功。

步骤 4:靶机验证劫持效果

  1. Win7 CMD 刷新 DNS 缓存,清除旧解析记录

cmd

ipconfig /flushdns
  1. ping test.com,返回 IP 为 Kali 攻击机地址,证明 DNS 解析被篡改;
  2. 浏览器访问http://test.com,页面跳转 Kali 搭建的钓鱼登录站;
  3. 在钓鱼页面输入账号密码,Kali 后台日志可抓取完整凭据。

四、中间人攻击真实危害

  1. 凭据窃取:内网 OA、后台、邮箱、域账号密码明文捕获;
  2. 页面篡改:正常网页植入木马、广告、恶意下载链接;
  3. 会话劫持:窃取 Cookie,无需密码直接登录用户账号;
  4. 业务中断:单向 ARP 欺骗可制造断网故障;
  5. 横向渗透:劫持流量获取内网服务地址,进一步攻击服务器。

五、企业内网防御方案(运维 / 等保必看)

1. 二层交换机防护(核心防御)

  • 开启DAI 动态 ARP 检测,校验 ARP 报文合法性,拦截伪造 ARP 包;
  • 部署 DHCP Snooping,绑定 IP-MAC 静态映射,杜绝 ARP 缓存篡改。

2. 终端 & 服务器加固

  1. 关键服务器、网关配置静态 ARP 绑定,拒绝动态更新缓存;
  2. 终端安装 EDR 安全软件,监控异常 ARP 广播;
  3. 优先使用 HTTPS 全站加密,HTTPS 流量无法简单劫持(无证书无法解密)。

3. DNS 安全加固

  1. 内网部署 DNSSEC,解析记录带数字签名,中间人无法篡改应答;
  2. 禁用不必要域名转发,使用加密 DNS DoH/DoT;
  3. 定期监控异常域名解析、批量跳转行为。

4. 网络准入管控

企业内网部署 NAC 准入控制,非法设备接入直接隔离,从源头杜绝攻击者主机接入局域网。

六、实验总结

  1. ARP 无认证是中间人攻击底层根源,DNS 配置不当放大劫持危害;
  2. Ettercap 一站式完成扫描、ARP 毒化、DNS 劫持,是内网渗透入门核心工具;
  3. HTTP 网站极易被劫持,HTTPS 能大幅提升攻击门槛;
  4. 防御核心:交换机安全特性 + 静态 ARP + 加密传输 + 网络准入多层防护。

拓展思考题(学习自测)

  1. 只做单向 ARP 欺骗会出现什么效果?双向欺骗的作用是什么?
  2. 为什么 HTTPS 网站无法通过本实验手段窃取账号?
  3. 发现内网存在 ARP 欺骗攻击,第一时间排查哪些设备?

博客尾部合规声明

本文仅用于网络安全学习、授权实验室安全演练,任何未经授权对企业、公共网络实施中间人劫持、流量窃听、钓鱼攻击均违反《网络安全法》《刑法》相关规定,请勿用于非法场景。