挖礦木馬 sustes 追蹤溯源分析
l 首先執行$ top命令,檢查系統執行狀態,此臺Linux伺服器的CPU利用率為732%
l 再執行$ ps aux |grep [pid]命令,定位到可疑的挖礦木馬檔案,位於/var/tmp/目錄下
l 繼續執行$ hadoopversion命令,檢查Hadoop版本,當前Linux伺服器上安裝的Hadoop版本號為2.6.0(此版本支援認證服務,但若未開啟,攻擊者則可通過Hadoop Yarn資源管理系統REST API未授權漏洞入侵系統)
l 執行$ crontab-u yarn -l命令,檢查任務計劃,yarn使用者每分鐘向C2地址發起請求,獲取最新指令碼檔案
l 執行$ head/var/log/cron-20180617命令(實際操作中需要檢視對應的日誌檔案),檢查任務計劃日誌,發現挖礦木馬在6月10日替換過C2地址
通過上述操作,我們定位到了此次事件中的門羅幣挖礦木馬程式和核心控制指令碼,並進行了詳細分析,分析情況見樣本分析一節。
攻擊植入過程分析
通過對其中某臺伺服器檢查,初步判定攻擊者利用了Hadoop Yarn REST API未授權漏洞入侵了這些伺服器,從而植入挖礦木馬實現獲利:
分析了整個攻擊植入流程如下:
樣本分析
相關樣本
我們將此次事件中挖礦木馬的核心檔案以列表的形式整理如下,並逐一進行分析:
檔名 |
MD5 | 作用 |
---|---|---|
cr.sh | 1f6554f2559d83ace7f0af82d32beb72 | Shell指令碼,用於下載挖礦程式和配置檔案 |
x_64 | 7f4d9a672bb7ff27f641d29b99ecb08a | 64位ELF挖礦程式 |
x_32 | b00f4bbd82d2f5ec7c8152625684f853 | 32位ELF挖礦程式 |
w.conf | 配置檔案,儲存錢包地址,礦池地址 |
樣本分析–cr.sh核心指令碼
攻擊者利用YARN預設開放的8088埠服務,向伺服器提交惡意作業,該作業包含遠端下載並執行Shell指令碼的命令。下載回來的指令碼cr.sh完成如下功能:
1、 清理主機環境:停止、刪除主機已經存在的其他挖礦程式
2、 檢查主機環境:檢查指定的挖礦程式是否已經存在
3、 配置主機環境:下載挖礦程式和配置檔案並執行
4、 持續感染主機:設定任務計劃,保持更新,持續感染主機
5、 清理任務計劃:清除其他挖礦相關的任務計劃
清理主機環境程式碼片段:結束當前主機正在執行的其他已知挖礦程式並刪除,已知挖礦程式的檔名如pscf、ntpd、ntp、qq、qq1等:
...
ps ax | grep 'wc.conf\|wq.conf\|wm.conf\|wt.conf' | grep -v grep | grep 'ppl\|pscf\|ppc\|ppp' | awk '{print $1}' | xargs kill -9
rm -rf /var/tmp/pscf*
rm -rf /tmp/pscf*
pkill -f ririg
rm -rf /var/tmp/ntpd
pkill -f /var/tmp/ntpd
rm -rf /var/tmp/ntp
pkill -f /var/tmp/ntp
rm -rf /var/tmp/qq
rm -rf /var/tmp/qq1
pkill -f /var/tmp/qq
rm -rf /tmp/qq
rm -rf /tmp/qq1
pkill -f /tmp/qq
pkill -f /var/tmp/aa
rm -rf /var/tmp/aa
C2資訊
本次事件中,攻擊者使用了Github作為雲分發平臺,儲存挖礦程式和配置檔案。該攻擊者會不定期的建立刪除Github賬號,保證可用性及隱私性。
已使用的Github賬戶名(均已刪除):
l ffazop1
l zzgamond1
Github專案地址(均已刪除):
l https://raw.githubusercontent.com/ffazop1/mygit/master/w.conf
l https://raw.githubusercontent.com/ffazop1/mygit/master/x_64
l https://raw.githubusercontent.com/zzgamond1/mygit/master/w.conf
l https://raw.githubusercontent.com/zzgamond1/mygit/master/x_64
l 埠關聯
在多起事件中,出現的C2伺服器統一使用8220號埠,因此我們可將其作為身份識別的一個弱特徵。
l 檔名關聯
在多起事件中,重複使用了相同的檔名,例如1.ps1、2.ps1、logo0.jpg、logo2.jpg、logo3.jpg、logo4.jpg、logo7.jpg等,因此我們也將其作為身份識別的一個弱特徵。
l 錢包地址關聯
從同一個C2上,我們獲取到該團伙不同時期使用的兩個指令碼,這兩個指令碼包含了兩個不同的門羅幣錢包地址,並且這兩個錢包地址在這些事件中都有使用。考慮錢包的私有特性,我們可將其作為身份識別的一個強特徵。
執行在C2伺服器8220埠上的Apache服務
攻擊活動時間線
通過對關聯資訊的整理歸納,我們繪製了過去一年與該團伙相關的攻擊活動的時間圖:
活動圖中的時間順序僅為我們發現該團伙最早的活動時間,並不表示該團伙只在此時間段利用此漏洞。相應的,此圖直觀體現了該團伙積累了較多的網路攻擊武器。我們有理由相信,還有大量關於該團伙的未被曝光的攻擊事件。
錢包資訊
錢包1
l 錢包地址:
41e2vPcVux9NNeTfWe8TLK2UWxCXJvNyCQtNb69YEexdNs711jEaDRXWbwaVe4vUMveKAzAiA4j8xgUi29TpKXpm3zKTUYo
l Monerohash上的有效期:? — 2018/5/08
l 總收益:90.1934XMR(僅Monerohash公開礦池)
l 交易記錄截圖
錢包2
l 錢包地址:
4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3YwqDiTutrufk8D17D7xw1zPGyMspv8Lqwwg36V5chYg
l Monerohash上的有效期:2018/5/15 — 今
l 總收益:140.3400XMR(僅Monerohash公開礦池)
l 交易記錄截圖
收益彙總及評估
僅看Monerohash公開礦池的交易記錄,“8220挖礦團伙”累計獲取超過230枚門羅幣。其中,錢包2提供的算力高達365KH/sec,佔Monerohash礦池算力的7%左右。做個簡單估算,以INTELCORE I5-2400處理器作為參考,核心全開的情況下算力大約在70H/sec左右,那麼相當於大約有5200臺伺服器在同一時間為該團伙進行挖礦。
通過查詢其他相關公開礦池的交易記錄,此團伙累計獲取超過1000枚門羅幣,按照市價974元/枚計算,其價值將近100萬元人民幣。考慮還有未統計的公開礦池及無法查詢的私有礦池,保守估計該團伙累計獲益已達數百萬。
錢包資訊關聯
從以上交易截圖中可觀察出,“8220挖礦團伙”前期使用的錢包1在今年4月時,被安全廠商標註為Botnet,各大公開礦池也將其列入黑名單,禁止接入挖礦。此後,該團伙使用了另一個錢包2,在大型礦池挖礦,並持續至今。
攻擊者畫像-疑似國內團伙
我們對涉及的樣本做了簡單的統計如下:
配置檔案使用過的名稱:
l w.conf、dd1.conf、gg1.conf、test.conf、tes.conf、hh1.conf
l kkk1.conf、ttt1.conf、ooo1.conf、ppp1.conf
挖礦程式使用過的名稱:
l nginx、suppoie、java、mysql、cpu.c、ntpd、psping、java-c、pscf、
l cryptonight、sustes、xmr-stak、ririg、ntp、qq、aa、ubyx
l logo4.jpg、logo0.jpg、logo9.jpg
l apaqi、dajiba、look、orgfs、crant、jvs、javs
通過對相關樣本的統計分析,結合其具有中文特色命名的特點、交易發生的時間(統計分析主要集中在UTC+8時區)及其他一些資訊,懷疑這是一支來源於國內的挖礦團伙。
總結及安全建議
使用者使用如下步驟檢測及清理疑似中招的伺服器:
1、 使用top檢視程序,KILL掉異常程序
2、 檢查/var/tmp目錄,刪除java、pscf3、w.conf等異常檔案
3、 檢查crontab任務列表,刪除異常任務
4、 檢查YARN日誌,刪除異常的Application ID
5、 開啟Hadoop Kerberos認證服務
IOC
礦池地址及C2
IP | 說明 |
---|---|
158.69.133.20:3333 | 私有礦池地址 |
192.99.142.249:3333 | 私有礦池地址 |
202.144.193.110:3333 | 私有礦池地址 |
192.99.142.232:8220 | C2 |
192.99.142.235:8220 | C2 |
192.99.142.226:8220 | C2 |
192.99.142.246:8220 | C2 |
192.99.142.248:8220 | C2 |
158.69.133.18:8220 | C2 |
198.181.41.97:8220 | C2 |
46.249.38.186 | C2 |
建議封禁以下地址
部分相關URL