安全 | 挖礦木馬自助清理手冊
點擊“程序員面試吧”,后臺回復:“面試”
獲取程序員面試寶典
一、什么是挖礦木馬
部分挖礦木馬還具備蠕蟲化的特點,在主機被成功入侵之后,挖礦木馬還會向內網滲透,并在被入侵的服務器上持久化駐留以獲取最大收益。
挖礦木馬的整體攻擊流程大致如下圖所示:

二、挖礦木馬中招特征
挖礦木馬會在用戶不知情的情況下利用主機的算力進行挖礦,最明顯的特征就是主機的CPU被大量消耗,查看云主機CPU占用率的方法有兩種:
控制臺實例監(jiān)控

主機執(zhí)行TOP命令
如下圖所示,通過執(zhí)行top命令,即可在返回結果中看到當時系統(tǒng)的CPU占用率。
top -c
如果云主機CPU占用率居高不下,那么主機很有可能已經被植入了挖礦木馬,會影響服務器上的其他應用的正常運行,需要立刻上機排查。
三、清理挖礦木馬
及時隔離主機
部分帶有蠕蟲功能的挖礦木馬在取得主機的控制權后,會繼續(xù)對公網的其他主機,或者以當前主機作為跳板機對同一局域網內的其他主機進行橫向滲透,所以在發(fā)現(xiàn)主機被植入挖礦木馬后,在不影響業(yè)務正常運行的前提下,應該及時隔離受感染的主機,然后進行下一步分析和清除工作。
騰訊云主機可以通過設置安全組隔離主機,具體參考如下鏈接:https://cloud.tencent.com/document/product/215/20089
挖礦木馬不僅會連接礦池,還有可能會連接黑客的C2服務器,接收并執(zhí)行C2指令、投遞其他惡意木馬,所以需要及時進行網絡阻斷。
(1)檢查主機防火墻當前生效的iptables規(guī)則中是否存在業(yè)務范圍之外的可疑地址和端口,它們可能是挖礦木馬的礦池或C2地址
iptables -L -n(2)從iptables規(guī)則中清除可疑地址和端口
vi /etc/sysconfig/iptables(3)阻斷挖礦木馬的網絡通信
iptables -A INPUT -s 可疑地址 -j DROPiptables -A OUTPUT -d 可疑地址 -j DROP
大部分挖礦木馬會通過在受感染主機中寫入計劃任務實現(xiàn)持久化,如果僅僅只是清除挖礦進程,無法將其根除,到了預設的時間點,系統(tǒng)會通過計劃任務從黑客的C2服務器重新下載并執(zhí)行挖礦木馬。
挖礦木馬常見的計劃任務通常是下載并執(zhí)行sh腳本,如下圖所示:

可以通過執(zhí)行如下命令查看是否存在可疑定時任務,若有,則先保存相關記錄用于后續(xù)分析,再進行刪除:
查看系統(tǒng)當前用戶的計劃任務:
crontab -l查看系統(tǒng)特定用戶的計劃任務:
crontab -u username -l查看其他計劃任務文件:
cat /etc/crontabcat /var/spool/croncat /etc/anacrontabcat /etc/cron.d/cat /etc/cron.daily/cat /etc/cron.hourly/cat /etc/cron.weekly/cat /etc/cron.monthly/cat /var/spool/cron/
清除啟動項
除了計劃任務,挖礦木馬通過添加啟動項同樣能實現(xiàn)持久化??梢允褂萌缦旅畈榭撮_機啟動項中是否有異常的啟動服務。
CentOS7以下版本:
chkconfig –listCentOS7及以上版本:
systemctl list-unit-files如果發(fā)現(xiàn)有惡意啟動項,可以通過如下命令進行關閉:
CentOS7以下版本:
chkconfig 服務名 offCentOS7及以上版本:
systemctl disable 服務名另外,還需要仔細排查以下目錄及文件,及時刪除可疑的啟動項:
/usr/lib/systemd/system/usr/lib/systemd/system/multi-user.target.wants/etc/rc.local/etc/inittab/etc/rc0.d//etc/rc1.d//etc/rc2.d//etc/rc3.d//etc/rc4.d//etc/rc5.d//etc/rc6.d//etc/rc.d/
排查的時候,可以按照文件修改時間來排序,重點排查近期被創(chuàng)建服務項。如下圖所示,系統(tǒng)近期被創(chuàng)建了一個名為bot.service的服務,該服務在系統(tǒng)啟動時會啟動/etc/kinsing這個木馬文件,需要關閉bot服務,并刪除/etc/kinsing文件。


檢查/etc/ld.so.preload(該文件默認為空),清除異常的動態(tài)鏈接庫。可以執(zhí)行`> /etc/ld.so.preload`命令進行清除。

