概述
Volexity最近观察到野外存在对Adobe ColdFusion中新修复漏洞的利用,该漏洞目前在网上不存在任何公开细节或概念验证(PoC)代码。在Volexity检测到的攻击中,一个自称是来自中国的APT组织直接上传了“China Chopper WebShell”以破坏受漏洞影响的ColdFusion服务器,该服务器仅仅缺少两周前发布的Adobe安全更新。在2018年9月11日,Adobe发布了安全公告APSB18-33,该公告中修复了一些漏洞,其中包括未经身份验证的文件上传漏洞。根据公告内容,该漏洞已经被编号为CVE-2018-15961,影响ColdFusion 11(Update 14及此前版本)、ColdFusion 2016(Update 6及此前版本)和ColdFusion 2018(7月12日版本)。实际上,上述囊括了过去四年内发布的所有版本。
Adobe的ColdFusion Web应用程序开发平台历来是APT组织的主要攻击目标,他们希望能破坏运行该应用程序的网络。ColdFusion的最新版本包括WYSIWYG富文本编辑器CKEditor。在早期版本中,Adobe集成了旧版的WYSIWYG编辑器FCKeditor。根据推测,Adobe在使用CKEditor替换FCKeditor时,无意中引入了一个未经身份验证的文件上传漏洞。该漏洞与2009年在ColdFusion中发现的FCKeditor未经身份验证文件上传漏洞具有惊人的相似性,较早的这个漏洞已经在APSB09-09中实现修复。
根据APSB18-33公告中的信息,Foundeo是一家专门从事ColdFusion开发和咨询的公司。目前,没有任何公开发布的内容描述这一漏洞详情,同样也没有提供与CKEditor相关的任何信息。Volexity与Adobe合作验证了CVE-2018-15961漏洞被利用的问题。在联系Adobe时,他们尚未意识到该漏洞正在野外被利用。Volexity提供了有关攻击的其他详细信息,随后Adobe迅速将该漏洞的严重程度升级到“优先级1”。
APT组织对CVE-2018-15961的漏洞利用
在Adobe发布更新的大约两周后,Volexity就发现了对该漏洞的利用。攻击者通过对upload.cfm文件发送简单HTTP POST请求,就能够轻松实现利用。该文件不受限制,并且不需要任何身份验证。以下是经过编辑的POST请求,其中部分地方展现了漏洞的利用方式。
POST /cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/upload.cfm?action=upload HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
Content-Type: multipart/form-data; boundary=—————————5b12d3a3190134
Accept-Encoding: gzip, deflate
Content-Length: 9308
Host:
Pragma: no-cache
Connection: close
—————————–5b12d3a3190134
Volexity观察到APT组织利用CVE-2018-15961上传了China Chopper的JSP版本,并且在被阻断之前,成功在存在漏洞的Web服务器上执行命令。值得注意的是,ColdFusion会尝试在名为setting.cfm的配置文件中限制允许通过CKEditor上传的文件类型。该文件中相关设置(默认设置)如下:
该设置将阻止上传任何文件扩展名与上述扩展名相匹配的文件。我们观察到,APT组织发现在Adobe的默认配置中并没有包含.jsp文件扩展名,而这是存在问题的,因为ColdFusion允许.jsp文件被主动执行。攻击者还通过“path”表单变量,确定了目录修改漏洞,该变量允许攻击者将目录更改为上传文件的位置。这一位置,即使.jsp文件扩展名已经添加到阻止列表中,攻击者也可能在系统的某个位置放置了另一个脚本或可执行文件,并尝试以此攻陷主机(可能会在重新启动后运行)。在Adobe本次更新中,已经将.jsp文件扩展名添加到默认禁止的文件列表中,路径修改漏洞也已经修复。
漏洞利用的深入分析
在确认了APT组织对CVE-2018-15961进行漏洞利用之后,我们检查了几个可以访问到互联网的ColdFusion网络服务器。在此过程中,我们发现了很多疑似被攻陷的系统,这些系统来自各类组织,如教育机构、州阅批、卫生研究机构、人道主义救援组织等。其中,每个站点都出现了尝试上传WebShell的迹象,同时有部分HTML文件已经遭到修改。我们无法直接证明,上述情况都是由于CVE-2018-15961的漏洞利用。但是,根据受影响服务器上文件的位置,我们判断一些非APT组织成员可能在2018年9月11日前发现了该漏洞。受感染网站上所有文件,都位于以下两个目录之一:
/cf_scripts/
/cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/uploadedFiles/
在大多数被攻陷主机上,文件的最后一次修改时间都发生在2018年6月2日或2018年6月6日。我们发现这些主机会连接到几个站点,它们似乎是用于上传名称为“up.php.fla”的PHP文件,最终都失败了。看来,攻击者当时并不清楚.jsp文件扩展名是被允许的。
OK-Click here!”;
}
}echo ‘Upload files…’;
?>
Several of the affected websites contained an HTML index file that purported to be from the hacktivist group “TYPICAL IDIOT SECURITY.” The defaced web pages all contained the following message:
Hacked by AnoaGhost – Typical Idiot Security
#together laugh in ur security since 2k17#
We are:~•Khunerable – SPEEDY-03 – PYS404 – Mirav – Grac3 – AnoaGhost – Jje Incovers – Panataran – magelangGetar – Kersen.id•这个黑客组织似乎来自印度尼西亚,其成员AnoaGhost似乎也与ISIS相关的黑客组织之间有联系。
签名
以下入侵检测系统(IDS)签名可用于查找CVE-2018-15961的滥用行为。
Suricata:
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:”Volex – ColdFusion Unauthenticated Upload Attempt (upload.cfm)”; flow:to_server,established; content:”POST”; http_method; content:”upload.cfm?action=upload”; nocase; http_uri; sid:2018093003;)
Snort:
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:”Volex – ColdFusion Unauthenticated Upload Attempt (upload.cfm)”; flow:to_server,established; content:”POST”; http_method; content:”upload.cfm?action=upload”; nocase; http_uri; sid:2018093003;)
安全建议
如果ColdFusion服务器已经接入互联网,那么有必要检查日志文件和目录中是否存在任何可疑的内容。一旦发现可疑日志条目或文件,那么需要进行更深入的分析。
我们建议,立即应用Adobe ColdFusion补丁。保持补丁时刻更新到最新的最佳方法,是通过ColdFusion管理员面板中配置选项进行配置。下图展示了Server Update > Updates > Settings下的默认配置。
我们建议,进行以下配置更改:
选中“Automatically Check for Updates”(自动检查更新)选项;
选中“Check for updates every 10 days”(每10天检查更新)选项,并将10更改为1;
正确配置电子邮件设置,从而能及时将更新情况通知给管理员,以便采取措施。
此外,建议所有ColdFusion管理员只通过允许的IP地址访问(通常是通过/CFIDE/administrator)。
总结
Adobe ColdFusion很久之前就被发现过存在远程可利用的漏洞,目前是一些民族主义攻击者最喜欢攻击的目标。因此,需要各组织拥有较为完善的补丁管理流程,以防范CVE-2018-15961的威胁。我们建议各组织立即对正在使用的Adobe ColdFusion实例进行排查,验证当前正在使用的版本,并及时对易受攻击的版本进行更新。