--以及修复系统权限、重置 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 密码并加固安全,确保系统恢复干净、长期可靠运行。
评论区(0 条)
发表评论⏳ 加载编辑器…