Rootkit感染,隐藏进程处理删除

-
-
2026-01-02

Rootkit 感染

1. 初始系统状态检查与监控

  • 查看所有运行进程:
    • ps -ef
    • ps aux --sort=-%cpu | head -20 (按CPU使用率排序,显示前20个进程)
    • ps auxw --sort=-%cpu | head -15 (按CPU使用率排序,显示前15个进程)
    • ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head -20 (显示PID、PPID、命令、CPU、内存,按CPU排序)
    • ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head (显示PID、PPID、命令、内存、CPU,按CPU排序)
    • ps -eo pid,cmd | grep -vE "(sshd|crond|mysqld|teamviewer)" | head -20 (过滤掉常见合法进程)
    • ps aux | grep defunct (查找僵尸进程)
  • 查看网络连接:
    • netstat -tunp (查看所有TCP/UDP端口和进程)
    • netstat -tunp | awk '{if($6=="ESTABLISHED") print $0}' | grep -v "127.0.0.1" (查看所有非本地的ESTABLISHED连接)
    • netstat -tunp | grep -E "51.79.74.212|64.225.97.80|209.38.152.157|168.235.95.104|cc.systemctl.cc" (查找特定恶意IP的连接)
    • netstat -tunp | grep -E "(xmrpool|monero|nanopool|minexmr|supportxmr)" (查找挖矿相关连接)
    • netstat -tunp | grep ESTABLISHED |grep -v java |grep -v mysqld|grep -v sun | grep -v team|grep -v firefox (过滤掉常见合法连接)
  • 查看系统资源使用:
    • df -h (查看磁盘空间)
    • free -h (查看内存使用)
    • uptime (查看系统运行时间、负载)
    • iostat -x 3 (查看磁盘I/O,每3秒更新)
    • vmstat 1 (查看虚拟内存统计,每1秒更新)
    • top (实时监控系统资源)
    • htop (更友好的实时监控工具,需安装)
  • 查看系统信息:
    • ip add (查看IP地址)
    • cat /etc/os-release (查看操作系统版本信息)
    • cat /etc/centos-release (查看CentOS版本信息)
    • hostnamectl (查看主机名和系统信息)
    • uname -a (查看内核信息)
    • sensors (查看硬件传感器信息,如CPU温度)
  • 进程详细信息:
    • ls -la /proc/<PID>/exe (查看进程对应的可执行文件路径)
    • cat /proc/<PID>/cmdline (查看进程的完整命令行)
    • cat /proc/<PID>/environ (查看进程的环境变量)
    • pstree | grep run (查看进程树)
    • for pid in $(ls /proc | grep '^[0-9]'); do if [ -f "/proc/$pid/environ" ]; then if strings /proc/$pid/environ | grep -q "LD_PRELOAD"; then echo "PID $pid 可能使用了 LD_PRELOAD:"; strings /proc/$pid/environ | grep "LD_PRELOAD"; fi; fi; done (查找使用 LD_PRELOAD 的进程)
    • ls /proc | grep '^[0-9]' | while read pid; do if [ -d /proc/$pid ]; then cpu=$(cat /proc/$pid/stat 2>/dev/null | awk '{print $14+$15}'); if [ "$cpu" -gt 1000 ]; then cmd=$(cat /proc/$pid/cmdline 2>/dev/null | tr -d '\0'); exe=$(readlink /proc/$pid/exe 2>/dev/null); echo "高CPU进程: PID=$pid, CPU=$cpu, CMD=$cmd, EXE=$exe"; fi; fi; done (查找高CPU使用率进程)

2. Rootkit 隐藏功能移除

  • 检测和清除 LD_PRELOAD 劫持:
    • 检查文件内容: cat /etc/ld.so.preload
    • 备份文件: cp /etc/ld.so.preload /etc/ld.so.preload.bak
    • 移除文件不可变属性: chattr -i /etc/ld.so.preloadchattr -a /etc/ld.so.preload (可能需要多次尝试,因为Rootkit可能设置了多个属性)
    • 清空文件内容: echo "" > /etc/ld.so.preload
    • 删除Rootkit库文件: rm -f /usr/local/lib/libprocesshider.so
    • 验证文件状态: lsattr /etc/ld.so.preload
  • 使用 unhide 工具检测隐藏进程:
    • 安装工具: yum install -y unhide
    • 运行检测: unhide proc (检测隐藏进程), unhide sys (检测系统篡改)
    • 根据结果终止进程: kill -9 <PID1> <PID2> ... (例如:kill -9 4753 4754 4755 ...)

