Metasploitable2靶机安装配置与渗透测试入门实战指南
1. 靶机Metasploitable2安装前必须搞清楚的事1.1 为什么选择Metasploitable2作为入门靶机搞安全测试这行绕不开的一件事就是得有个合法的、能随便折腾的练习环境。Metasploitable2就是这么一个东西——它是一台故意留了一堆漏洞的Linux虚拟机从弱口令到远古版本的Web应用从后门程序到配置错误基本上把常见的安全问题都给你摆好了。你拿它练手不用担心法律风险也不用担心把生产环境搞崩。我见过太多新手一上来就去打真实站点结果要么是找不到入口要么是打进去了不知道该干嘛。Metasploitable2的好处在于它的漏洞是“设计好的”每一个都有明确的利用路径你可以在上面反复练习信息收集、漏洞扫描、渗透利用、权限维持这一整套流程。而且它跟Kali Linux是天然搭配——Kali里预装的那些工具很多就是冲着这类靶机设计的。这台靶机默认跑着不少服务FTP、SSH、Telnet、HTTP、MySQL、PostgreSQL、Tomcat、Samba等等端口开放得相当慷慨。你装好之后用Nmap一扫能看到一大堆开放端口每个端口背后都可能是一个突破口。对于刚接触渗透测试的人来说这种“处处是入口”的环境能让你快速建立信心同时也能帮你理解一个核心概念攻击面是怎么形成的。1.2 安装方式的选择为什么用VMware而不是VirtualBox热词里提到了VMware和Kali Linux这其实暗示了一个常见的搭配方案。Metasploitable2官方提供的是VMware格式的虚拟磁盘文件.vmdk虽然VirtualBox也能通过转换来使用但直接用VMware Workstation是最省事的。VMware Workstation Pro和Player的区别这里简单说一下Pro版本支持快照、克隆、虚拟网络编辑器等高级功能Player版本功能受限。如果你只是装个靶机练手Player其实够用但如果你打算做多靶机实验、搭建复杂网络拓扑建议还是用Pro。网上有很多关于VMware许可证的讨论这里不展开你懂的。选择VMware的另一个原因是网络配置更灵活。Metasploitable2需要跟你的攻击机通常是Kali在同一个网络里才能互相通信。VMware的NAT模式和仅主机模式都能满足这个需求而且配置起来比VirtualBox直观。我个人的习惯是攻击机用NAT模式能上网更新工具靶机用仅主机模式隔离防止意外然后通过VMware的虚拟网络编辑器把两者放到同一个网段。1.3 安装前需要准备什么在开始之前你需要确认几样东西VMware Workstation已经安装好版本不限但建议用较新的版本兼容性更好。Metasploitable2的虚拟磁盘文件从官方渠道获取通常是一个压缩包解压后得到.vmdk文件和若干配置文件。Kali Linux虚拟机作为攻击机已经安装并配置好网络。如果你还没装Kali可以先用物理机上的Kali但虚拟机方案更干净。足够的磁盘空间Metasploitable2解压后大概8-10GB加上Kali建议预留至少50GB。内存靶机分配512MB-1GB就够了Kali建议2GB以上。注意Metasploitable2的默认密码是msfadmin/msfadmin这个后面会反复用到。另外这台靶机不要暴露在公网它的漏洞是故意留的被人扫到就是活靶子。2. Metasploitable2虚拟机的创建与配置细节2.1 新建虚拟机与磁盘挂载打开VMware Workstation选择“创建新的虚拟机”然后选“自定义高级”。这一步不要选典型因为典型模式会自动帮你做很多决定后面改起来麻烦。硬件兼容性保持默认就行。到了“安装客户机操作系统”这一步选择“稍后安装操作系统”。为什么因为Metasploitable2不是通过ISO安装的它已经是一个装好的系统你只需要把它的磁盘挂上去。客户机操作系统选“Linux”版本选“Ubuntu”Metasploitable2基于Ubuntu 8.04。虚拟机名称和位置自己定建议放在一个单独的目录里方便管理。处理器配置1个处理器、1个核心就够了这靶机不需要性能。内存给512MB如果宿主机内存充裕给1GB也行但没必要。网络类型这一步很关键。我建议选“仅主机模式Host-Only”这样靶机只能跟宿主机和同一仅主机网络里的其他虚拟机通信不会跑到你的局域网里。如果你后面需要靶机上网比如更新软件可以临时改成NAT但练手阶段没必要。到了“选择磁盘”这一步选“使用现有虚拟磁盘”然后浏览到你解压出来的.vmdk文件。VMware可能会提示你“此磁盘文件较大是否转换为新格式”选“保持现有格式”就行转换会浪费时间。2.2 网络配置与连通性验证虚拟机创建好之后先别急着开机。打开虚拟机的设置确认网络适配器是“仅主机模式”。然后打开VMware的“虚拟网络编辑器”看看VMnet1仅主机模式默认用的的网段是什么比如192.168.xxx.0/24。现在启动Metasploitable2。开机过程会刷一堆日志最后停在登录提示。用msfadmin/msfadmin登录。登录后第一件事是查IPifconfig你会看到类似192.168.xxx.128的地址。记下这个IP。接下来启动你的Kali虚拟机同样查一下IP。如果Kali也是仅主机模式应该在同一网段。然后从Kali ping一下靶机ping 192.168.xxx.128通了就说明网络没问题。如果不通检查两边的网络适配器设置确认都在同一个VMnet下。有时候VMware的DHCP会抽风重启一下虚拟机或者手动设置静态IP都能解决。实操心得我习惯在靶机开机后先拍个快照命名“初始状态”。这样后面不管怎么折腾随时能回滚。Metasploitable2被玩坏了是常事有快照能省很多重装时间。2.3 首次登录后的基础检查登录靶机后花几分钟熟悉一下环境。看看跑了哪些服务netstat -tlnp你会看到一堆监听端口。再试试几个关键服务Web服务浏览器访问http://靶机IP应该能看到一个默认页面下面有Mutillidae、DVWA等漏洞应用的链接。SSH从Kali执行ssh msfadmin靶机IP密码msfadmin能登进去就说明SSH正常。MySQLmysql -u root -p密码为空能进就说明数据库服务正常。这些检查看起来简单但能帮你确认靶机的基本功能是完整的。有些人在安装过程中会遇到服务没起来的情况多半是网络配置或者磁盘挂载有问题。3. 从攻击机视角验证靶机可用性3.1 用Nmap做一次完整的信息收集靶机装好了但能不能打还得从攻击机这边验证。打开Kali用Nmap扫一遍nmap -sV -T4 192.168.xxx.128这个命令会做版本探测速度等级4。你会看到类似这样的结果端口服务版本21/tcpftpvsftpd 2.3.422/tcpsshOpenSSH 4.7p123/tcptelnetLinux telnetd25/tcpsmtpPostfix smtpd80/tcphttpApache httpd 2.2.8139/tcpnetbios-ssnSamba smbd 3.X445/tcpnetbios-ssnSamba smbd 3.X3306/tcpmysqlMySQL 5.0.51a5432/tcppostgresqlPostgreSQL 8.38180/tcphttpApache Tomcat/Coyote看到vsftpd 2.3.4了吗这个版本有个著名的后门后面你会用到。OpenSSH 4.7p1也是老版本有很多可玩的点。Apache 2.2.8、MySQL 5.0.51a、PostgreSQL 8.3全是远古版本。这就是Metasploitable2的价值——它把时间冻结在了2008年左右让你能练习针对老版本漏洞的利用。3.2 用Metasploit快速验证几个经典漏洞Kali里预装了Metasploit Framework。启动它msfconsole等它加载完试试vsftpd后门use exploit/unix/ftp/vsftpd_234_backdoor set RHOSTS 192.168.xxx.128 run如果成功你会直接拿到一个shell。这个后门是vsftpd 2.3.4在编译时被植入的当用户名以“:)”结尾时会触发一个绑定在6200端口的shell。Metasploit的模块会自动处理这些细节。再试试Samba的漏洞use exploit/multi/samba/usermap_script set RHOSTS 192.168.xxx.128 run这个漏洞利用的是Samba的“用户名映射脚本”配置错误允许远程命令执行。成功的话又是一个shell。这两个漏洞只是开胃菜。Metasploitable2上还有Tomcat的管理后台弱口令、Mutillidae的SQL注入、DVWA的各种漏洞等等。你可以在上面花几周时间把常见的Web漏洞和系统漏洞都过一遍。注意事项每次拿到shell后记得用whoami和id确认权限。有些漏洞直接给root有些给普通用户。权限不同后续的操作路径也不同。3.3 用Wireshark分析靶机流量热词里提到了“使用wireshark查看并分析靶机桌面下的capture.pcapng数据包文件”这其实是一个典型的流量分析练习场景。Metasploitable2的桌面或者某个目录下可能会放一些预置的pcap文件供你练习分析。在Kali上打开Wireshark选择监听VMnet1接口然后从Kali对靶机发起一些操作比如Nmap扫描、SSH登录、HTTP请求。你会看到大量的数据包。重点看这几个TCP三次握手确认连接建立过程。HTTP请求和响应看有没有明文传输的敏感信息。FTP登录vsftpd的登录过程是明文的用户名和密码直接可见。如果你拿到一个pcap文件想找“黑客的IP地址”思路是这样的先看流量里有哪些IP在跟靶机通信排除掉正常的网关和广播地址剩下的可疑IP就是攻击者。然后看这个IP对靶机做了什么——扫了哪些端口、发了什么payload、有没有成功建立shell。Wireshark的“统计”菜单里有“对话”和“端点”选项能快速梳理出通信关系。这个练习的价值在于它让你从防守方的视角看攻击行为。你平时是攻击者现在反过来分析流量能更深刻地理解攻击者的行为模式也能学会怎么从流量里发现异常。4. 安装和使用中的常见问题与排查4.1 虚拟机无法启动或黑屏这是最常见的问题。原因通常有几个磁盘文件损坏重新解压一遍确保.vmdk文件完整。VMware版本不兼容老版本的VMware可能不支持某些磁盘格式升级VMware试试。硬件虚拟化未开启进BIOS确认Intel VT-x或AMD-V是开启状态。内存不足宿主机内存被其他程序占满关掉一些再试。如果开机后黑屏但能看到光标闪烁多半是显示驱动的问题。在虚拟机设置里把“加速3D图形”关掉或者把显存调小一点。4.2 网络不通的排查思路网络问题占了我遇到问题的八成。排查顺序是这样的确认两边网络模式一致都在仅主机模式或者都在NAT模式。一个仅主机一个NAT肯定不通。确认IP在同一网段ifconfig看两边IP前三位要一样。检查VMware虚拟网络编辑器确认VMnet1的DHCP是开启的子网地址没被改过。防火墙Kali的防火墙默认是关闭的但如果你开过检查一下规则。重启网络服务在靶机上sudo /etc/init.d/networking restart在Kali上sudo systemctl restart networking。如果还是不通试试把两边都改成桥接模式让它们从你的路由器拿IP。但这样靶机就暴露在局域网里了练完记得改回来。4.3 服务启动失败的修复方法有时候靶机开机后某些服务没起来。比如Apache没启动你访问80端口是拒绝连接。登录靶机手动启动sudo /etc/init.d/apache2 start sudo /etc/init.d/mysql start sudo /etc/init.d/postgresql start sudo /etc/init.d/tomcat5.5 start如果启动报错看日志tail -f /var/log/apache2/error.log常见原因是磁盘空间满了或者配置文件被改坏了。如果是磁盘满清理一下/var/log下的日志文件。如果是配置问题从快照恢复是最快的。4.4 常见问题速查表问题现象可能原因解决方法虚拟机开机黑屏3D加速冲突关闭3D加速减小显存ping不通靶机网络模式不一致统一为仅主机或NAT80端口拒绝连接Apache未启动手动启动apache2服务MySQL无法登录服务未启动或密码错误启动服务空密码尝试Nmap扫描结果不全防火墙拦截检查靶机iptables规则Metasploit利用失败payload不匹配换payload或检查目标架构快照恢复后网络异常MAC地址变化重新生成MAC或手动设IP避坑技巧每次做重大操作前拍快照这是铁律。Metasploitable2被玩坏的概率极高有快照能让你大胆尝试。另外把靶机的IP记在便签上或者写到Kali的/etc/hosts里省得每次都要查。5. 靶机环境的进阶玩法与扩展思路5.1 多靶机组网练习一台Metasploitable2玩熟了之后可以试试多靶机组网。比如再装一台DVWA靶机、一台OWASP BWA把它们放在同一个仅主机网络里模拟一个小型内网。你从Kali出发先打下一台然后以它为跳板攻击下一台。这种“横向移动”的练习比单机靶机更接近真实场景。VMware的克隆功能在这里很好用。你可以把Metasploitable2克隆一份改个IP就多了一台靶机。但注意克隆后要重新生成MAC地址否则网络会冲突。5.2 结合Wireshark做流量分析专项训练前面提到了Wireshark分析pcap文件这其实可以发展成一个专项训练。你可以在Kali上开Wireshark抓包然后从另一台机器对靶机发起各种攻击——端口扫描、暴力破解、SQL注入、文件上传——然后分析每种攻击在流量层面的特征。比如端口扫描大量SYN包目标端口递增或随机。暴力破解同一端口的大量连接尝试每次尝试的间隔很短。SQL注入HTTP请求里带有单引号、union select等关键字。文件上传POST请求里带有multipart/form-data内容包含可执行代码。这种训练能帮你建立“攻击行为在流量上的映射”对你以后做应急响应或者入侵检测很有帮助。5.3 从靶机到CTF的过渡Metasploitable2打熟了可以试试CTF靶机比如热词里提到的crossroads1、ctf4、earth、looz、vikings、webmachine这些。这些靶机通常比Metasploitable2更难需要你综合运用信息收集、漏洞挖掘、权限提升等技能。过渡的时候注意几点Metasploitable2的漏洞是“摆好的”CTF靶机需要你自己找。Metasploitable2的权限提升通常很简单CTF靶机可能需要内核提权、SUID提权等技巧。Metasploitable2的服务版本很老CTF靶机可能用的是较新版本需要你分析代码或配置。但不管怎样Metasploitable2打下的基础是通用的信息收集的思路、漏洞利用的流程、权限维持的方法这些在哪个靶机上都用得上。5.4 靶机环境的备份与迁移如果你在Metasploitable2上做了很多配置比如装了新工具、改了密码、加了用户你可能想把这个状态保存下来。VMware的快照是最简单的方案但快照多了会占空间。另一种方案是导出OVF格式这样可以在不同机器之间迁移。导出方法文件菜单 - 导出为OVF。导出的文件包括.ovf、.vmdk和.mf拷到另一台机器上导入就行。注意导入后要重新配置网络因为MAC地址会变。个人体会我习惯在完成一个阶段的练习后把靶机状态导出备份然后重置到初始状态开始下一轮。这样既能保留成果又能保持环境的干净。Metasploitable2的磁盘不大备份成本很低。6. 关于靶机安装这件事的一些个人经验装Metasploitable2这件事技术含量其实不高但细节很多。我见过不少人卡在第一步——虚拟机建好了开机黑屏或者网络配好了ping不通或者服务起来了但Metasploit利用失败。这些问题单独看都不难但凑在一起就容易让人烦躁。我的建议是按顺序来别跳步。先确认虚拟机配置正确再确认网络连通再确认服务正常最后再开始攻击练习。每一步都验证过了后面出问题的概率就小很多。另外别怕重装。Metasploitable2的安装过程很快解压、挂载、开机十分钟搞定。如果你觉得环境有问题与其花一小时排查不如花十分钟重装。当然前提是你有原始文件。最后说一个容易被忽略的点靶机的时钟。Metasploitable2的时钟可能跟宿主机不一致这会影响某些基于时间的漏洞利用比如Kerberos相关的。如果遇到奇怪的问题检查一下date命令的输出必要时手动同步一下。这个靶机装好之后你可以玩很久。从最基础的Nmap扫描到Metasploit利用到Wireshark流量分析再到多靶机组网每一步都有东西可学。关键是动手别只看教程。看十遍不如自己打一遍踩过的坑才是真正记住的东西。