溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行Kthrotlds挖礦病毒的分析

發(fā)布時(shí)間:2022-01-11 15:54:35 來源:億速云 閱讀:145 作者:柒染 欄目:編程語言

這篇文章跟大家分析一下“如何進(jìn)行Kthrotlds挖礦病毒的分析”。內(nèi)容詳細(xì)易懂,對(duì)“如何進(jìn)行Kthrotlds挖礦病毒的分析”感興趣的朋友可以跟著小編的思路慢慢深入來閱讀一下,希望閱讀后能夠?qū)Υ蠹矣兴鶐椭O旅娓【幰黄鹕钊雽W(xué)習(xí)“如何進(jìn)行Kthrotlds挖礦病毒的分析”的知識(shí)吧。

2019年3月1日,默安科技應(yīng)急響應(yīng)中心接到某合作伙伴的求助電話,有主機(jī)被病毒感染,經(jīng)默安科技安全研究員鄭斯碟研究分析發(fā)現(xiàn),該病毒為之前的watchdogs的變種,通過Redis未授權(quán)訪問漏洞及ssh弱口令進(jìn)行突破植入,隨后釋放挖礦木馬進(jìn)行挖礦操作,并對(duì)內(nèi)外網(wǎng)主機(jī)進(jìn)行redis漏洞攻擊及ssh暴力破解攻擊。    

0x1 病毒特征

要判斷是否感染此病毒,可從以下幾個(gè)方面入手:

1、查看root/.ssh/中的密鑰信息是否被清空。

2、查看計(jì)劃任務(wù)中是否存在以下任務(wù)信息

如何進(jìn)行Kthrotlds挖礦病毒的分析3、查看是否有以下進(jìn)程信息

如何進(jìn)行Kthrotlds挖礦病毒的分析

4、查看/usr/sbin目錄下是否有kthrotlds文件

如何進(jìn)行Kthrotlds挖礦病毒的分析

5、查看/etc/init.d/下是否有netdns文件

如何進(jìn)行Kthrotlds挖礦病毒的分析6、病毒程序執(zhí)行后會(huì)消耗大量的主機(jī)cpu資源。

7、查看/usr/local/lib/下是否存在libcset.so文件

如何進(jìn)行Kthrotlds挖礦病毒的分析

請(qǐng)各位系統(tǒng)維護(hù)人員檢查各自機(jī)子是否有以上特征,如果有以上特征,可聯(lián)系默安科技安全應(yīng)急響應(yīng)中心獲取病毒清除工具。

以下是對(duì)該病毒的分析過程:

0x2 針對(duì)kthrotlds的分析:

通過分析發(fā)現(xiàn),該病毒文件還是采用了upx殼,只是對(duì)其中的魔數(shù)進(jìn)行了修改:

如何進(jìn)行Kthrotlds挖礦病毒的分析

該病毒文件的魔數(shù)

如何進(jìn)行Kthrotlds挖礦病毒的分析

只要將模數(shù)修改一下即可,修改如下:

如何進(jìn)行Kthrotlds挖礦病毒的分析

修復(fù)后,使用upx-d 進(jìn)行脫殼

如何進(jìn)行Kthrotlds挖礦病毒的分析

可以看到,已經(jīng)脫殼成功。

下面使用ida進(jìn)行反編譯

如何進(jìn)行Kthrotlds挖礦病毒的分析

函數(shù)名都是隨機(jī)字符串,看下字符串,推斷程序應(yīng)該是使用golang寫的,和之前的差不多。

如何進(jìn)行Kthrotlds挖礦病毒的分析

所以這里還是要使用之前的那個(gè)符號(hào)還原腳本對(duì)程序中的符號(hào)進(jìn)行還原,腳本地址是:

https://rednaga.io/2016/09/21/reversing_go_binaries_like_a_pro

還原后:

如何進(jìn)行Kthrotlds挖礦病毒的分析

下面開始分析main函數(shù)

0x1 向/etc/init.d/中寫入kthrotlds的守護(hù)進(jìn)程netdns,并將netdns設(shè)置為開機(jī)啟動(dòng)

0x2 刪除之前版本病毒的殘留信息

0x3 編譯libcset.c,并將其設(shè)置為預(yù)加載動(dòng)態(tài)鏈接庫

0x4 寫入定時(shí)任務(wù),遠(yuǎn)程下載挖礦文件

0x5 啟動(dòng)ksoftirqds進(jìn)程進(jìn)行挖礦操作

0x6 刪除tmp下ksoftirqds,kthrotlds,config.json,.lsdpid等文件

0x7 更新病毒程序

0x8 redis未授權(quán)攻擊及ssh暴力破解攻擊

如何進(jìn)行Kthrotlds挖礦病毒的分析

下面是將kthrotlds通過github_com_hippies_LSD_LSDC_CopyFile函數(shù)將/tmp/kthrotlds拷貝到/usr/sbin/kthrotlds中。然后往/etc/init.d/中寫入一個(gè)名叫netdns的文件,并通過chkconfig命令將netdns添加為開啟啟動(dòng)項(xiàng)。

