当前位置:首页>Linux>Linux服务器被入侵?从日志分析到溯源取证

Linux服务器被入侵?从日志分析到溯源取证

  • 2026-09-02 19:21:38
Linux服务器被入侵?从日志分析到溯源取证

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

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

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

  • ✅ 如何发现异常?(日志、进程、网络分析)

  • ✅ 如何定位攻击入口?(SSH爆破、Web漏洞、供应链攻击)

  • ✅ 如何取证并修复?(清除后门、修复漏洞、加固系统)

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

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

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

排查方法:

使用静态编译的busybox替代系统命令(防止黑客替换ps、top)。

检查/proc目录,查看异常进程的exe链接(如/proc/1234/exe -> /tmp/.hidden/xmrig)。

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

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

排查方法:

netstat -antp 或 ss -tulnp(检查异常ESTABLISHED连接)。

使用tcpdump抓包分析(如tcpdump -i eth0 'host 1.2.3.4')。

3. 日志被删除或篡改

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

排查方法:

检查/var/log/下日志文件的修改时间(ls -alt /var/log/)。

使用last、lastb查看登录历史(即使/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/secure(grep "Failed password" /var/log/secure)。

使用fail2ban或denyhosts自动封禁爆破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:

wgethttps://busybox.net/downloads/binaries/1.35.0/busybox-x86_64 -O /tmp/busyboxchmod +x /tmp/busybox

检查进程:

/tmp/busyboxps aux |grep-v"\["# 过滤内核线程

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

步骤2:分析网络连接

/tmp/busyboxnetstat-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.local和cron实现双重持久化。

步骤5:修复与加固

清除后门:

rm-f/lib/libudev.so /etc/cron.hourly/update.shsed-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漏洞、供应链攻击)。

  • 彻底清除后门,并加固系统防止再次被入侵。

从今天开始,检查你的服务器,别让黑客比你更了解它!

最新文章

随机文章