找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3011

积分

0

好友

403

主题
发表于 前天 05:17 | 查看: 7| 回复: 0

你的服务器CPU突然飙到100%,但 top 却看不到异常进程 —— 这可能不是性能问题,而是黑客已经控制了你的系统。

2024年12月,某金融公司的运维团队发现数据库服务器响应变慢,检查 top 命令显示 kworker 进程占用90% CPU,但进一步分析发现,该进程并非真正的内核线程,而是一个伪装成系统进程的挖矿木马。更可怕的是,黑客已经清理了一部分日志,使得传统排查手段失效。

今天,我们就以这个真实案例为背景,带你一步步完成 Linux 服务器入侵排查与溯源取证,涵盖:

  • 如何发现异常?(日志、进程、网络分析)
  • 如何定位攻击入口?(SSH爆破、Web漏洞、供应链攻击)
  • 如何取证并修复?(清除后门、修复漏洞、加固系统)

一、入侵迹象:你的服务器可能已被控制的5个征兆

1. CPU/内存异常,但 top 看不到可疑进程

真实案例:某企业服务器 kworker 进程持续高负载,最终发现是内核级 rootkit 隐藏了挖矿程序。

排查方法

  • 使用静态编译的 busybox 替代系统命令(防止黑客替换 pstop)。
  • 检查 /proc 目录,查看异常进程的 exe 链接(如 /proc/1234/exe -> /tmp/.hidden/xmrig)。

2. 异常网络连接(外联矿池、C2服务器)

真实案例:黑客利用某国产路由器的漏洞,组建僵尸网络,持续对外发包。

排查方法

  • netstat -antpss -tulnp (检查异常 ESTABLISHED连接)。
  • 使用 tcpdump 抓包分析(如 tcpdump -i eth0 ‘host 1.2.3.4’)。

3. 日志被删除或篡改

真实案例:某电商服务器 /var/log/secure 被清空,但 journalctl 仍能查到残留 SSH 爆破记录。

排查方法

  • 检查 /var/log/ 下日志文件的修改时间(ls -alt /var/log/)。
  • 使用 lastlastb 查看登录历史(即使 /var/log/wtmp 被删,部分数据仍可恢复)。

4. 新增可疑用户或SUID文件

真实案例:黑客创建 kernelsys 用户(UID=0),并赋予 /bin/bash SUID权限,实现持久化。

排查方法

  • cat /etc/passwd (检查异常用户)。
  • find / -perm -4000 (查找所有 SUID文件)。

5. 计划任务或启动项被修改

真实案例:某企业服务器被植入 .x 扫描工具,并通过 /etc/rc.local 实现开机自启。

排查方法

  • crontab -l (检查当前用户的定时任务)。
  • ls -al /etc/cron.* (检查系统级定时任务)。

二、入侵溯源:黑客是如何进来的?

1. SSH弱密码爆破(最常见入口)

真实案例:某公司使用 root:123456,黑客1秒破解,并横向渗透整个内网。

如何发现?

  • 检查 /var/log/securegrep “Failed password” /var/log/secure)。
  • 使用 fail2bandenyhosts 自动封禁爆破 IP。

2. Web应用漏洞(如Log4j、反序列化)

真实案例:某 Java 应用因未修复 Log4Shell 漏洞,被植入 Linux.DDoS.Flood.L 木马。

如何发现?

  • 检查 /var/log/tomcat/catalina.out(异常 Java 栈轨迹)。
  • 使用 rkhunter 扫描 Web 目录中的恶意文件。

3. 供应链攻击(恶意软件包、镜像污染)

真实案例:某企业因使用第三方 Yum 源,导致 systemd 被替换为后门版本。

如何发现?

  • rpm -Va (验证 RPM 包完整性)。
  • 对比关键二进制文件的 MD5(如 md5sum /usr/bin/ps)。

三、完整取证流程(实战案例)

案例背景:

某云服务器 CPU 持续100%,top 显示 kworker 占用 90%,但无异常进程。

步骤1:使用可信工具排查

下载静态编译的 busybox

wget https://busybox.net/downloads/binaries/1.35.0/busybox-x86_64 -O /tmp/busybox
chmod +x /tmp/busybox

检查进程:

/tmp/busybox ps aux | grep -v “\[“ # 过滤内核线程

发现异常/usr/sbin/.sshd(非官方 SSH 守护进程)。

步骤2:分析网络连接

/tmp/busybox netstat -antp | grep ESTAB

发现:异常连接至 45.67.89.1:443(矿池地址)。

步骤3:定位恶意文件

ls -al /proc/$(pidof .sshd)/exe  # 查看进程真实路径

结果/usr/sbin/.sshd -> /lib/libudev.so(恶意动态库)。

步骤4:检查持久化手段

cat /etc/rc.local  # 发现添加了 /lib/libudev.so &
ls -al /etc/cron.hourly/  # 发现 update.sh 脚本

结论:黑客通过 rc.localcron 实现双重持久化。

步骤5:修复与加固

清除后门

rm -f /lib/libudev.so /etc/cron.hourly/update.sh
sed -i ‘/libudev.so/d’ /etc/rc.local

修复漏洞

  • 更新所有软件包(yum update)。
  • 禁用 SSH 密码登录(PasswordAuthentication no)。

加固系统

  • 安装 fail2ban 防爆破。
  • 部署 SELinux 限制进程权限。

四、如何预防下一次入侵?

1. 基础防护

✅ 禁用 SSH 密码登录,改用密钥认证。
✅ 定期更新系统(yum update / apt upgrade)。
✅ 部署 HIDS(如 OSSEC、Wazuh)监控文件变更。

2. 高级防护

✅ 网络隔离:VLAN划分,限制 SSH 访问源 IP。
✅ 日志集中管理:使用 ELK Stack 收集 /var/log/*
✅ 定期漏洞扫描:OpenVAS 或 Nessus 检测未修复漏洞。

3. 应急响应预案

备份:定期快照关键数据(rsync + tar)。
演练:每季度模拟一次入侵,测试响应速度。

五、总结

Linux 服务器被入侵后,快速发现、精准溯源、彻底清理是关键。

安全不是一次性的工作,而是持续的攻防对抗。通过这份指南,你可以:

  • 识别隐藏进程、异常网络连接(即使黑客清理了日志)。
  • 定位攻击入口(SSH 爆破、Web 漏洞、供应链攻击)。
  • 彻底清除后门,并加固系统防止再次被入侵。

从今天开始,系统地检查你的服务器,别让黑客比你更了解它!如果你在排查过程中遇到复杂的日志分析或需要交流经验,欢迎到云栈社区的安全板块与其他安全从业者探讨。对于专业的安全取证和应急响应,保持持续学习至关重要。




上一篇:OpenClaw插件架构设计解析:从飞书集成看AI Agent平台的扩展之道
下一篇:网络安全真没用?分享几个真实案例告诉你为何它比保险更重要
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-4-7 18:13 , Processed in 0.630382 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表