Linux服务器Coinminer挖矿病毒应急处置简记

Linux服务器Coinminer挖矿病毒应急处置简记

背景

上级IT检测到某训练服务器对矿池发起恶意连接并进行了通报,本人受邀协助服务器运维负责同学进行应急处置。

发现过程

初步排查

  1. 收到报告我们第一时间断网并开始排查可疑进程与连接,未发现明显异常
  2. 尝试联网蹲守观察资源使用情况,发现root用户下有异常进程:
    • nvitop显示为"python3的进程不定时短暂使用GPU
    • htop中发现名为[kworker/00:0]的可疑进程
  3. 使用多种方法查询“python3进程对应的PID的相关信息,均被隐藏,无收获。
  4. 检查系统日志发现可疑CRON执行记录:Bash 运行Base64编码:L3Jvb3QvLmNvbmZpZy9odG9wL2RlZnVuY3QK
    解码后指向文件:/root/.config/htop/defunct
  5. 检查CRON配置,在/etc/cron.d/目录下发现defunct文件,内容为上述命令

深入分析

恶意文件分析

  1. 使用云沙箱分析defunct可执行文件:
  • 发现对ld.so.preload的调用行为
  • ld.so.preload中加载了libnss.so
  • 反汇编libnss.so显示其功能为遍历进程并隐藏恶意进程
  1. 发现所有相关恶意文件创建时间一致:2025年3月15日23:25

  2. defunct执行strace追踪系统调用:

  • 程序首先检查目标路径,如/usr/share/terminfo/a/.b/.c/0路径是否存在
  • /dev/urandom读取随机字节,用于生成随机文件名
  • 使用clone系统调用创建子进程(带有CLONE_VM|CLONE_VFORK|SIGCHLD标志)
  • 子进程通过execve执行/bin/sh命令,运行gzip -dc /usr/share/terminfo/a/.b/.c/0解压缩隐藏的可执行文件
  • 解压后的内容包含ELF头(\177ELF),表明是一个可执行二进制文件
  • 程序将解压内容写入/tmp/下的随机命名文件(如/tmp/8EvfKPw3
  • 解压完成后通过chmod 755 /tmp/8EvfKPw3设置可执行权限
  • 通过execve("/tmp/8EvfKPw3", ["[kworker/00:0]"], ...)执行该文件并将进程名伪装为[kworker/00:0]
  • 恶意程序会立即使用unlinkat(AT_FDCWD, "/tmp/8EvfKPw3", 0)删除磁盘上的可执行文件,仅在内存中运行
  • 执行后使用clone系统调用创建多个线程(CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD)
  • 每个线程都会设置独立的信号栈(sigaltstack
  • 使用大量的rt_sigaction调用
  • 读取/var/run/utmp信息,获取系统所有登录用户和终端信息
  • 通过readlinkat等系统调用检查自身进程状态,确保隐蔽性

log文件过大,目前只能进行以上简单分析,若深入分析应能找到许多其他行为。

  1. 恶意程序的隐匿手段:
  • 将主要可执行文件隐藏在系统正常目录的深层子目录中(/usr/share/terminfo/a/.b/.c/0
  • 使用压缩技术(gzip)隐藏实际有效载荷
  • 通过rt_sigaction大量修改信号处理方式,避免被意外终止?
  • 使用文件描述符重定向技术(fcntldup2)隐藏输出
  • 通过创建名称类似系统进程的伪进程(kworker)实现伪装
  • 利用ld.so.preloadlibnss.so进行进程隐藏
  1. /usr/share/terminfo进行打包,上传云沙箱进行分析,确认为coinminer变种。

云沙箱检测结果

挖矿程序特征

  1. 挖矿程序与矿池建立网络连接:
  • 矿池IP:13.114.153.90:443
  • 钱包地址:85CzLd3x6syE6WTDBBDudkQksqVY9WCanSwZPNPa2bPnVHMg2KK4ZNQXKZjXхJFGbЗGWhо5CHHpWDQFh751sPsk2ЗnF6vLF.0ddfa1b5a9e84026b65db4f908c3f3c23cecefab50888е
  1. 运行特征:
  • 使用kworker进程作为掩护
  • /proc/[pid]/exe指向已被删除的/tmp/下可执行文件
  • 大量python3进程执行挖矿任务
  • python3进程的/proc/[pid]/exe未指向任何可执行文件

处置措施

  1. 移除恶意文件:
  • 删除ld.so.preloadlibnss.so
  • 终止所有可疑进程:kill -9 [pid]
  • 删除恶意CRON定时任务
  • 移除/usr/share/terminfo下的恶意内容
  1. 留存证据:
  • 保留defunct可执行文件样本
  • 备份/usr/share/terminfo下的可疑文件
  • 记录网络连接和钱包地址信息
  1. 后续监控:
  • 观察24小时,确认无恶意进程重新启动
  • 检查系统日志(发现3月14日前后日志已被清除)

后续处置建议

  1. 加强服务器安全管理
  • 及时更新系统补丁
  • 限制远程访问权限
  • 建立审计制度
  1. 部署安全监控
  • 安装入侵检测系统
  • 定期检查异常进程和文件
  • 监控资源使用情况
  • 使用审计工具监控的安全风险操作,以便于在发生网络入侵等安全事件时,能够为追踪溯源提供日志及时间节点的支撑
  1. 视情况考虑重装系统,确保彻底清除隐藏后门

结论

此次事件为典型的针对Linux服务器的挖矿木马攻击,攻击者植入恶意程序,并通过多种隐藏手段规避检测。这次处置中发现该训练服务器存在许多安全漏洞,建议采取进一步措施加强安全管理。


Linux服务器Coinminer挖矿病毒应急处置简记
https://sidiexplore.xyz/2025/04/19/linux-malware-response/
作者
LIANG Sidi
发布于
2025年4月19日
许可协议