记服务器中招门罗币挖矿病毒排查过程

上周帮用户测试的时候,服务器还未有任何负载程序,但服务器负载一直在持续升高,稳步飙升,最高居然达到了410的负载,跟用户确认,系统是新装的,并未装过任何软件

注:服务器配置为24核64G

image

在排查过程中,top命令查看并未有进程占用CPU过高的情况,ps -ef也未发现有异常进程,负载一直在升高,最终导致ssh无法连接,之后只能用户到机房查看情况,在机房排查的过程中,终端一直出现如下报错

Kernel:NMI watchdog: BUG: soft lockup - CPU#0 stuck for 26s

在网上查阅相关资料,是因为服务器在跑大量高负载程序,造成cpu soft lockup,恢复ssh连接以后,参考https://www.cnblogs.com/nulige/p/8000490.html文档进行了内核参数修改,此时服务器刚重启过,负载并未升高,持续观察,在观察过程中发现,负载仍然在升高,大概20分钟时间,负载从最初的不足1达到了18,发现并未解决问题,此时已经想到服务器可能中毒了。

首先使用ss -lntp命令查看有没有建立大量异常连接端口,发现并未有异常连接端口,查看计划任务,确实有一项计划任务,内容是

* * * * * /tmp/.crond/crond

/tmp/.crond/目录查看,一共有三个文件

image

首先查看可执行文件crond的文件内容,内容如下

image

总体来说就是一直在执行X86_64的可执行程序,接着排查X86_64程序是做什么的

image

在这里出现了重点xmrig,不由得心生好奇,继续查阅资料,网上有一大堆的文章,总结来说就是个门罗币挖矿程序,到这里已经找到了病毒真凶,是通过计划任务运行的xmrig门罗币挖矿程序,接下来就是如何清理了,首先把计划任务停掉删除,发现服务器的负载在几分钟后开始慢慢下降,此时和用户沟通如何处理病毒程序,就在沟通的过程中,发现负载再次异常升高,查看计划任务,发现计划任务被重写了,内容是

image

top命令显示crond程序cpu使用率长期处于1000+的状态,这一次都不加掩饰了

在这里直接把/tmp/.crond相关程序及计划任务全部删除,查看sshd服务是否起了异常端口,发现并未有异常端口后修改了root用户密码,使用由于是新的服务器,不存在公钥私钥,查看系统没有存在异常用户,使用w命令查看当前正在连接此服务器的ip,和用户确认并未有异常连接,查看系统相关日志,这个计划任务是在服务器刚开通外网ssh端口不久后开始执行的;在此也提醒大家,服务器开通外网访问时,一定注意设置复杂密码,回溯发现,病毒被植入的原因很有可能是因为开通外网访问时设置的密码太过简单。