04.15 Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

一、背景

近日,騰訊雲安全團隊監測到部分雲上及外部用戶機器存在安全漏洞被入侵,同時植入watchdogs 挖礦病毒,出現 crontab 任務異常、系統文件被刪除、CPU 異常等情況,並且會自動感染更多機器。攻擊者主要利用 Redis 未授權訪問入侵服務器並通過內網掃描和 known_hosts 歷史登錄嘗試感染更多機器。

相較於過去發現的挖礦病毒,這次的挖礦病毒隱藏性更高,也更難被清理。服務器被該病毒入侵後將嚴重影響業務正常運行甚至導致奔潰,給企業帶來不必要的損失。

二、腳本分析

首先,可以直接從crontab任務中看到異常的任務項:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

該crontab任務實現從 hxxps://pastebin.com/raw/sByq0rym 下載shell腳本並執行,shell腳本內容為:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

該腳本實現從 hxxps://pastebin.com/raw/tqJjUD9d下載文件,文件內容為經過base64編碼處理;

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

base64解碼後為shell腳本,shell腳本主要功能如下:

1.修改環境變量,將常見的可執行文件目錄添加到系統路徑中,確保腳本中的shell命令正常執行;同時再次覆寫crontab任務。

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

2.清理其他惡意程序,如”kworkerds”,”ddgs”等挖礦程序;同時通過chattr -i等命令解鎖和清理相關係統文件;

3.根據系統信息下載對應惡意程序執行;黑客主要通過將惡意程序偽裝成圖片上傳hxxp://thyrsi.com圖床站點,shell腳本下載hxxp://thyrsi.com/t6/672/1550667515×1822611209.jpg保存為/tmp/watchdogs文件,賦予可執行權限後執行該惡意程序;

4.再進一步橫向擴展感染,檢查本地 ssh 憑證,遍歷 /root/.ssh/known_hosts 文件中的 IP 地址,利用默認公鑰認證方式進行 SSH 連接,執行惡意命令橫向擴展感染;

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

5.最後清空系統日誌等文件,清理入侵痕跡。

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

通過bash腳本我們可以得知關鍵文件為其中的 watchdogs 文件。

進一步通過 top 命令未見異常進程,而 CPU 空閒率為100%,但又明顯感覺到機器運行遲緩。

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

進一步通過 vmstat 進行確認,可以發現 CPU 使用率95%以上,由此可以推斷存在隱藏進程,並且hook了相關readdir 等方法,具體案例我們在以前的文章已經做過分析。

安全研究 | Linux 遭入侵,挖礦進程被隱藏案例分析

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

進一步分析watchdogs文件,可以清楚看到病毒釋放了/usr/local/lib/libioset.so的動態鏈接庫並將路徑寫入/etc/ld.so.preload來實現了進程的隱藏,與我們上面的推測是一致的。具體可見樣本分析部分。

三、樣本分析

樣本watchdogs

主要功能:

1.獲取當前進程id,寫入/tmp/.lsdpid文件:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

2.拷貝 /tmp/watchdogs至/usr/sbin/watchdogs路徑,並將watchdogs添加至啟動項及服務項:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

3.釋放libioset.so文件至/usr/local/lib/libioset.so,並將該so文件路徑寫入/etc/ld.so.preload,同時刪除/usr/local/lib/libioset.c文件:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

4.訪問ident.me獲取機器IP:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

5.設置定時任務,定時從https://pastebin.com/raw/sByq0rym上獲取shell執行腳本:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

6.寫入/tmp/ksoftirqds、/tmp/config.json,執行ksoftirqds後刪除:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

7.刪除生成的相關文件:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

8.訪問https://pastebin.com/raw/C4ZhQFrH檢查更新:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

樣本libioset.so

64位程序中,惡意樣本會釋放出libioset.c文件,採用源碼編譯的方式生成libioset.so文件,而32位程序則直接釋放出libioset.so文件:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

libioset.so主要功能為hook刪除、查看等系統命令函數,過濾掉watchdogs等相關信息,導致ls、rm等命令對該惡意程序無效,該so文件導出函數如下所示:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

例如,readdir64函數中,加載了libc.so.6:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

獲取原始函數地址:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

如果調用該函數的進程不是ksoftirqds或watchdogs,則過濾掉所有包含惡意程序相關的結果。

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

unlink函數同樣進行了過濾,導致無法清除惡意程序相關的LD_PRELOAD、libioset.so等。

該惡意程序同樣隱藏了CPU信息和網絡連接信息,如下所示:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

當調用fopen打開/proc/stat時,返回偽造的信息:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

當調用fopen打開/proc/net/tcp或/proc/net/tcp6時,同樣進行過濾:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

