利用Consul RCE漏洞傳播的挖礦木馬分析
作者: Ksh0m、imbeee @360sglab
簡述
在2018年11月,360觀星實驗室接到某客戶Linux伺服器挖礦,發現這是一起通過consul服務(一種配置管理雲平臺的分散式服務,預設開啟埠8500)的RCE漏洞進行傳播和植入的挖礦惡意木馬,該木馬會下載到/var/tmp目錄下並命名為systemd-xxxx,並上傳使用者資訊,而控制的CC隱藏在Tor網路。無獨有偶,近日觀星實驗室又捕獲到類似樣本,發現黑客更新了域名和樣本資訊
事件分析
舊的惡意樣本位於/var/tmp目錄下名稱為systemd-check,新的惡意樣本位於/tmp目錄下命名為systemd-login,基本資訊如下
截止3月21日,VT記錄上還未有殺軟引擎報毒
黑客的攻擊手法是掃描暴露在公網的Consul的8500埠,利用Consul RCE漏洞註冊執行指令碼,並通過常見伺服器運維工具如ansible、salt或knife下發惡意程式碼執行,註冊指令碼如下:
或
黑客將CC隱藏在Tor網路中,並通過tor2web.io等暗網反向代理服務來使被攻擊的機器正常訪問,拉取惡意檔案sytemd-check並執行後取消其註冊在Consul上的指令碼
樣本分析
systemd-login(elf64)
原始樣本被加了UPX 殼,脫殼後,其主要流程如下
樣本首先檢測LD_PRELOAD變數
並將惡意檔案移動到/lib/systemd/systemd-login和~/.systemd-login
並將pid寫入到/tmp/.X1M-unix防止重複感染
隨後執行一段內建的Base64編碼的指令碼
此段程式碼功能如下
- 將使用者資訊拼接成字串並base64編碼後,作為refer訪問CC的/slave外帶資料,目前請求該uri為404,猜測通過其訪問日誌來記錄資訊
- 向cc請求/systemd-resolve檔案並下載到/tmp目錄,該檔案目前不存在
- 通過ansible、salt或knife工具執行如下程式碼
這段迴圈同樣是執行內建的Base64編碼指令碼檔案
第一段是寫入計劃任務
第二段是清理其它挖礦程序
第三段是下載systemd-analyze檔案到/tmp/.systemd-analyze,目前該檔案不存在
第四段是惡意檔案更新的指令碼
第五段指令碼功能與第四段相同
systemd-check(elf32)
與systemd-login流程類似,函式執行順序如圖所示
處置方法
- 升級Consul版本,且不要將服務暴露在公網
- 停止惡意程序並清理相關計劃任務及檔案
IOC
9B6A6282B47D9E7F067309AFEF9DEBF0
57B4EF04FBB773B3661287D5A2B3688E