如何進(jìn)行Kthrotlds挖礦病毒的分析

可以發(fā)現(xiàn)在etc/init.d目錄下確實(shí)存在netdns文件。

如何進(jìn)行Kthrotlds挖礦病毒的分析

通過文本查看工具打開這個(gè)文件,發(fā)現(xiàn)其是一個(gè)bash腳本,具體如下:

   大致的意思是查看進(jìn)程列表,如果發(fā)現(xiàn)進(jìn)程kthrotlds被kill掉了,則將其啟動(dòng)。

下面回到kthrolds源碼的分析:

緊接著是一些清除操作,這里應(yīng)該是清除之前版本殘留的一些文件:

如何進(jìn)行Kthrotlds挖礦病毒的分析

然后往/usr/local/lib寫入licset.c文件,并將其編譯為/usr/local/lib/licset.so文件,并將這個(gè)so文件設(shè)置為預(yù)加載動(dòng)態(tài)鏈接庫。

如何進(jìn)行Kthrotlds挖礦病毒的分析

具體的關(guān)于libcset.so的分析在文章的后半部分,下面繼續(xù)分析main函數(shù)。

接著是進(jìn)行計(jì)劃任務(wù)的寫入操作,釋放挖礦木馬ksoftirqds,及更新操作。

如何進(jìn)行Kthrotlds挖礦病毒的分析

以下是其計(jì)劃任務(wù)中寫入的命令:

如何進(jìn)行Kthrotlds挖礦病毒的分析

訪問:https://pastebin.com/raw/D8E71JBJ即可獲得病毒執(zhí)行腳本

通過解密其中的base64編碼的數(shù)據(jù):
發(fā)現(xiàn)其和之前的腳本沒有太多區(qū)別,這里主要將curl獲取的圖片文件重命名為了kthrotlds(原來是watchdogs)。

如需對(duì)腳本內(nèi)容進(jìn)行進(jìn)行進(jìn)一步的了解,請(qǐng)參考上一篇分析文章,這里就不做過多分析了:
https://www.anquanke.com/post/id/171692

0x3 橫向傳播

下面我們看下病毒式如何進(jìn)行橫向傳播的:

Readis攻擊

遍歷內(nèi)網(wǎng)ip及外網(wǎng)ip攻擊redis服務(wù)器

測(cè)試機(jī)上通過wireshark抓取到的redis攻擊行為

如何進(jìn)行Kthrotlds挖礦病毒的分析

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

相關(guān)代碼:

如何進(jìn)行Kthrotlds挖礦病毒的分析

ssh爆破

測(cè)試機(jī)上通過wireshark抓取到的ssh爆破行為:

如何進(jìn)行Kthrotlds挖礦病毒的分析

攻擊程序調(diào)用過程

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

相關(guān)代碼

如何進(jìn)行Kthrotlds挖礦病毒的分析

這里是攻擊程序的入口(main_attack)主要有兩個(gè)攻擊模塊,一個(gè)是ssh爆破,另一個(gè)式redis未授權(quán)攻擊,與上一個(gè)版本一樣。

如何進(jìn)行Kthrotlds挖礦病毒的分析

0x4 針對(duì)ksoftirqds的分析

下面我們來看下ksoftirqds這個(gè)文件。

通過分析發(fā)現(xiàn)其使用的還是xmr-stak這個(gè)挖礦系統(tǒng)

如何進(jìn)行Kthrotlds挖礦病毒的分析

該項(xiàng)目地址是:

https://github.com/fireice-uk/xmr-stak

通過字符串檢索找到其礦池地址,發(fā)現(xiàn)礦池已經(jīng)改變

如何進(jìn)行Kthrotlds挖礦病毒的分析

這里礦池地址為:

sg.minexmr.com:5555

進(jìn)一步跟入找到其錢包地址

如何進(jìn)行Kthrotlds挖礦病毒的分析

其錢包id為:

47eCpELDZBiVoxDT1tBxCX7fFU4kcSTDLTW2FzYTuB1H3yzrKTtXLAVRsBWcsYpfQzfHjHKtQAJshNyTU88LwNY4Q3rHFYA

以下是該錢包賬戶的收益情況

如何進(jìn)行Kthrotlds挖礦病毒的分析

0x5 針對(duì)libcset.c的分析

在kthrotlds中,對(duì)libcset.c進(jìn)行了編譯,并將編譯生成后的/usr/local/lib/libcset.so設(shè)置為預(yù)加載動(dòng)態(tài)鏈接庫。

如何進(jìn)行Kthrotlds挖礦病毒的分析

以下是libcset.c的函數(shù)列表

如何進(jìn)行Kthrotlds挖礦病毒的分析

很明顯病毒是通過hook libc.so中的函數(shù)的方式將與病毒相關(guān)的信息進(jìn)行了隱藏。

