24资源网

24资源分享网,分享资源,收集整理资源,有态度的分享资源网

背   景

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

               
发表评论