如何发现并清除 NAS 上被植入的 Java 挖矿木马
--以及修复系统权限、重置 root 密码的全过程。
背景简介
最近在日常运维中,发现 NAS 上 CPU 利用率飙升,进程列表中出现一个占用超高内存和 CPU 的 java
进程,风扇狂转,root无法登录。怀疑被植入了挖矿病毒,需要紧急定位并清除,同时修复后台留下的权限漏洞。
一、定位并删除可疑 Java 挖矿程序
- 发现异常进程 在顶层监控工具(如
top
/htop
)中,看到一条进程:
PID USER ... COMMAND
1795749 root ... java
占用近 200% CPU,内存也超过 2 GB。
- 确认真实命令及可执行文件路径
sudo ps -p 1795749 -o args=
sudo readlink -f /proc/1795749/exe
结果显示:
/var/tmp/.cache/java
说明这是某个自解压包在 /var/tmp/.cache
下解出的静态链接 Java 运行时。
- 分析可疑目录结构 切入
/var/tmp/.cache
目录,发现典型挖矿木马结构:
a/ bash.pid cron.d/ h32/ h64/ java run upd x
java
:静态编译的 ELF 抓矿二进制cron.d/
:可能用于自启动bash.pid
:记录挖矿子进程 PID
- 立即停掉挖矿进程
sudo kill 1795749
# 若不响应:
sudo kill -9 1795749
确认 ps aux | grep [j]ava
中不再有高占用进程。
- 清理自启动脚本
sudo rm -f /var/tmp/.cache/cron.d/*
sudo crontab -u root -l # 检查 root crontab
sudo crontab -u root -e # 删除任何指向 /var/tmp/.cache/run 的条目
- 删除挖矿缓存目录
cd / # 先切换到安全目录,避免 “getcwd” 错误
sudo rm -rf /var/tmp/.cache
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
此时系统 CPU 和内存占用迅速回落,确认清除彻底。
二、修复 UID 冲突并重置 root 密码
- 检查
/etc/passwd
发现误将第二个账号也设成 UID 0:多个 UID 0 账户会让 PAM(可插拔认证模块)在认证时迷失方向,导致像 “su: 鉴定故障” 这样的错误
root:x:0:0:root:/root:/bin/bash
system:x:0:22::/home/system:/bin/sh
导致认证混乱,无法正常 su - root
。
- 修改冲突账号 UID 编辑
/etc/passwd
,将第二行改为非 0:
- system:x:0:22::/home/system:/bin/sh
+ system:x:1001:22::/home/system:/bin/sh
- 切换到安全目录避免
getcwd
错误
cd ~
- 解锁并重设 root 密码
sudo passwd -u root
sudo passwd root
按提示输入新密码,确认无误后可用:
su - root
- 重启并验证
sudo reboot
系统重启后,su - root
应能正常进入;ps aux | grep java
、top
均无异常挖矿进程。
三、后续安全加固建议
- 定期审计
/var/tmp
、/tmp
、cron.d
目录,防止脚本植入。 - 最小化 root 登录,仅通过 SSH key 认证,并关闭密码登录。
- 安装入侵检测与防病毒软件(如 ClamAV、rkhunter 等),及时扫描可疑文件。
- 定期备份
/etc/passwd
、/etc/shadow
,并使用版本管理或快照。
通过上述步骤,完成了一次针对 NAS 挖矿病毒的完整应急响应:从定位挖矿进程、清理缓存与自启动脚本,到修复系统权限冲突、重置 root 密码并加固安全,确保系统恢复干净、长期可靠运行。
本文作者: 永生
本文链接: https://yys.zone/detail/?id=424
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
评论列表 (0 条评论)