发现服务器异常时,第一动作是隔离网络并排查高占用进程,不要急于重启,以免丢失入侵痕迹。
先说结论:CPU 持续满载且存在未知进程通常是挖矿迹象,需立即排查进程、网络连接及定时任务。
- 先确认:检查系统负载与异常进程名称,确认是否为非业务进程占用资源。
- 优先做:断开可疑网络连接,终止恶意进程,清理定时任务与启动项。
- 再验证:观察资源占用是否回落,检查是否有残留文件或异常账号。
命令速用版
# 查看占用 CPU 最高的进程
top
# 查找占用 CPU 超过 80% 的进程
ps -aux | awk '$3>80 {print}'
# 检查定时任务
crontab -l
# 查看最近登录记录
last
# 检查异常网络连接
netstat -antp为什么会这样
挖矿木马的核心目的是窃取计算资源,因此最直观的表现是 CPU 或内存占用率异常升高,甚至达到 100%。攻击者通常会通过漏洞入侵服务器,植入后门程序,并利用定时任务确保持续运行。即使你删除了文件,如果定时任务或启动项未清理,木马也会自动下载并重新执行。此外,部分木马会伪装成系统进程名称,或通过隐藏文件权限来逃避检查。
分步处理
1. 定位异常进程
使用 top 或 ps 命令查看进程列表。重点关注进程名是否为已知挖矿程序(如 xmrig、kdevtmpfsi、ddgs)或乱码字符。若发现某个非业务进程 CPU 占用持续在 90% 以上,记录其 PID。
2. 阻断网络连接
挖矿程序需要与矿池通信。使用 netstat 或 ss 命令查看网络连接,若发现未知外部 IP 的异常连接,可在防火墙层面暂时阻断该端口或 IP。
3. 清理持久化机制
检查定时任务(crontab -l),查找是否有每 15 分钟自动执行下载命令的任务(如包含 curl 或 wget 的脚本)。同时检查 init.d 文件夹及系统启动项,删除多余的启动文件。
4. 排查用户与日志
检查/etc/passwd 文件,查看是否有新增的异常用户(特别是 UID 为 0 的特权账户)。查看 history 命令历史,确认攻击者执行过哪些恶意命令。检查/var/log/secure 或 auth.log 中是否有异常登录记录。
怎么验证是否生效
处理完成后,再次运行 top 命令,确认 CPU 负载是否恢复正常水平。使用 netstat 检查是否还有可疑的外联连接。观察一段时间(如 30 分钟),确认恶意进程没有自动重启。若服务器装有安全中心类软件,查看是否仍有安全告警产生。
常见坑
1. 只杀进程不删文件:终止进程后若未删除源文件及定时任务,木马会通过守护进程或计划任务再次启动。
2. 忽略隐藏文件:攻击者常将文件隐藏在/tmp、/var/tmp 或.dev/shm 目录,或使用隐藏属性,需使用 ls -la 仔细排查。
3. 盲目重启服务器:重启可能导致内存中的痕迹丢失,增加后续分析难度,建议先取证再重启。
4. 忽视账号安全:若未修改弱密码或清理异常账号,攻击者可能再次通过 SSH 登录。
参考来源
- 挖矿木马自查指南:你的服务器正在偷偷挖币吗?7 个关键症状与排查命令
- Linux 后门排查与木马清除实战:彻底清理入侵痕迹,守住服务器最后防线
- 服务器被入侵了怎么办?如何排查?服务器被入侵的排查指南
- 检测响应的常见问题及解决方案 - 云安全中心 (Security Center)-阿里云帮助中心
- 如何排查服务器是否有被黑客入侵的迹象?
原文链接:https://www.zjcp.cc/ask/10082.html