3. 持久化机制清理 (定时任务 Cron)

  • 检查所有用户的 Crontab:
    • for user in $(cut -f1 -d: /etc/passwd); do echo "### $user ###"; crontab -l -u $user 2>/dev/null; done
    • crontab -l (查看当前用户的crontab,通常是root)
    • crontab -u smart -l (查看 smart 用户的crontab)
  • 检查系统级 Crontab 文件和目录:
    • cat /etc/crontab
    • ls -la /etc/cron.d/
    • ls -la /etc/cron.hourly/
    • ls -la /etc/cron.daily/
    • ls -la /etc/cron.weekly/
    • ls -la /etc/cron.monthly/
  • 删除恶意定时任务文件和脚本:
    • 编辑 root 用户的 crontab: crontab -e -u root (删除恶意条目)
    • 编辑 /etc/crontab vi /etc/crontab (删除 ntpdatev1.sh 相关的恶意条目)
    • 删除恶意脚本文件: rm -f /usr/local/sbin/ntpdatev1.sh
    • 删除 /etc/cron.d/ 目录下的恶意文件:
      • chattr -ia /etc/cron.d/app-bitwarden
      • chattr -ia /etc/cron.d/ftp-tracker-miner-apps
      • chattr -ia /etc/cron.d/mddvnopvj
      • rm -f /etc/cron.d/app-bitwarden
      • rm -f /etc/cron.d/ftp-tracker-miner-apps
      • rm -f /etc/cron.d/mddvnopvj
      • rm -f /etc/cron.d/mddvnopvj~ (临时文件)
    • 删除 /etc/cron.hourly/ 目录下的恶意文件:
      • chattr -ia /etc/cron.hourly/app-bitwarden
      • chattr -ia /etc/cron.hourly/ftp-tracker-miner-apps
      • chattr -ia /etc/cron.hourly/mddvnopvj
      • rm -f /etc/cron.hourly/app-bitwarden
      • rm -f /etc/cron.hourly/ftp-tracker-miner-apps
      • rm -f /etc/cron.hourly/mddvnopvj
    • 删除 /etc/cron.daily/ 目录下的恶意文件:
      • chattr -ia /etc/cron.daily/app-bitwarden /etc/cron.daily/ftp-tracker-miner-apps /etc/cron.daily/mddvnopvj
      • rm -f /etc/cron.daily/app-bitwarden
      • rm -f /etc/cron.daily/ftp-tracker-miner-apps
      • rm -f /etc/cron.daily/mddvnopvj
    • 删除 /etc/cron.weekly/ 目录下的恶意文件:
      • chattr -ia /etc/cron.weekly/app-bitwarden /etc/cron.weekly/ftp-tracker-miner-apps /etc/cron.weekly/mddvnopvj
      • rm -f /etc/cron.weekly/app-bitwarden
      • rm -f /etc/cron.weekly/ftp-tracker-miner-apps
      • rm -f /etc/cron.weekly/mddvnopvj
    • 删除 /etc/cron.monthly/ 目录下的恶意文件:
      • chattr -ia /etc/cron.monthly/app-bitwarden /etc/cron.monthly/ftp-tracker-miner-apps /etc/cron.monthly/mddvnopvj
      • rm -f /etc/cron.monthly/app-bitwarden
      • rm -f /etc/cron.monthly/ftp-tracker-miner-apps
      • rm -f /etc/cron.monthly/mddvnopvj
    • 停止 crond 服务: service crond stop (在清理定时任务时停止,避免其再次启动恶意任务)

