您好,登錄后才能下訂單哦!
這篇文章跟大家分析一下“如何進行Kthrotlds挖礦病毒的分析”。內容詳細易懂,對“如何進行Kthrotlds挖礦病毒的分析”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠對大家有所幫助。下面跟著小編一起深入學習“如何進行Kthrotlds挖礦病毒的分析”的知識吧。
2019年3月1日,默安科技應急響應中心接到某合作伙伴的求助電話,有主機被病毒感染,經默安科技安全研究員鄭斯碟研究分析發現,該病毒為之前的watchdogs的變種,通過Redis未授權訪問漏洞及ssh弱口令進行突破植入,隨后釋放挖礦木馬進行挖礦操作,并對內外網主機進行redis漏洞攻擊及ssh暴力破解攻擊。
要判斷是否感染此病毒,可從以下幾個方面入手:
1、查看root/.ssh/中的密鑰信息是否被清空。
2、查看計劃任務中是否存在以下任務信息
3、查看是否有以下進程信息
4、查看/usr/sbin目錄下是否有kthrotlds文件
5、查看/etc/init.d/下是否有netdns文件
6、病毒程序執行后會消耗大量的主機cpu資源。
7、查看/usr/local/lib/下是否存在libcset.so文件
請各位系統維護人員檢查各自機子是否有以上特征,如果有以上特征,可聯系默安科技安全應急響應中心獲取病毒清除工具。
以下是對該病毒的分析過程:
通過分析發現,該病毒文件還是采用了upx殼,只是對其中的魔數進行了修改:
該病毒文件的魔數
只要將模數修改一下即可,修改如下:
修復后,使用upx-d 進行脫殼
可以看到,已經脫殼成功。
下面使用ida進行反編譯
函數名都是隨機字符串,看下字符串,推斷程序應該是使用golang寫的,和之前的差不多。
所以這里還是要使用之前的那個符號還原腳本對程序中的符號進行還原,腳本地址是:
https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro
還原后:
下面開始分析main函數
0x1 向/etc/init.d/中寫入kthrotlds的守護進程netdns,并將netdns設置為開機啟動
0x2 刪除之前版本病毒的殘留信息
0x3 編譯libcset.c,并將其設置為預加載動態鏈接庫
0x4 寫入定時任務,遠程下載挖礦文件
0x5 啟動ksoftirqds進程進行挖礦操作
0x6 刪除tmp下ksoftirqds,kthrotlds,config.json,.lsdpid等文件
0x7 更新病毒程序
0x8 redis未授權攻擊及ssh暴力破解攻擊
下面是將kthrotlds通過github_com_hippies_LSD_LSDC_CopyFile函數將/tmp/kthrotlds拷貝到/usr/sbin/kthrotlds中。然后往/etc/init.d/中寫入一個名叫netdns的文件,并通過chkconfig命令將netdns添加為開啟啟動項。
可以發現在etc/init.d目錄下確實存在netdns文件。
通過文本查看工具打開這個文件,發現其是一個bash腳本,具體如下:
大致的意思是查看進程列表,如果發現進程kthrotlds被kill掉了,則將其啟動。
下面回到kthrolds源碼的分析:
緊接著是一些清除操作,這里應該是清除之前版本殘留的一些文件:
然后往/usr/local/lib寫入licset.c文件,并將其編譯為/usr/local/lib/licset.so文件,并將這個so文件設置為預加載動態鏈接庫。
具體的關于libcset.so的分析在文章的后半部分,下面繼續分析main函數。
接著是進行計劃任務的寫入操作,釋放挖礦木馬ksoftirqds,及更新操作。
以下是其計劃任務中寫入的命令:
訪問:https://pastebin.com/raw/D8E71JBJ即可獲得病毒執行腳本
通過解密其中的base64編碼的數據:
發現其和之前的腳本沒有太多區別,這里主要將curl獲取的圖片文件重命名為了kthrotlds(原來是watchdogs)。
如需對腳本內容進行進行進一步的了解,請參考上一篇分析文章,這里就不做過多分析了:
https://www.anquanke.com/post/id/171692
下面我們看下病毒式如何進行橫向傳播的:
遍歷內網ip及外網ip攻擊redis服務器:
測試機上通過wireshark抓取到的redis攻擊行為
Main_main->main_attack->github_com_hippies_LSD_LSDA_Ago->github_com_hippies_LSD_LSDA_Ago_func1->github_com_hippies_LSD_LSDA_runtwo->github_com_hippies_LSD_LSDA_run->github_com_gomodule_redigo_redis_DiaTimeout->github_com_gomodule_redigo_redis_Dial->github_com_gomodule_redigo_redis__conn_Do->github_com_gomodule_redigo_redis__conn_DoWithTimeout->github_com_gomodule_redigo_redis__conn_writeCommand
相關代碼:
測試機上通過wireshark抓取到的ssh爆破行為:
攻擊程序調用過程
Main_main->main_attack->github_com_hippies_LSD_LSDA_Bbgo->github_com_hippies_LSD_LSDA_bgo_func1->github_com_hippies_LSD_LSDA_cmdtwo->github_com_hippies_LSD_LSDA_cmd->Golang_org_x_crpyto_ssh_Client_NewSession
相關代碼
這里是攻擊程序的入口(main_attack)主要有兩個攻擊模塊,一個是ssh爆破,另一個式redis未授權攻擊,與上一個版本一樣。
下面我們來看下ksoftirqds這個文件。
通過分析發現其使用的還是xmr-stak這個挖礦系統
該項目地址是:
https://github.com/fireice-uk/xmr-stak
通過字符串檢索找到其礦池地址,發現礦池已經改變
這里礦池地址為:
sg.minexmr.com:5555
進一步跟入找到其錢包地址
其錢包id為:
47eCpELDZBiVoxDT1tBxCX7fFU4kcSTDLTW2FzYTuB1H3yzrKTtXLAVRsBWcsYpfQzfHjHKtQAJshNyTU88LwNY4Q3rHFYA
以下是該錢包賬戶的收益情況
在kthrotlds中,對libcset.c進行了編譯,并將編譯生成后的/usr/local/lib/libcset.so設置為預加載動態鏈接庫。
以下是libcset.c的函數列表
很明顯病毒是通過hook libc.so中的函數的方式將與病毒相關的信息進行了隱藏。
如readdir函數
這里是對readdir函數進行了hook,對其中的進程名(病毒進程名,kthrotlds),病毒配置文件名,動態鏈接庫名(libcset.so)進行了檢查,隱藏查詢結果中包含這三者的信息。其他的函數這里就不做過多分析了。
1、相對于之前的watchdogs,其加殼方案并沒有什么太大的改變,只是對于病毒程序的加固方面進行了一些修改,即將原本的upx殼的magic number改為了:4c53 44 21。那么相應的應對措施就是,在脫殼之前,將其復原為55 50 58 21。
2、進行ssh爆破及redis攻擊,目的是進行橫向病毒傳播,擴大挖礦僵尸網絡的勢力
3、通過inotify監控/bin文件目錄,發現其并沒有刪除netstat命令,這是與watchdogs的區別之一。
4、ksofttirqds程序主要是使用xmr-stak挖礦程序挖掘門羅幣
5、編譯libcset.c并將libcset.so設置為預加載動態鏈接庫,隱藏病毒相關。
6、之前版本是將watchdog程序設置為開機啟動項,而當前版本是編寫了一個名叫netdns的腳本將其設置為開機啟動項,并作為kthrotlds的守護進程。
7、礦池及錢包地址:
礦池:sg.minexmr.com:5555
錢包地址:
47eCpELDZBiVoxDT1tBxCX7fFU4kcSTDLTW2FzYTuB1H3yzrKTtXLAVRsBWcsYpfQzfHjHKtQAJshNyTU88LwNY4Q3rHFYA
8、域名:https://pastebin.com(未改變)
對應ip:104.20.209.21(未改變)
9、相關Md5特征:
da7ee5683fb870bae61e9c4088a661e466613e2e4210dce89b562635b769bc2183e651497c59a14ca8d5abab855659554c62c53ae69d8e9290aaccb5ee694716f1bdc8b12f2ef0279cd265c79bd6fd9ec7560dd3933774185ce19ddbee5e526c
病毒程序可能是通過利用redis未授權漏洞植入,所以請做好redis方面的加固。
Redis未授權漏洞簡介:Redis在默認配置下,會將服務綁定在0.0.0.0:6379上,即暴露在公網上。如果同時又沒有開啟相關的認證,就會導致任意用戶訪問redis服務,進行數據庫操作,并且通過進一步利用,還可以獲得系統權限。
以下是redis方面的加固建議:
1. 將修改redis配置文件,將服務綁定在本機127.0.0.1上。
2.修改redis.conf,設置訪問認證,啟用密碼認證。
3. 在防火墻處指定可訪問redis服務的ip 。4. 修改修改redis默認端口。
5. 禁用config指令防止惡意操作,這樣即使存在未授權訪問,也能夠給攻擊者使用config 指令加大難度。
6. 使用普通權限運行redis服務,這樣即使攻擊者獲得了服務器權限也只是普通用戶權限。
1)默安科技已針對病毒開發自動化清理腳本,腳本地址:
https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool
3)建議使用合適工具對全網服務器進行排查Redis未授權訪問漏洞并進行安全加固,從源頭上避免感染病毒。
4)緊急情況下,為避免內網大量傳播,可以臨時對被感染機器先進行斷網隔離處理。
5)不影響業務的情況下,建議臨時刪除機器上.ssh/known_hosts和登錄密鑰文件。
關于如何進行Kthrotlds挖礦病毒的分析就分享到這里啦,希望上述內容能夠讓大家有所提升。如果想要學習更多知識,請大家多多留意小編的更新。謝謝大家關注一下億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。