挖礦木馬通常還會在~/.ssh/authoruzed_keys文件中寫入黑客的SSH公鑰,這樣子就算用戶將挖礦木馬清除得一干二凈,黑客還是可以免密登陸該主機,這也是常見的保持服務器控制權的手段。
排查~/.ssh/authorized_keys文件,如果發(fā)現(xiàn)可疑的SSH公鑰,直接刪除。
清除挖礦木馬
(1)清除挖礦進程
挖礦木馬最大的特點就是會在用戶不知情的情況下,利用主機的算力進行挖礦,從而消耗主機大量的CPU資源,所以,通過執(zhí)行如下命令排查系統(tǒng)中占用大量CPU資源的進程。
top -cps -ef

確認相關進程為挖礦進程后,按照如下步驟將其清除:
獲取并記錄挖礦進程的文件路徑:
ls -l /proc/$PID/exe殺死挖礦進程:
kill -9 $PID
(2)清除其它相關惡意進程
惡意進程與外部的C2服務器進行通信時,往往會開啟端口進行監(jiān)聽。執(zhí)行如下命令,查看服務器是否有未被授權的端口被監(jiān)聽。
netstat -antp
若有未授權進程,按照如下步驟將其清除:
獲取并記錄未授權進程的文件路徑:
ls -l /proc/$PID/exe殺死未授權進程:
kill -9 $PID
還可以通過如下命令排查近期新增的文件,清除相關木馬
find /etc -ctime -2 (這里指定目錄為/etc,獲取近2天內的新增文件)lsof -c kinsing (這里要查看文件名為kinsing的相關進程信息)

風險排查、安全加固
對系統(tǒng)進行風險排查和安全加固,避免挖礦木馬卷土重來,詳情可參考如下鏈接:https://cloud.tencent.com/document/product/296/9604
四. 常見問題
明明剛剛清理了挖礦木馬,沒過多久就又卷土重來?
很多用戶會反饋挖礦木馬老是清理不干凈,明明已經Kill了進程,刪除了木馬文件,沒過多久,CPU占用率又上來了。究其根本,還是因為清除得不夠徹底。大部分用戶都只是Kill掉挖礦進程和對應文件,卻沒有清理計劃任務和守護進程。
一般建議先清除計劃任務、啟動項、守護進程,再清除挖礦進程和其他惡意進程。

如何判定可疑進程是否為惡意進程?
如下圖所示,未知進程kinsing監(jiān)聽本地31458端口,非常可疑,可通過如下方法判定:
(1)執(zhí)行`ls -al /proc/$PID/exe`確認可疑進程對應的文件;
(2)若文件未被刪除,則直接上傳文件到Virustotal進行檢測,或者計算出文件對應的md5,使用md5去Virustotal進行查詢;若文件已被刪除,可執(zhí)行`cat /proc/$PID/exe > /tmp/t.bin`將進程dump到特定目錄,再上傳文件到Virustotal或者計算dump文件對應的md5到Virustotal進行查詢。如果有多款殺毒引擎同時檢出,那基本可以判定該進程為惡意進程。


Virustotal地址:https://www.virustotal.com/gui/s
為什么系統(tǒng)CPU占用率接近100%,卻看不到是哪個進程導致的?

(1)top源文件被篡改,惡意進程信息被過濾后返回

通過執(zhí)行如下命令即可復原:
rm -rf /usr/bin/top && mv /usr/bin/top.original /usr/bin/top【相關文章】
https://blog.csdn.net/chenmozhe22/article/details/112578057
(2)篡改預加載so文件,ls、top、ps等命令已經被木馬的動態(tài)鏈接庫劫持,無法獲得木馬進程相關的信息

通過執(zhí)行如下命令即可復原:
> /etc/ld.so.preload && rm -rf 惡意so文件路徑【相關文章】
https://cloud.tencent.com/developer/article/1744547
(3)通過其他未知手段篡改系統(tǒng)命令
可分別嘗試如下兩種方案解決:
i.從其他相同版本系統(tǒng)中拷貝命令源文件到當前系統(tǒng)中進行覆蓋;可使用uname -a命令查看當前系統(tǒng)版本;
ii.或者安裝busybox來對系統(tǒng)進行排查。
busybox是一個集成了300多個最常用Linux命令和工具的軟件,可以使用busybox替代系統(tǒng)命令對系統(tǒng)進行排查;
yum -y install wget make gcc perl glibc-static ncurses-devel libgcrypt-develwget http://busybox.net/downloads/busybox-1.33.0.tar.bz2tar -jxvf busybox-1.33.0.tar.bz2cd busybox-1.33.0 && make && make install
【相關文章】
https://www.cnblogs.com/angryprogrammer/p/13456681.html
文章轉載:烏雲安全
(版權歸原作者所有,侵刪)