如readdir函數(shù)

這里是對(duì)readdir函數(shù)進(jìn)行了hook,對(duì)其中的進(jìn)程名(病毒進(jìn)程名,kthrotlds),病毒配置文件名,動(dòng)態(tài)鏈接庫名(libcset.so)進(jìn)行了檢查,隱藏查詢結(jié)果中包含這三者的信息。其他的函數(shù)這里就不做過多分析了。

0x6 分析總結(jié)

1、相對(duì)于之前的watchdogs,其加殼方案并沒有什么太大的改變,只是對(duì)于病毒程序的加固方面進(jìn)行了一些修改,即將原本的upx殼的magic number改為了:4c53 44 21。那么相應(yīng)的應(yīng)對(duì)措施就是,在脫殼之前,將其復(fù)原為55 50 58 21。

2、進(jìn)行ssh爆破及redis攻擊,目的是進(jìn)行橫向病毒傳播,擴(kuò)大挖礦僵尸網(wǎng)絡(luò)的勢(shì)力

3、通過inotify監(jiān)控/bin文件目錄,發(fā)現(xiàn)其并沒有刪除netstat命令,這是與watchdogs的區(qū)別之一。

4、ksofttirqds程序主要是使用xmr-stak挖礦程序挖掘門羅幣

5、編譯libcset.c并將libcset.so設(shè)置為預(yù)加載動(dòng)態(tài)鏈接庫,隱藏病毒相關(guān)。

6、之前版本是將watchdog程序設(shè)置為開機(jī)啟動(dòng)項(xiàng),而當(dāng)前版本是編寫了一個(gè)名叫netdns的腳本將其設(shè)置為開機(jī)啟動(dòng)項(xiàng),并作為kthrotlds的守護(hù)進(jìn)程。

7、礦池及錢包地址:

礦池:sg.minexmr.com:5555

錢包地址:

47eCpELDZBiVoxDT1tBxCX7fFU4kcSTDLTW2FzYTuB1H3yzrKTtXLAVRsBWcsYpfQzfHjHKtQAJshNyTU88LwNY4Q3rHFYA

8、域名:https://pastebin.com(未改變)

對(duì)應(yīng)ip:104.20.209.21(未改變)

9、相關(guān)Md5特征:

da7ee5683fb870bae61e9c4088a661e466613e2e4210dce89b562635b769bc2183e651497c59a14ca8d5abab855659554c62c53ae69d8e9290aaccb5ee694716f1bdc8b12f2ef0279cd265c79bd6fd9ec7560dd3933774185ce19ddbee5e526c

0x6 加固建議

病毒程序可能是通過利用redis未授權(quán)漏洞植入,所以請(qǐng)做好redis方面的加固。

Redis未授權(quán)漏洞簡介:Redis在默認(rèn)配置下,會(huì)將服務(wù)綁定在0.0.0.0:6379上,即暴露在公網(wǎng)上。如果同時(shí)又沒有開啟相關(guān)的認(rèn)證,就會(huì)導(dǎo)致任意用戶訪問redis服務(wù),進(jìn)行數(shù)據(jù)庫操作,并且通過進(jìn)一步利用,還可以獲得系統(tǒng)權(quán)限。

以下是redis方面的加固建議:

1. 將修改redis配置文件,將服務(wù)綁定在本機(jī)127.0.0.1上。

2.修改redis.conf,設(shè)置訪問認(rèn)證,啟用密碼認(rèn)證。
3. 在防火墻處指定可訪問redis服務(wù)的ip 。

4. 修改修改redis默認(rèn)端口。

5. 禁用config指令防止惡意操作,這樣即使存在未授權(quán)訪問,也能夠給攻擊者使用config 指令加大難度。

6. 使用普通權(quán)限運(yùn)行redis服務(wù),這樣即使攻擊者獲得了服務(wù)器權(quán)限也只是普通用戶權(quán)限。

0x7 病毒處置辦法

1)默安科技已針對(duì)病毒開發(fā)自動(dòng)化清理腳本,腳本地址:

https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool

3)建議使用合適工具對(duì)全網(wǎng)服務(wù)器進(jìn)行排查Redis未授權(quán)訪問漏洞并進(jìn)行安全加固,從源頭上避免感染病毒。

4)緊急情況下,為避免內(nèi)網(wǎng)大量傳播,可以臨時(shí)對(duì)被感染機(jī)器先進(jìn)行斷網(wǎng)隔離處理。

5)不影響業(yè)務(wù)的情況下,建議臨時(shí)刪除機(jī)器上.ssh/known_hosts和登錄密鑰文件。

關(guān)于如何進(jìn)行Kthrotlds挖礦病毒的分析就分享到這里啦,希望上述內(nèi)容能夠讓大家有所提升。如果想要學(xué)習(xí)更多知識(shí),請(qǐng)大家多多留意小編的更新。謝謝大家關(guān)注一下億速云網(wǎng)站!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI