入侵溯源分析查找攻击来源教程指南

前言:为什么要做入侵溯源分析?

当服务器被入侵后,第一反应往往是杀毒或重装系统。
但如果不弄清楚攻击者是从哪里进来的、用了什么方式、留下了什么后门,下次很可能还会被同样的手段攻破。入侵溯源分析查找攻击来源 的核心目的,就是还原攻击路径,清除隐患,避免二次入侵。

本文适合没有任何溯源经验的用户,你只需要一台被怀疑被入侵的 Linux 服务器,以及 SSH 登录权限。
跟着下面的步骤,一步一步操作就能找到攻击痕迹。

---

第一步:准备工作——你需要什么?

在动手之前,先确认你具备以下条件:

  • SSH 登录权限:能用 root 或 sudo 账户登录服务器。
  • 基础命令行操作能力:会敲命令、能看懂输出。
  • 备份环境:建议先做快照或完整备份,防止操作过程中意外破坏现场。
  • 工具准备:Linux 系统自带 lastpsnetstatlsof 等命令;如果缺失,可以通过包管理器安装(比如 CentOS 用 yum install net-tools lsof,Ubuntu 用 apt install net-tools lsof)。
特别提醒:绝对不要直接删除可疑文件或结束可疑进程,要先用 cp 备份后再操作,保留证据。

---

第二步:从登录日志入手——看看谁来过

攻击者常用的入口就是 SSH 暴力破解或使用泄露的密码。
先检查登录记录:

last -F | head -50

last 命令会读取 /var/log/wtmp 文件,显示所有用户的登录历史。
重点关注:

  • 异常 IP:不是你自己的 IP,也不是公司出口 IP。
  • 异常时间:你在睡觉或休息时登录的 IP。
  • 异常用户名:比如 root 直接登录,或者出现你从未建过的用户。

如果系统使用 auth.log(Debian/Ubuntu)或 secure(CentOS/Red Hat),也可以直接查看失败的登录尝试:

# Ubuntu/Debian
sudo cat /var/log/auth.log | grep -i "failed password" | tail -50

# CentOS/Red Hat
sudo cat /var/log/secure | grep -i "failed password" | tail -50

大量来自同一 IP 的“Failed password”记录,基本可以判定攻击者在暴力破解。

---

第三步:查进程和开机启动——找后门程序

攻击者成功登录后,常会上传后门程序或修改系统启动项。
运行以下命令检查当前运行的异常进程:

ps aux --sort=-%mem | head -30

重点看以下特征:

  • CPU 或内存占用奇高:可能是挖矿程序或 DDoS 攻击脚本。
  • 进程名奇怪:比如 ./xxx 或名字随机的二进制文件。
  • 父进程异常:比如 /sbin/init 这类正常进程,但被替换成了恶意程序。

接着查看开机自启动项:

# 检查 systemd 服务
systemctl list-units --type=service --state=running | grep -v "@"

# 检查 /etc/rc.local
cat /etc/rc.local

# 检查 crontab
crontab -l
# 也检查其他用户的 crontab(需要 root)
for user in $(awk -F: '{print $1}' /etc/passwd); do echo "=== $user ==="; crontab -u $user -l 2>/dev/null; done

如果发现陌生的定时任务(比如每分钟执行一个脚本),那基本就是后门。

---

第四步:文件系统与网络连接——找到攻击来源的实体痕迹

1. 检查最近修改的文件

攻击者的工具、脚本、日志文件通常会在 /tmp/dev/shm 或隐藏目录下。
用以下命令查找最近 7 天内被修改的可疑文件:

find / -type f -mtime -7 -not -path "/sys/*" -not -path "/proc/*" -not -path "/var/log/*" | xargs ls -la 2>/dev/null | head -30

重点关注名称是 . 开头的隐藏文件、可执行权限的文件、以及 /tmp 下的不明脚本。

2. 查看网络连接

攻击者的命令与控制服务器(C2)会与你的服务器建立连接:

# 查看所有 TCP 连接和监听端口
netstat -antp | grep -E "(LISTEN|ESTABLISHED)"
# 或者使用 ss 命令(更现代)
ss -antp | grep -E "(LISTEN|ESTABLISHED)"

可疑特征

  • 监听在非标准端口(如 4444、5555、10000 等)的进程。
  • 连接到国外或未知 IP 的 ESTABLISHED 连接。
  • 连接数异常的进程(比如单进程连接了几十个远程地址)。

使用 lsof 进一步查看哪个进程在连接:

sudo lsof -i -P -n | grep ESTABLISHED

一旦找到可疑进程的 PID,就可以 ps -p -o pid,ppid,cmd 查看详情,然后备份后处理。

---

第五步:高频问题与避坑说明

Q1:日志被攻击者清空了怎么办?

查一下 lastb 命令(记录失败登录),或者检查系统中是否有其他日志残留(如 /var/log/messages/var/log/btmp)。
如果日志全空,说明攻击者具备一定的清理能力,此时重点排查 crontab、启动项和可疑文件。

Q2:进程和文件看起来都正常,但服务器依然异常?

可能是 rootkit(内核级后门)
lsmod 查看加载的内核模块,或者用 rkhunter(Rootkit Hunter)扫描:

sudo apt install rkhunter  # 安装
sudo rkhunter --check      # 扫描

Q3:找到了可疑 IP,如何追溯?

可以用 whois 命令查询 IP 归属:

whois 192.168.x.x

但不要完全依赖 whois,很多攻击 IP 是僵尸网络节点或 VPN 出口,真正的攻击者可能藏匿在后面。

避坑清单

  • 不要立即关机:很多证据存在于内存中(如 /proc),关机后丢失。
  • 不要直接在服务器上分析:将可疑文件复制到隔离环境分析,避免触发告警或二次感染。
  • 优先保留现场:如果时间紧张,先截图、保存命令输出到文本文件,再慢慢分析。

---

总结:验证攻击源头是否被定位

完成以上步骤后,你至少应该能回答这几个问题:

  1. 攻击者通过哪个 IP 登录?
  2. 使用哪个用户(root 还是普通用户)?
  3. 留下了哪些文件/进程/定时任务?
  4. 后门程序是否与外部建立连接?

如果这些信息都明确,说明你的 入侵溯源分析查找攻击来源 已经有了成果。
下面可以清理后门、修补漏洞(如改密码、关端口、升级软件),并重新评估服务器的安全状态。

最后一点建议:把这次溯源的过程和发现记录下来,形成文档,下次就能更快响应。
如果你按照本文步骤执行,应该能顺利定位到攻击来源。
遇到报错或异常,优先回看高频问题部分,或者用搜索引擎查命令的具体用法。

分享到:
上一篇
WAF防火墙部署抵御各类攻击:从零部署WAF防火墙
下一篇
木马病毒彻底查杀清理步骤(服务器运维实战)
1
系统公告

高考专属福利来袭|凭准考证免费领香港 CN2 云服务器

值高考落幕之际,泽御云开启考生专属回馈 + 产品限时特惠双重活动,助力学子暑期学习建站 高考 考生专属福利 全体应届高考生,凭高考准考证即可免费申领【香港 CN2 轻量云服务器,4 核 4G AMD 处理器】,免费使用周期 30 天,可用于搭建个人站点、编程实操、技术实训,祝各位考生金榜题名,前程似锦! 泽御云资质齐全合规自营机房,线路覆盖香港 CN2、国内 BGP、内蒙电信、美国精品线路,售后全天候技术支持。 官方网站:www.zeyuyun.com,活动限时有效,优惠逾期不再保留。
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意