四、流程還原

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

基於上面的腳本和ELF樣本分析可以發現整體入侵和感染流程大概為:

1.通過Redis未授權訪問漏洞入侵機器並修改crontab任務;或者通過遍歷known_hosts中的連接歷史進行橫向擴展;

2.crontab任務執行bash腳本,進行相關清理和下載執行惡意程序watchdogs並橫向擴展:

a)覆寫crontab任務;

b)清理其他惡意程序;

c)解鎖刪除相關係統文件;

d)下載執行watchdogs;

e)橫向掃描其他機器;

f)清理相關文件和痕跡。

3.watchdogs執行實現寫開機啟動、服務項並釋放動態鏈接庫實現隱藏,同時釋放執行挖礦程序:

a)獲取進程ID寫/tmp/.lsdpid;

b)將/tmp目錄下的watchdogs複製到/usr/sbin/目錄並加入開機啟動項和服務項;

c)釋放libioset.so並寫入/etc/ld.so.preload實現進程等隱藏;

d)訪問ident.me獲取機器外網IP;

e)再次覆寫crontab任務;

f)釋放挖礦程序ksoftirqds和配置文件config.json並執行;

g)刪除相關生成的文件並檢查更新。

最終完成了一個漏洞利用到植入挖礦程序,同時隱藏和橫向感染的過程。

而相對與過去我們分析過的隱藏進程的挖礦病毒,在該病毒釋放的動態鏈接庫中同步對unlink函數進行了過濾,過濾名稱同時包含ld.so.preload和libioset.so,而同時由於刪除、查看等系統命令函數也受過濾影響,就導致通過常規自帶的方法無法直接刪除libioset.so或者修改ld.so.preload解除惡意進程的隱藏,只能通過busybox 來實現對這些文件的刪除清理。

在我們將/usr/local/lib/libioset.so文件清理後,就可以通過top命令看到執行的挖礦進程:

Linux watchdogs感染性隱藏挖礦病毒入侵還原錄

通過捕獲的錢包地址查看黑客收益:


Linux watchdogs感染性隱藏挖礦病毒入侵還原錄


Linux watchdogs感染性隱藏挖礦病毒入侵還原錄


該錢包總收益約為56.5門羅幣,約合1.9萬人民幣,過去24小時內收益1.3門羅幣,當前算力約為430KH/S。

五、修復建議和清理方法

修復建議

1.為Redis添加密碼驗證(重啟Redis才能生效);

2.禁止外網訪問Redis(重啟Redis才能生效);

3.以低權限運行Redis服務(重啟Redis才能生效) 詳細操作請參考:http://bbs.qcloud.com/thread-30706-1-1.html。

內網感染:

1.建議不要將連接機器的私鑰直接放在服務器上,如有必要建議添加密碼;

2.建議通過有限的機器作為跳板機實現對其他內網機器的訪問,避免所有機器的隨意互聯互通,跳板機不要部署相關可能存在風險的服務和業務。

挖礦木馬清理方法

1.刪除惡意動態鏈接庫/usr/local/lib/libioset.so;

2.排查清理/etc/ld.so.preload中是否加載1中的惡意動態鏈接庫;

3.清理crontab異常項,刪除惡意任務(無法修改則先執行5-a);

4.kill挖礦進程;

5.排查清理可能殘留的惡意文件:

a)chattr -i /usr/sbin/watchdogs/etc/init.d/watchdogs /var/spool/cron/root /etc/cron.d/root;

b)chkconfig watchdogs off;

c)rm -f /usr/sbin/watchdogs/etc/init.d/watchdogs。

6.相關係統命令可能被病毒刪除,可通過包管理器重新安裝或者其他機器拷貝恢復;

7.由於文件只讀且相關命令被hook,需要安裝busybox通過busybox rm命令刪除;

8.部分操作需要重啟機器生效。

六、附錄

IOCs:

樣本

1.aee3a19beb22527a1e0feac76344894c

2.c79db2e3598b49157a8f91b789420fb6

3.d6a146161ec201f9b3f20fbfd528f901

4.39fa886dd1af5e5360f36afa42ff7b4e

礦池地址

xmr.f2pool.com:13531

錢包地址

46FtfupUcayUCqG7Xs7YHREgp4GW3CGvLN4aHiggaYd75WvHM74Tpg1FVEM8fFHFYDSabM3rPpNApEBY4Q4wcEMd3BM4Ava.teny

URLs

1.hxxps://pastebin.com/raw/sByq0rym

2.hxxps://pastebin.com/raw/tqJjUD9d

3.hxxp://thyrsi.com/t6/672/1550667515×1822611209.jpg

4.hxxp://ident.me


分享到:


相關文章: