前端同事反应公司的gitlab突然打不开了,自己通过xshell连接服务器报错,很艰难的连上之后发现服务器CPU满负荷运行,进程watchbog占用了几乎所有的CPU资源,杀进程不起作用,网上搜索发现这个进程为一种恶意挖矿病毒,最后以此脚本解决此挖矿病毒:
#!/usr/bin/env bash
#description : 本脚本主要用来清理watchbog服务
tmp="/tmp/.watchbog.log"
_clearPid(){
pids=$(ps -ef | grep pastebin | grep curl | awk '{print $2}')
test $pids && echo $pids | xargs kill -9 && echo "成功删除pastbin进程 $pids"
ps -ef | grep watchbog | grep -v grep > $tmp
pids=$(awk '{print $2}' $tmp)
echo "查看watchbog进程信息:" && cat $tmp
test "$pids" && echo $pids | xargs kill -9
ps -ef | grep watchbog | grep -v grep
}
echo "准备删除watchbog"
_clearPid
echo "查看当前cron文件"
find /etc -maxdepth 2 -name oanacroane -exec rm -f {} \;
cd /etc/cron.d && sed -i '/curl.*pastebin.com/d' *
crontab -l
crontab -r
echo "查看删除之后的crontab"
crontab -l
_clearPid
过了两天发现服务器又连不上,最后重启,执行crontab -l
:发现不明定时任务,crontab -r后,杀kworkerds进程,清理/var/tmp目录,过几秒钟又发现定时任务在运行,最后解决方案如下:
#!/bin/bash
ps aux|grep "I2NvZGluZzogdXRmLTg"|grep -v grep|awk '{print $2}'|xargs kill -9
echo "" > /etc/cron.d/root
echo "" > /etc/cron.d/system
echo "" > /var/spool/cron/root
echo "" > /var/spool/cron/crontabs/root
rm -rf /etc/cron.hourly/oanacron
rm -rf /etc/cron.daily/oanacron
rm -rf /etc/cron.monthly/oanacron
rm -rf /bin/httpdns
sed -i '$d' /etc/crontab
sed -i '$d' /etc/ld.so.preload
rm -rf /usr/local/lib/libntp.so
ps aux|grep kworkerds|grep -v color|awk '{print $2}'|xargs kill -9
rm -rf /tmp/.tmph
rm -rf /bin/kworkerds
rm -rf /tmp/kworkerds
rm -rf /usr/sbin/kworkerds
rm -rf /etc/init.d/kworker
chkconfig --del kworker
最后成功解决挖矿病毒。