linux清除隱藏的挖礦程式
排查過程:
1、top檢視,找佔CPU高的程序:
通過按照CPU佔比降序檢視,除了少數幾個程序佔CPU,並沒有發現可疑程式 佔用CPU高的挖礦程式應該是隱藏在某個地方了,
2、使用命令ps -aux --sort=-pcpu|head -10查詢,果然找到了這個程式:
[[email protected] ~]# ps -aux --sort=-pcpu|head -10 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 14454 179 0.0 6780 740 ? Ssl 08:00 708:24 [xfsdatad]
解決過程:
1、首先殺掉上面這個佔CPU高的xfsdatad程序:
[[email protected] ~]# kill -9 14454
再使用top檢視CPU,馬上就降下來了:
2、清理定時任務 挖礦程式一般都設定了定時任務啟動指令碼程式,檢視定時任務,crontab -l檢視是找不到的。得看/etc/crontab檔案。果然有任務在啟動程式指令碼 /usr/lib/libiacpkmn.so.3
[[email protected] bin]# cat /etc/crontab
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0/8 00 * * * /bin/bash /usr/lib/libiacpkmn.so.3 >/dev/null 2>&1
[ [email protected] bin]#
刪除掉定時任務,防止再次啟動指令碼
3、刪除指令碼檔案/usr/lib/libiacpkmn.so.3 根據定時任務中暴露的可疑檔案所在路徑/usr/lib/libiacpkmn.so.3,徹底刪除該指令碼檔案 rm -f /usr/lib/libiacpkmn.so.3 。 結果顯示檔案是被加了鎖的,使用root使用者去刪除、mv、chmo/chown改許可權,或者清空檔案,任何操作都會報Permission denied(沒許可權):
[[email protected] lib]# cd /usr/lib
[[email protected] lib]# rm -rf libiacpkmn.so.3
rm: cannot remove ‘libiacpkmn.so.3’: Operation not permitted
[[email protected] lib]# >libiacpkmn.so.3
-bash: libiacpkmn.so.3: Permission denied
因此需要確認檔案是否枷鎖,lsattr命令檢視,發現有一個 i 許可權:lsattr 命令介紹 發現 I 許可權如下: 不能被刪除、改名、設定連結、寫入或新增資料;
[[email protected] lib]# lsattr libiacpkmn.so.3
----i--------e-- libiacpkmn.so.3
使用命令撤銷i許可權:
[[email protected] lib]# chattr -i libiacpkmn.so.3
注意:如果不能使用chattr命令,就使用yum -y install e2fsprogs命令安裝即可。
然後再檢查檔案許可權,就沒有i許可權了。再刪除檔案成功:
[[email protected] lib]# lsattr libiacpkmn.so.3
-------------e-- libiacpkmn.so.3
[[email protected] lib]# rm -f libiacpkmn.so.3
[[email protected] lib]#
[[email protected] ~]# find / -name "libiacpkmn.so.3" #查詢檔案,確認已經刪除OK
[[email protected] ~]#
4、同樣的方法刪除殘留檔案nfstruncate 查詢挖礦程式根源所在地 已知 PID 14454。同時根據 ps -anx查詢到的埠號查詢埠14454, cd /proc/14454 ls -a 查詢到/etc/ 目錄存在啟動檔案nfstruncate exe -> /etc/rc.d/init.d/nfstruncate #這個nfstruncate 檔案,也需要刪除
[[email protected] lib]# find / -name "nfstruncate" #查找出來這個檔案有兩個,都刪除
/etc/rc.d/init.d/nfstruncate
/usr/bin/nfstruncate
[[email protected] lib]# cd /etc/rc.d/init.d/
[[email protected] init.d]# chattr -i nfstruncate
[[email protected] init.d]# rm -rf nfstruncate
[[email protected] bin]#
[[email protected] init.d]# cd /usr/bin/
[[email protected] bin]# chattr -i nfstruncate
[[email protected] bin]# rm -rf nfstruncate
[[email protected] bin]#
[[email protected] ~]# find / -name "nfstruncate" #查詢檔案,確認已經刪除OK
[[email protected] bin]#
補記: 在後面的一次防毒中,/proc/pid/目錄下面的exe指向的是另一個檔案:
exe -> /usr/lib/libiacpkmn.so.3 (deleted)
但是/etc/rc.d/init.d/目錄和/usr/bin/下面也都存在nfstruncate檔案。因此不僅要刪除 /usr/lib/libiacpkmn.so.3,也要刪除/etc/rc.d/init.d/nfstruncate和/usr/bin/nfstruncate。三個檔案都得清理乾淨。
5、清除/etc/rc*.d/目錄下的S01nfstruncate檔案連結,在rc0.d-rc6.d目錄下都存在S01nfstruncate檔案,全部刪除。 檢視/etc/rc0.d目錄下的檔案連結S01nfstruncate:
[[email protected] rc0.d]# ll
total 0
lrwxrwxrwx 1 root root 20 May 3 2016 K01agentwatch -> ../init.d/agentwatch
lrwxrwxrwx 1 root root 15 Mar 27 2017 K15nginx -> ../init.d/nginx
lrwxrwxrwx 1 root root 19 Mar 27 2017 K25uwsgi9090 -> ../init.d/uwsgi9090
lrwxrwxrwx 1 root root 15 May 3 2016 K50aegis -> ../init.d/aegis
lrwxrwxrwx 1 root root 20 May 3 2016 K50netconsole -> ../init.d/netconsole
lrwxrwxrwx 1 root root 22 Jun 21 2017 K80cloudmonitor -> ../init.d/cloudmonitor
lrwxrwxrwx 1 root root 17 May 3 2016 K90network -> ../init.d/network
lrwxrwxrwx 1 root root 23 Oct 19 08:00 S01nfstruncate -> /etc/init.d/nfstruncate #需要刪除
找到所有的檔案連結刪除:
[[email protected] rc0.d]# find / -name "S01nfs*"
/etc/rc.d/rc1.d/S01nfstruncate
/etc/rc.d/rc2.d/S01nfstruncate
/etc/rc.d/rc4.d/S01nfstruncate
/etc/rc.d/rc3.d/S01nfstruncate
/etc/rc.d/rc6.d/S01nfstruncate
/etc/rc.d/rc5.d/S01nfstruncate
/etc/rc.d/rc0.d/S01nfstruncate
find: ‘/proc/4796’: No such file or directory
find: ‘/proc/5488’: No such file or directory
[[email protected] rc0.d]#
[[email protected] rc0.d]# find / -name "S01nfs*"|xargs rm -f
6、再top觀察CPU,確認不再無故飆高,防毒任務就完成了。