背 景
ProFTPD是一个开源的,跨平台的FTP服务软件,支持大多数类Unix系统和Windows,是Unix平台下最流行的FTP服务软件之一。很多Unix和Linux发行版本系统都预装了这个软件,除此之外,很多流行的商业软件和网站也都使用了ProFTP服务器。
ProFTPD近日爆出了一个越权访问漏洞,这个漏洞在某些条件下可以导致敏感信息泄露或者代码执行。这个漏洞的CVE编号是CVE-2019-12815。这个漏洞存在于proFTPD的mod_copy.c文件中。Mod_copy.c文件是个第三方模块,但是大部分的ProFTPD发行版本都默认启用了这个模块。这个模块提供了2个命令——site cpfr和site cpto ,用户使用这2个命令可以把ftp服务器上的文件从一个目录拷贝到另外一个目录。
漏洞重现根据http://bugs.proftpd.org/show_bug.cgi?id=4372漏洞报告,我们需要配置proftpd.conf文件内容,让proftp服务器开启anonymous访问。
如下图所示,我给anonymous用户开启了读权限,禁用了写权限。并且对/test/目录禁用了读写权限。
如下图所示,是对proftp服务器进行上传和下载文件的截图。
我们是以anonymous用户登录的,从截图可以看到,从ftp服务器下载文件是允许的,但是向ftp服务器上传文件是禁止的。这和proftpd.conf配置文件设置的权限控制策略是吻合的。
但是,site cpfr和site cpto命令在拷贝文件时却没有遵守 proftpd.conf配置文件的权限控制策略,虽然我们只是anonymous用户,并没有写入文件的权限,但是依然可以利用site cpto命令向ftp服务器写入文件。
从上图可以看到,我们成功复制了一个crash2文件。如果一个anonymous用户恶意的写入很多crash文件,那么可以造成ftp服务器磁盘空间被占满,正常有写权限的用户就不能向ftp服务器写入文件。
除了恶意塞满磁盘文件之外,我们还可以利用site cpfr命令越权访问一些目录文件。如下图所示,anonymous用户是没有权限下载/test/目录下的文件的,但是通过site cpfr和site cpto把/test/test.php文件拷贝到ftp的根目录(我们有根目录的下载权限),那么我们就能成功获取test.php文件内容了。利用这,我们可以访问很多敏感文件。
这个漏洞在某些条件下也可能造成远程代码执行,如果proftp服务器的某个目录可以被web服务器访问 ,我们通过漏洞向该目录写个php文件,那么通过web服务器访问时就可以执行php代码了。
补丁分析补丁链接如下:
https://github.com/proftpd/proftpd/pull/816/commits/71cd49ea82313f78d52a52d0c628a3770dc96608
从补丁代码可以看到,对copy_cpfr和cpy_cpto函数进行了修补,当执行copy_cpfr函数时,要确保用户有目录的读权限,当执行copy_cpto 函数时,要确保用户有对应目录的写权限。
MODRET copy_cpfr(cmd_rec *cmd) {…cmd_name = cmd->argv[0]; pr_cmd_set_name(cmd, “SITE_CPFR”); if (!dir_check(cmd->tmp_pool, cmd, G_READ, path, NULL)) {int xerrno = EPERM;…}…}MODRET copy_cpto(cmd_rec *cmd) {… cmd_name = cmd->argv[0]; pr_cmd_set_name(cmd, “SITE_CPTO”); if (!dir_check(cmd->tmp_pool, cmd, G_WRITE, to, NULL)) { int xerrno = EPERM;…}…}参考链接
https://github.com/proftpd/proftpd/pull/816/commits/71cd49ea82313f78d52a52d0c628a3770dc96608
https://www.secpod.com/blog/alert-proftpd-server-improper-access-control-vulnerability-cve-2019-12815/
https://www.bleepingcomputer.com/news/security/proftpd-vulnerability-lets-users-copy-files-without-permission/
http://bugs.proftpd.org/show_bug.cgi?id=4372
-
扫码下载安卓APP
-
微信扫一扫关注我们
微信扫一扫打开小程序
手Q扫一扫打开小程序
-
返回顶部
发表评论