1. 程式人生 > 其它 >linux系統挖礦木馬清理流程

linux系統挖礦木馬清理流程

一、檢視cpu佔用率

如果您的主機CPU佔用率居高不下,那麼主機很有可能已經被植入了挖礦木馬,會影響伺服器上的其他應用的正常執行,需要立刻上機排查。

top -c

二、清理挖礦木馬

1.及時隔離主機
2.阻斷異常網路通訊
挖礦木馬不僅會連線礦池,還有可能會連線黑客的C2伺服器,接收並執行C2指令、投遞其他惡意木馬,所以需要及時進行網路阻斷。
1)檢查主機防火牆當前生效的iptables規則中是否存在業務範圍之外的可疑地址和埠,它們可能是挖礦木馬的礦池或C2地址

iptables -L -n

2)從iptables規則中清除可疑地址和埠

vi /etc/sysconfig/iptables

3)阻斷挖礦木馬的網路通訊

iptables -A INPUT -s 可疑地址 -j DROP
iptables -A OUTPUT -d 可疑地址 -j DROP

3.清楚任務計劃
大部分挖礦木馬會通過在受感染主機中寫入計劃任務實現持久化,如果僅僅只是清除挖礦程序,無法將其根除,到了預設的時間點,系統會通過計劃任務從黑客的C2伺服器重新下載並執行挖礦木馬。

檢視系統當前使用者的計劃任務:

crontab -l

檢視系統特定使用者的計劃任務:

crontab -u username -l

檢視其他計劃任務檔案:

cat /etc/crontab
cat /var/spool/cron
cat /etc/anacrontab
cat /etc/cron.d/
cat /etc/cron.daily/
cat /etc/cron.hourly/
cat /etc/cron.weekly/
cat /etc/cron.monthly/
cat /var/spool/cron/

4.清除啟動項
除了計劃任務,挖礦木馬通過新增啟動項同樣能實現持久化。可以使用如下命令檢視開機啟動項中是否有異常的啟動服務。

CentOS7以下版本:

chkconfig –list

CentOS7及以上版本:

systemctl list-unit-files

如果發現有惡意啟動項,可以通過如下命令進行關閉:

CentOS7以下版本:

chkconfig 服務名 off

CentOS7及以上版本:

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/

排查的時候,可以按照檔案修改時間來排序,重點排查近期被建立服務項。如下圖所示,系統近期被建立了一個名為bot.service的服務,該服務在系統啟動時會啟動/etc/kinsing這個木馬檔案,需要關閉bot服務,並刪除/etc/kinsing檔案。


5.清除欲載入so
通過配置/etc/ld.so.preload,可以自定義程式執行前優先載入的動態連結庫,部分木馬通過修改該檔案,新增惡意so檔案,從而實現挖礦程序的隱藏等惡意功能。

檢查/etc/ld.so.preload(該檔案預設為空),清除異常的動態連結庫。可以執行> /etc/ld.so.preload命令進行清除。

6.清除ssh公鑰
挖礦木馬通常還會在~/.ssh/authoruzed_keys檔案中寫入黑客的SSH公鑰,這樣子就算使用者將挖礦木馬清除得一乾二淨,黑客還是可以免密登陸該主機,這也是常見的保持伺服器控制權的手段。

排查~/.ssh/authorized_keys檔案,如果發現可疑的SSH公鑰,直接刪除。
7.清除挖礦木馬
1)清除挖礦程序

top -c
ps -ef

確認相關程序為挖礦程序後,按照如下步驟將其清除:
獲取並記錄挖礦程序的檔案路徑:

ls -l /proc/$PID/exe

殺死挖礦程序:

kill -9 $PID

刪除挖礦程序對應的檔案

2)清除其它相關惡意程序
惡意程序與外部的C2伺服器進行通訊時,往往會開啟埠進行監聽。執行如下命令,檢視伺服器是否有未被授權的埠被監聽。

netstat -antp


若有未授權程序,按照如下步驟將其清除:
獲取並記錄未授權程序的檔案路徑:

ls -l /proc/$PID/exe

殺死未授權程序:

kill -9 $PID

刪除未授權程序對應的檔案

還可以通過如下命令排查近期新增的檔案,清除相關木馬

 find /etc -ctime -2 (這裡指定目錄為/etc,獲取近2天內的新增檔案)
 lsof -c kinsing (這裡要檢視檔名為kinsing的相關程序資訊)


8.風險排查,安全加固

三、常見問題

1.木馬清理不徹底
一般建議先清除計劃任務、啟動項、守護程序,再清除挖礦程序和其他惡意程序。

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

3.為什麼cpu接近100%,但是所有程序佔用率都不高

1)top原始檔被篡改,惡意程序資訊被過濾後返回

通過如下命令可復原

rm -rf /usr/bin/top && mv /usr/bin/top.original /usr/bin/top

2)篡改預載入so檔案,ls、top、ps等命令已經被木馬的動態連結庫劫持,無法獲得木馬程序相關的資訊

通過如下命令可復原

> /etc/ld.so.preload && rm -rf 惡意so檔案路徑

3)通過其他未知手段篡改系統命令
可分別嘗試如下兩種方案解決:
i.從其他相同版本系統中拷貝命令原始檔到當前系統中進行覆蓋;可使用uname -a命令檢視當前系統版本;
ii.或者安裝busybox來對系統進行排查。busybox是一個集成了300多個最常用Linux命令和工具的軟體,可以使用busybox替代系統命令對系統進行排查;

yum -y install wget make gcc perl glibc-static ncurses-devel libgcrypt-devel
wget http://busybox.net/downloads/busybox-1.33.0.tar.bz2
tar -jxvf busybox-1.33.0.tar.bz2
cd busybox-1.33.0 && make && make install

相關文章:https://cloud.tencent.com/developer/article/1834731