记一次清除挖矿木马

兄弟们有没有人讲详细点的我想讲解下,记一次清除挖矿木马
最新回答
避而不谈

2026-05-26 06:13:31

本次清除挖矿木马的过程包括发现异常、定位木马、终止进程、修复系统文件、清理残留及恢复环境等步骤,最终成功清除木马并恢复服务器正常运行。

  • 发现异常:登录服务器后,发现所有命令执行缓慢,使用 top 命令查看系统进程时,发现存在大量非用户创建的进程,初步判断服务器已感染挖矿木马。

  • 定位木马来源:

    定时任务篡改:使用 crontab -l 命令查看定时任务,发现任务已被篡改,定时连接到 bash.givemexyz.in 下载并执行恶意脚本。

    服务状态检查:通过 systemctl status crond 命令查看 crond 服务状态,发现服务异常,且存在多个可疑进程,包括 bash -sh、cat /dev/urandom、tr -dc a-zA-Z0-9、fold -w 8 以及通过 python 下载恶意代码的进程等。

  • 终止恶意进程:

    使用 ps aux | grep '要杀死的进程' | awk '{print $2}' | xargs kill -9 命令终止 bash -sh、fold -w 8、cat /dev/urandom 等恶意进程。

    由于系统进程数限制被修改,系统中充斥大量挖矿进程,导致操作较慢。

  • 修复系统文件:

    定时任务文件保护:尝试修改 /var/spool/cron/crontabs/root 文件时发现无法修改,使用 lsattr 命令查询文件属性,发现文件被设置了 ia 属性(i 为不可修改,a 为只能追加),导致无法直接修改或删除。

    恢复 chattr 工具:尝试使用 chattr 修改文件属性时发现 chattr 本身也被修改并添加了 ia 属性。从另一台正常机器上拷贝 chattr 到被感染机器,使用该 chattr 修改自身属性后替换被篡改的 chattr。

    全面检查定时任务:查看 /var/spool/cron/、/etc/cron*.(包括 hourly、daily 等目录),检查最近修改的文件,确保无遗漏的恶意定时任务。

  • 清理残留文件及配置:

    启动脚本检查:修改 ~/.bash_profile 中对应的执行程序,防止恶意脚本在用户登录时自动执行。

    服务启动项检查:检查 /etc/init.d 下的执行文件,删除或修复被篡改的启动脚本。

    删除软连接:使用 symlinks -d rc*.d 命令删除 /etc/rc*.d 中木马进程的软连接,防止恶意程序在系统启动时自动运行。

    SSH 密钥清理:删除各用户下的 .ssh/authorized_keys 文件中的可疑密钥,防止攻击者通过 SSH 再次登录服务器。

  • 处理进程隐藏与动态库劫持:

    进程隐藏检测:使用 netstat 命令发现一个连接到矿场的连接,但无法显示进程号,ps 命令也看不到异常信息,怀疑存在进程隐藏。

    动态库劫持排查:

    怀疑 ps 等执行文件被修改,从其他机器复制过来后问题依旧,转而怀疑动态库被劫持。

    检查 LD_PRELOAD 环境变量、/etc/ld.so.preload 文件及 /etc/ld.so.conf.d/ 文件夹下内容,发现 /etc/ld.so.preload 中有一行 /usr/local/lib/uncompress.so 较为可疑。

    执行 mv /usr/local/lib/uncompress.so /usr/local/lib/uncompress.so.bak 命令将可疑文件备份,并删除 /etc/ld.so.preload 文件中对应配置。

    再次执行 netstat 命令,成功看到连接到矿场的进程号,使用 kill 命令终止进程并删除对应文件。

  • 恢复系统正常:经过上述操作后,使用 top 命令查看 CPU 使用率,发现已恢复正常水平,表明挖矿木马已被成功清除,服务器恢复正常运行。