从RCE到涉及40000名员工的LDAP数据泄露
几个月前,我对一家法国公司进行了一次“义务”的安全审计,收获不小。
这家公司旗下有一个主网站,你可以在上面找到公司新闻,联系方式和下载该公司的相关文件。看起来就是一个很普通的,基本上所有公司都会拥有的网站。
在我对它进行测试时,发现当网站加载某些内容,会发送Ajax请求,涉及由两个参数,如下所示,是一个获取新闻内容的请求。
具体来说,就是从后端服务器获取最新的新闻内容。
远程代码执行
从以上所示的请求可以看出,貌似涉及到后端代码中的class
和function
。由此我们可以猜测,这个名为ajax
的端点可以指定使用的类和方法。
于是我开始了fuzz,尝试了很多stdClass
类和方法,但没有任何惊喜。
这时,我突发奇想,直接删除参数__class
会怎样呢?于是,我把参数__class
删除,并在__function
中填入phpinfo。
OK!让我们继续!
在PHP中有一个名为system的函数(https://secure.php.net/manual/fr/function.system.php),它能执行命令并返回结果。
system ( string $command [, int &$return_var ] ) : string
system函数是需要输入参数的。为此,我尝试在请求中加入函数的参数,这个参数称为__args
,这是我从其他页面得到的启发。
现在,我终于以执行任何UNIX命令了。接下来,我开始进一步搜索服务器,看看能不能找到更多有用的信息。
LDAP服务器
经过一番搜索,我找了配置文件,并在文件中发现了关于数据库凭证的信息,大概包含一组登录到20个数据库以及一个LDAP服务器的用户名和密码。
而这个LDAP服务器吸引了我的注意。首先,让我们回忆一下什么是LDAP服务器。
LDAP(轻量级目录访问协议)是一种开放的、跨平台和行业标准的目录服务协议,可以用来实现了资源和信息的统一管理,主要通过Internet协议提供服务。
简单来说,它就是一个用户目录。用户一旦连接上去,就可以访问各种应用程序和网站。而且该目录还允许打开Windows会话。
至于为什么在网站配置文件中有LDAP的信息,应该是用来定义用户在网站的权限。
为了能在MacOS下连接到这个公司的LDAP服务器,我使用了LDAPSoft软件。
如果你能找到开源的替代方案,我会感兴趣,因为这个软件实在是不好用。
我所得到的LDAP凭证仅限于读取数据,无法修改数据。
现在,我貌似找到了40000人的敏感信息。
这些信息包括:
名字和姓氏,
电子邮件地址,
出生日期,
电话号码,
明文密码(随机数…),
有关RFID标签的信息,
用于启动Windows会话的个人目录。
这些员工的RFID标签能让我进入公司的大楼,我还可以购买空白的RFID标签,往里输入LDAP服务器中的员工信息,从而伪造身份,进入大楼。
我知道这种标签并不昂贵,而且很容易进行编程。
短信紧急警报
我还在这个公司里发现了一个从未见过的系统,这个系统可以向公司的所有员工发送警报短信,以防外人侵入大楼或发生恐怖袭击。
最重要的是,我还在这个短信报警系统的配置文件中发现一个API密钥。
通过这个密钥,我就可以向整体公司的员工发送短信。
结论
我获取40000名前雇员或雇员的信息;
我可以访问大约20个数据库;
我使用RFID标签进入公司大楼(?);
可以获取每个用户的密码,从而深入挖掘敏感信息(?)。
随后,我通报了该公司,公司快速修补了以上安全漏洞。
本文由白帽汇整理并翻译,不代表白帽汇任何观点和立场
来源:https://medium.com/@thbcn/from-rce-to-ldap-access-9ce4f9d2fd78
最新评论