Linux服务器Coinminer挖矿病毒应急处置简记
Linux服务器Coinminer挖矿病毒应急处置简记
背景
上级IT检测到某训练服务器对矿池发起恶意连接并进行了通报,本人受邀协助服务器运维负责同学进行应急处置。
发现过程
初步排查
- 收到报告我们第一时间断网并开始排查可疑进程与连接,未发现明显异常
- 尝试联网蹲守观察资源使用情况,发现root用户下有异常进程:
nvitop
显示为"python3
的进程不定时短暂使用GPUhtop
中发现名为[kworker/00:0]
的可疑进程
- 使用多种方法查询
“python3
进程对应的PID的相关信息,均被隐藏,无收获。 - 检查系统日志发现可疑CRON执行记录:Bash 运行Base64编码:L3Jvb3QvLmNvbmZpZy9odG9wL2RlZnVuY3QK
解码后指向文件:/root/.config/htop/defunct
- 检查CRON配置,在
/etc/cron.d/
目录下发现defunct
文件,内容为上述命令
深入分析
恶意文件分析
- 使用云沙箱分析
defunct
可执行文件:
- 发现对
ld.so.preload
的调用行为 ld.so.preload
中加载了libnss.so
- 反汇编
libnss.so
显示其功能为遍历进程并隐藏恶意进程
发现所有相关恶意文件创建时间一致:2025年3月15日23:25
对
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文件过大,目前只能进行以上简单分析,若深入分析应能找到许多其他行为。
- 恶意程序的隐匿手段:
- 将主要可执行文件隐藏在系统正常目录的深层子目录中(
/usr/share/terminfo/a/.b/.c/0
) - 使用压缩技术(gzip)隐藏实际有效载荷
- 通过
rt_sigaction
大量修改信号处理方式,避免被意外终止? - 使用文件描述符重定向技术(
fcntl
、dup2
)隐藏输出 - 通过创建名称类似系统进程的伪进程(kworker)实现伪装
- 利用
ld.so.preload
和libnss.so
进行进程隐藏
- 对
/usr/share/terminfo
进行打包,上传云沙箱进行分析,确认为coinminer变种。
挖矿程序特征
- 挖矿程序与矿池建立网络连接:
- 矿池IP:13.114.153.90:443
- 钱包地址:85CzLd3x6syE6WTDBBDudkQksqVY9WCanSwZPNPa2bPnVHMg2KK4ZNQXKZjXхJFGbЗGWhо5CHHpWDQFh751sPsk2ЗnF6vLF.0ddfa1b5a9e84026b65db4f908c3f3c23cecefab50888е
- 运行特征:
- 使用
kworker
进程作为掩护 /proc/[pid]/exe
指向已被删除的/tmp/
下可执行文件- 大量
python3
进程执行挖矿任务 python3
进程的/proc/[pid]/exe
未指向任何可执行文件
处置措施
- 移除恶意文件:
- 删除
ld.so.preload
和libnss.so
- 终止所有可疑进程:
kill -9 [pid]
- 删除恶意CRON定时任务
- 移除
/usr/share/terminfo
下的恶意内容
- 留存证据:
- 保留
defunct
可执行文件样本 - 备份
/usr/share/terminfo
下的可疑文件 - 记录网络连接和钱包地址信息
- 后续监控:
- 观察24小时,确认无恶意进程重新启动
- 检查系统日志(发现3月14日前后日志已被清除)
后续处置建议
- 加强服务器安全管理
- 及时更新系统补丁
- 限制远程访问权限
- 建立审计制度
- 部署安全监控
- 安装入侵检测系统
- 定期检查异常进程和文件
- 监控资源使用情况
- 使用审计工具监控的安全风险操作,以便于在发生网络入侵等安全事件时,能够为追踪溯源提供日志及时间节点的支撑
- 视情况考虑重装系统,确保彻底清除隐藏后门
结论
此次事件为典型的针对Linux服务器的挖矿木马攻击,攻击者植入恶意程序,并通过多种隐藏手段规避检测。这次处置中发现该训练服务器存在许多安全漏洞,建议采取进一步措施加强安全管理。
Linux服务器Coinminer挖矿病毒应急处置简记
https://sidiexplore.xyz/2025/04/19/linux-malware-response/