ARP欺骗实验:用Cain抓取telnet与FTP明文口令

发布时间:2026/9/30 10:12:04
ARP欺骗实验:用Cain抓取telnet与FTP明文口令 简介西南科技大学《网络攻防与对抗》实验三的ARP欺骗实验报告是一份面向信息安全、网络工程专业学生的验证型实验文档聚焦ARP协议原理与中间人攻击的实施验证。压缩包共包含1个doc文件大小约1.99MB为实验报告的完整文档可直接用于课程学习或报告模板参考。报告以Windows XP为攻击机、Windows 7为被攻击机基于Cain与Winpcap工具详尽记录了同子网环境下主机扫描、ARP缓存欺骗规则设置、telnet/ftp服务连接与数据包捕获等操作过程并通过ARP缓存比对确认网关MAC地址被成功替换体现了攻击从配置到生效的完整链路。除核心实验步骤外文档还包含实验目的、环境设计、结果分析、讨论与自评等模块并附有首次配置telnet/ftp服务及地址调整时的排错思路对初学网络攻防的读者尤为友好。该资源已有2380人学习下载适合网络攻防课程学生、安全竞赛选手及对协议安全感兴趣的技术爱好者用于对照实操、完善实验报告或理解ARP欺骗的底层机制。1. ARP 欺骗实验抓到 telnet 和 FTP 明文口令才算真的会了ARP 欺骗这个实验名字听着吓人实际做完你会发现核心就一句话让被攻击者以为攻击者才是网关所有流量先绕一圈再转出去。这篇笔记拆的是西南科技大学网络攻防与对抗实验三的完整过程用 Cain 工具在两个 Windows 虚拟机之间复现 ARP 欺骗并把 telnet、FTP 的账号密码明文抓出来。它适合两类人一是正在做网络攻防课程实验、卡在“工具装了但不知道下一步点哪”的学生二是想快速在虚拟机里验证 ARP 欺骗原理、顺便把手里的实验报告整理成可复现步骤的安全从业者。注意这个实验只适合在自己搭的虚拟机环境里做别往真实网络里乱试。2. 环境与选型为什么是 Cain Winpcap同网段又意味着什么2.1 实验拓扑两台主机同网段的真实含义先把环境说清楚。这个实验一共三台角色攻击者、被攻击者、网关。在报告里攻击者是 XPIP 为 192.168.184.134被攻击者是 Win7IP 为 192.168.184.131网关是 192.168.184.2。两个虚拟机都在 NAT 网段 VMnet8 下和网关同处一个子网。角色系统IP 地址安装工具攻击者Windows XP192.168.184.134Cain、Winpcap被攻击者Windows 7192.168.184.131无需安装任何工具网关VMware NAT 网关192.168.184.2无需操作同一网段这个条件不是随便写的。ARP 协议工作在数据链路层只能通过广播寻找同一物理网段内的设备。如果攻击者和被攻击者不在一个子网ARP 请求根本发不到目标欺骗在第一步就失败了。所以你在自己电脑上复现时先打开两个虚拟机的ipconfig /all确认 IP 前三位一致、网关一致再继续往下做。我一般还会在两边互相ping一下确认网络通同时也能把 ARP 缓存预热起来。2.2 工具选型Cain 为什么难替代Winpcap 在其中的定位Cain全称 Cain Abel是一款经典的 Windows 密码恢复与网络嗅探工具。它能把扫描在线主机、构造伪造 ARP 包、捕获明文口令这几步整合到一个图形界面里非常适合验证性实验。arpsoof 和 ettercap 在 Linux 上功能更强但在 Windows 环境里Cain 仍然是最直接的选择——不需要写脚本不需要交叉编译打开界面就能操作。Winpcap 则是 Cain 能工作的底层驱动。它负责让应用程序绕过系统协议栈直接读取和发送数据链路层的原始数据帧。没有 WinpcapCain 连网卡都打不开更别说抓包和发伪造 ARP。这也是为什么实验环境里 XP 上必须装 Winpcap 的原因。装的时候注意版本Winpcap 4.1.3 是兼容性较好的一版新版本反而不一定比它稳定。2.3 环境核查清单动手之前先过一遍我在复现这个实验时会按下面这个顺序做一次快速检查避免后面把时间浪费在“不知道哪一步没做”上。ipconfig /all ping 192.168.184.2第一行确认两台虚拟机的 IP 是否在同一网段第二行确认到网关是通的。然后检查两件事一是两台虚拟机的防火墙都要关掉——XP 的防火墙默认关闭可以不管但 Win7 的防火墙默认开启它不会拦截 ARP 报文却可能干扰 telnet 和 FTP 的连接二是确认 XP 已经开启了 telnet 和 FTP 服务否则后面测试时目标主机会直接拒绝连接。3. Cain 实操从扫描 MAC 到开启欺骗的完整配置3.1 启动 Cain 前的准备兼容模式与网卡选择Cain 4.9.2 在 Win7 上直接运行偶尔会闪退但在 XP 上基本稳定。如果你用的是更高版本的系统右键 Cain 的 exe选择“属性 → 兼容性 → 以 Windows XP SP3 兼容模式运行”这一步能解决大部分闪退问题。打开 Cain 后第一件事不是去配欺骗而是先选定网卡。Cain 主界面的 Sniffer 标签页里点击最左侧的网卡图标会弹出选择窗口这里要选中对应 VMnet8 的网卡而不是物理网卡。选错的话后面扫描时会发现旁边的主机永远不出现。3.2 扫描并确认 MAC 地址选完网卡后点击工具栏上的“扫描”图标一个带放大镜的网卡图标在弹出的窗口里一般保持默认的“All”即可。Cain 会通过 ARP 广播扫描当前网段下所有活动主机。稍等几秒左侧列表中就会出现 192.168.184.131Win7和 192.168.184.2网关并显示各自对应的 MAC 地址。这一步很重要不要跳过。欺骗规则里要用到网关和目标的 IP而 Cain 只有在扫描完成后才知道这两个地址真实存在。扫描结果出来后你可以顺手在 XP 上执行arp -a看一眼当前缓存和 Cain 扫到的 MAC 对比确认工具看到的和系统缓存是一致的。3.3 配置欺骗规则为什么左边选网关、右边选被攻击者扫描完成后切到 Cain 顶部的 ARP 标签页注意是 ARP不是 APR。这个页面刚进去是空的需要手动添加一条欺骗规则。点击页面上方的加号按钮会弹出一个双栏选择窗口。左侧是所有可能被“冒充”的地址这里选网关 192.168.184.2右侧是欺骗目标选 192.168.184.131Win7。这个方向不要搞反左侧代表“受害者认为你在冒充谁”右侧是“谁来上当”。选完后列表里会出现一行记录左侧是网关地址右侧是目标地址。到这里欺骗规则已经注册到了 Cain 里。Cain 接下来要做的是持续向 Win7 发送伪造的 ARP 应答告诉它“网关 192.168.184.2 的 MAC 地址其实是 XP 的 MAC”。3.4 开启欺骗黄色图标与状态观察规则配好后点击 ARP 页面工具栏上的黄色图标一个带弧线的按钮Cain 就正式开始发送伪造 ARP 包了。这个图标按下去之后会一直保持高亮表示欺骗持续进行中。此时回到 Win7 上执行arp -a你会看到网关 192.168.184.2 对应的 MAC 已经变成了 XP 的 MAC而不是它本来的地址。这就是欺骗成功的直接证据——Win7 已经把 XP 当成了网关接下来 Win7 发往互联网的所有数据包都会先经过 XP。Cain 主界面的下方是捕获列表开启欺骗后Win7 的流量会陆续出现在这里。但先别急着看结果流量必须在账号密码不一定同步出现要等我们做一次实际的登录操作。4. 抓包验证telnet 与 FTP 口令如何被截获的4.1 在 XP 上开启 telnet 服务并创建账号XP 默认没有开启 telnet 服务需要手动启动。在 XP 的命令行里依次执行下面这几条net start telnet net user link link123 /add net localgroup administrators link /add第一行启动 telnet 服务默认监听 23 端口。第二行创建一个名为 link、密码为 link123 的本地用户。第三行把这个用户加入管理员组这一步不是可选的——telnet 服务默认只允许管理员组的账号远程登录不加组的话后面 Win7 连接时会被直接拒绝。启动后可以用net start | findstr telnet确认服务是否在运行列表里。如果提示服务名无效说明 telnet 组件没有安装需要到“控制面板 → 添加或删除程序 → 添加 Windows 组件”里勾选 Telnet 服务端。4.2 Win7 发起 telnet 连接并观察抓包结果在 Win7 上打开命令行执行telnet 192.168.184.134连接成功后系统会提示输入用户名和密码输入刚才在 XP 上创建的 link / link123回车后就能看到 XP 的命令提示符说明 telnet 登录成功。这时候立刻切回 XP 上的 Cain在 ARP 页面下方的捕获区域或者 Passwords 标签里你会发现刚刚的 telnet 登录信息已经被记录下来了账号 link、密码 link123 直接以明文形式呈现。我当初在这一步停留了很久因为不知道“抓包结果应该长什么样”。实际上 Cain 抓到 telnet 口令后会在密码页面里显示一个条目协议显示 Telnet账号和密码一目了然。如果你在这一步什么都没看见先别急着怀疑 Cain确认一下当前是否还在欺骗状态以及 Win7 是否真的通过 XP 转发流量。4.3 FTP 服务的两个细节本地账号与二次验证FTP 的情况稍微复杂一点。XP 上需要先打开 Internet 信息服务IIS里的 FTP 服务命令行方式可以用net start ftpsvc启动后在 Win7 上执行ftp 192.168.184.134第一次登录时我以为 ftp 账号是自己在 XP 上创建的另一个用户输入后提示登录失败。这里报告里写得很清楚——结果是失败的Cain 依然把这次失败的账号尝试记录下来了然后改用 XP 本地账号比如 link登录立刻成功。这其实暴露了一个常见理解偏差XP 的 FTP 服务默认使用系统本地账号库做认证不是随意创建一个新用户就能登录的。你刚才在 XP 上用net user创建的 link本身就是 XP 系统里的合法本地账号自然可以登录 FTP。第一次失败是因为我临时编了个新账号而不是用现有账号。回到 Cain 一看这次成功的登录也被记录为一条 FTP 口令记录账号密码同样是明文。4.4 用 arp -a 完成最终验收抓包完成后最后一步是回到 Win7 上再执行一次arp -a重点看网关和 XP 的条目。如果实验成功网关 192.168.184.2 对应的 MAC 应该显示为 XP 的 MAC并且此时 Win7 仍然可以正常上网——因为 XPCain默认会开启流量转发把收到的包替 Win7 转给真实网关。这个现象和报告里“网关 ip 地址和虚拟机 ip 地址对应的 mac 地址值与虚拟机的 mac 地址值一样”的描述完全一致。到这里一个完整的 ARP 欺骗实验闭环就做完了欺骗生效、流量经过攻击者、明文口令被抓到、ARP 缓存被篡改。后面你需要做的就是把这几个关键步骤写进实验报告并截取对应的界面截图作为证据。5. 避坑与常见问题这次实验里我踩过的五个坑5.1 坑一Cain 扫描不到旁边的主机现象打开 Cain 扫描后列表里只有自己的 IP 和网关看不到 Win7。原因最常见的是网卡选错了。VMware 虚拟机里有 VMnet1、VMnet8、物理网卡多个选项如果选了物理网卡Cain 扫描的是真实网络的网段自然看不到虚拟机里的 Win7。另一个原因是 Winpcap 驱动没有正确安装Cain 读取不到数据链路层的数据。解决在 Cain 的 Sniffer 页面重新选择对应 VMnet8 的网卡确认“控制面板 → 网络连接”里 VMware Network Adapter VMnet8 的 IP 与两个虚拟机同网段。如果还是扫不到重装 Winpcap 4.1.3 后重启 Cain通常在几分钟内就能看到目标主机出现在列表里。5.2 坑二FTP 登录用了自建账号一直失败现象在 Win7 上执行ftp 192.168.184.134输入自以为“自己创建”的账号密码提示登录失败。原因FTP 服务走的是 Windows 本地账号认证不是随便编一个账号就能登进去。Cain 的抓包功能甚至会把这次失败的账号尝试也记录下来让人误以为“怎么失败也能抓到”。解决直接在 FTP 命令行输入 XP 系统里已存在的本地账号例如上面创建的 link / link123就能登录成功。更省事的办法是直接使用 Administrator 账号登录。我在做实验时还发现Cain 会把失败和成功两种尝试都记录到 Passwords 标签里所以判断是否截获成功要以账号密码同时出现为准而不是看有没有记录条目。5.3 坑三telnet 服务启动了但连接不上现象Win7 上执行telnet 192.168.184.134窗口一闪而过或提示“无法打开到主机的连接”。原因通常有两个。一个是 XP 的 telnet 服务未真正启动net start telnet执行时报错另一个是账号没有被加入管理员组telnet 服务默认只接受管理员组成员登录。解决先用net start telnet启动服务如果提示“服务名无效”说明 telnet 服务端组件未安装去 Windows 组件向导里勾选 Telnet 服务端。账号方面确保执行过net localgroup administrators link /add然后重新连接。我在第一次实验时漏了加组这一步连了三次都失败后来把用户加进管理员组才通。5.4 坑四ARP 欺骗开了但 Win7 的 arp -a 网关 MAC 没变现象Cain 的黄色图标已经点亮但回到 Win7 执行arp -a网关对应的 MAC 仍是原来的地址。原因ARP 缓存有生存时间Win7 的缓存里可能还留着之前的记录或者欺骗包发送后Win7 没有触发新的 ARP 请求去更新缓存。Cain 虽然一直在发伪造应答包但目标机器在没有请求的情况下未必会立即刷新缓存。解决在 Win7 上先执行两条命令刷新缓存并触发新的 ARP 请求arp -d ping 192.168.184.2第一条删除所有 ARP 缓存条目第二条通过 ping 触发一次到网关的通信Win7 这时会发起 ARP 广播查询网关的 MACCain 收到后补上伪造应答缓存自然被篡改。这个技巧在实验报告里不太容易看出来是实打实的踩坑经验。5.5 坑五Cain 抓到了“东西”但 Passwords 页面是空的现象欺骗已开启telnet 或 FTP 也登录成功了但 Cain 的 Passwords 标签里没有出现任何口令记录。原因Cain 的密码解析不是实时刷新的有时候信息已经被捕获但还没被解析出来。另一个可能是你只启动了嗅探没有启动 ARP 欺骗导致 Win7 的流量根本没有经过 XP。解决检查黄色图标是否是激活持续状态再切到 ARP 页面看下方是否持续有新数据条目出现。如果确实有流量但 Passwords 一直是空的可以把 Cain 顶部的标签切到 Sniffer再切回 ARP触发一次刷新。我遇到一次抓到了数据但密码区空白的情况重启 Cain 后重新执行了一次 telnet 登录记录就正常出现了。6. 进阶验证抓包质量与 ARP 缓存变化怎么确认6.1 验证技巧前后两次 arp -a 对比很多同学做完实验直接看 Cain 有没有抓到密码就算收工了但我习惯多做一个动作把欺骗前后的 ARP 缓存各存一份文本作为实验报告里最直观的对比证据。在未启动欺骗时先记录一次arp -a before.txt等欺骗开启后再记录一次arp -a after.txt fc before.txt after.txt正常情况下第二次记录里网关 192.168.184.2 的 MAC 会变成 XP 的 MAC而第一次保持真实网关的 MAC。这两份文件的差异比任何截图都能说明问题。如果两次结果一致说明欺骗没有完全生效回到 5.4 的坑去排查缓存刷新问题。6.2 抓包质量怎么看账号与密码是否对应Cain 的 Passwords 标签里Telnet 和 FTP 记录都会显示完整的账号名和密码。判断抓包是否有效关键看三点协议列是否清晰标记为 Telnet 或 FTP账号是否与你在 XP 上创建的用户一致密码是否以明文形式直接显示。如果三条都对上了这个实验的核心目标才算真正达成——ARP 欺骗导致未加密协议的明文口令泄露。从那以后我每次做 ARP 欺骗实验都强制自己走一遍“抓包前先arp -d刷新缓存、抓包后必须看到账号密码同时出现才算成功、最后用两份arp -a文本做对比”的流程三个验证点全部通过才写实验结论。这份完整实验报告的步骤和记录截图都在我整理的资源包里拿来对照做一遍能省下不少摸索时间希望帮到你。本文还有配套的精品资源点击获取