4. 持久化机制清理 (启动服务 SysVinit)

  • 检查 /etc/rc.local
    • 查看内容: cat /etc/rc.d/rc.local (或 cat /etc/rc.local)
    • 手动编辑删除可疑启动项: vi /etc/rc.local (删除 setsid /home/smart/.tms3/apache-tomcat-7.0.63/bin/startup.sh 这一行,如果确认其为恶意或非必要)
  • 检查 /etc/init.d/ 目录和 chkconfig 列表:
    • ls -la /etc/init.d/
    • chkconfig --list
  • 处理恶意或可疑启动服务:
    • frpc (反向代理后门):
      • 禁用服务: chkconfig frpc off
      • 删除启动脚本: rm -f /etc/init.d/frpc
      • 删除相关二进制文件和配置:
        • rm -f /usr/bin/frpc
        • rm -f /usr/local/frp/frpc.toml
        • rm -f /usr/local/frp/frpc
        • rm -rf /usr/local/frp/ (如果确定该目录没有其他合法文件)
    • mddvnopvj (挖矿/僵尸网络客户端):
      • 查看脚本内容: cat /etc/init.d/mddvnopvj
      • 禁用服务: chkconfig mddvnopvj off
      • 移除不可变属性: chattr -ia /etc/init.d/mddvnopvj
      • 删除启动脚本: rm -f /etc/init.d/mddvnopvj
    • runsunloginclient (向日葵远程控制后门):
      • 查看脚本内容: cat /etc/init.d/runsunloginclient
      • 禁用服务: chkconfig runsunloginclient off
      • 删除启动脚本: rm -f /etc/init.d/runsunloginclient
      • 删除安装目录: rm -rf /usr/local/sunlogin/ (请务必确认您自己没有合法使用向日葵)
    • proftpd (可疑 FTP 服务):
      • 查看脚本内容: cat /etc/init.d/proftpd
      • 禁用服务: chkconfig proftpd off
      • 删除启动脚本: rm -f /etc/init.d/proftpd
      • 删除安装目录: rm -rf /usr/sbin/proftpd (或其安装路径)

5. 恶意进程终止与文件删除

  • 终止恶意进程:
    • kill -9 <PID> (根据 ps auxtop 查到的恶意进程PID)
    • pkill java (终止所有Java进程,如果确认它们是恶意的)
    • pkill bashpkill "-bash" (终止可疑的bash进程)
    • fuser -k <PORT>/tcp (强制杀死占用特定端口的进程,例如 fuser -k 40626/tcp)
  • 删除恶意二进制文件:
    • 移除不可变属性:
      • chattr -ia /bin/app-bitwarden
      • chattr -ia /bin/ftp-tracker-miner-apps
      • chattr -ia /bin/oefmizm
    • 删除文件:
      • rm -f /bin/app-bitwarden
      • rm -f /bin/ftp-tracker-miner-apps
      • rm -f /bin/oefmizm
  • 清理临时文件和缓存目录:
    • rm -rf /var/tmp/.cache/java
    • rm -rf /var/tmp/.cache/
    • rm -rf /var/tmp/
    • rm -rf /opt/openvpn/etc/* (清理OpenVPN配置,如果OpenVPN被恶意利用)
    • rm -rf /opt/tmsagent/tmsagent.jar (删除特定jar文件,如果确认是恶意或被篡改)
  • 查找挖矿相关文件:
    • find / -name "*miner*" -o -name "*xmrig*" -o -name "*monero*" -o -name "*cpuminer*" -o -name "*kdevtmpfsi*" -o -name "*kdevtmpfsi.sh*" -o -name "*systemd-udevd*" -o -name "*[kworker/u8:2]*" 2>/dev/null (在整个文件系统查找)
    • find /root -name "*miner*" ... (在 /root 目录查找)
    • find /home -name "*miner*" ... (在 /home 目录查找)
    • find /var -name "*miner*" ... (在 /var 目录查找)
    • find /usr -name "*miner*" ... (在 /usr 目录查找)

6. 账户安全加固 (SSH)

  • 修改所有密码:
    • passwd root (修改root用户密码)
    • passwd smart (修改smart用户密码)
    • 重要: 修改所有其他系统用户密码,以及所有服务(数据库、Web面板、FTP等)的密码。
  • 检查 SSH 登录日志:
    • grep "Accepted password" /var/log/secure (查找异常登录,特别是来自 127.0.0.1 和内部网络的登录)
  • SSH 配置强化:
    • 编辑 SSH 配置文件: vi /etc/ssh/sshd_config
    • 禁用密码登录:PasswordAuthentication yes 改为 PasswordAuthentication no (前提是已配置好SSH密钥登录)
    • 重启 SSH 服务: service sshd restart (应用更改)
  • 检查 SSH 授权密钥:
    • 检查 root 用户: cat /root/.ssh/authorized_keys (删除任何不认识或不应该存在的公钥)
    • 检查 smart 用户: cat /home/smart/.ssh/authorized_keys (删除任何不认识或不应该存在的公钥)

目录