首页/安全/应急响应速查/在线排查三条主线:连接、进程、持久化

在线排查三条主线:连接、进程、持久化

时间有限时按外联、运行、持久三条主线切入:先看谁在通外网,再看进程画像,最后核对它靠什么活下来。

应急响应速查安全更新于 2026-10-13

在线排查三条主线

时间有限的现场排查不能靠「把整盘扫一遍」,而要按信息价值排序:先看谁在对外通信(连接),再看进程画像(谁在跑、从哪来、什么时候起),最后核对它靠什么活下来(持久化)。这三条主线覆盖了绝大多数入侵痕迹,而且每条都有明确的一两个命令入口。主线跑完再回到账号与日志,把散点串成时间线。

三条主线

主线 1 连接ss -antp 找对外连接与监听面,先看谁在跟外界通话
主线 2 进程ps 与 /proc 画像:可执行路径、工作目录、启动时间、父进程
主线 3 持久化cron、systemd、登录脚本、SSH 密钥,看它怎么活下来
收尾账号与会话(passwd、sudoers、authorized_keys、last)
最后日志与时间线:auth、journal、Web 访问日志,按 UTC 排序
原则先易失后持久、先外联后文件、先范围后清理

典型使用场景

  • 接到告警但时间窗口只有十几分钟,需要快速给出「有没有被控」的判断
  • 现场无法停机,只能在线做初步排查并写进报告
  • 多台主机批量核对,用同样的三条主线保证口径一致
  • 刚接手别人管的机器,需要一份快速的现状画像
  • 清理前后各做一轮,用同一套主线对比验证效果

按主线顺序执行

按主线顺序执行
sudo ss -antp state established | grep -vE '127.0.0.1|::1' | head -n 20   # 1 对外连接
sudo ss -lntup | head -n 20                                             # 2 监听面
ps -eo pid,ppid,lstart,pcpu,cmd --sort=-lstart | head -n 15             # 3 最新启动的进程
sudo ls -l /proc/<PID>/exe /proc/<PID>/cwd                              # 4 进程画像
systemctl list-timers --all | head -n 15                                # 5 定时器
crontab -l 2>/dev/null; ls -la /etc/cron.d/ 2>/dev/null                 # 6 计划任务
find /root /home -maxdepth 3 -name 'authorized_keys' -exec ls -l {} \;   # 7 免密通道

主线与判据

主线看什么命中之后
连接对端地址、端口、归属进程取进程 PID,进 /proc 核对真实身份,把地址整理成 IOC
进程启动时间、父进程、可执行路径按启动时间对齐告警时间,父进程指向 shell 说明是人工执行
持久化cron、systemd、登录脚本、SSH 密钥先记录内容与时间,再逐处清理,避免复发
账号uid 0 账号、sudoers 变更、密钥文件确认是否为后门,清理前保留证据
日志登录、命令、Web 访问按 UTC 排序合并成事件表,标出证据缺口
外联是攻击者最难隐藏的痕迹:进程名与文件路径都能伪装,但到 C2 的连接必须真实出现在连接表里。所以三条主线里,连接永远排在第一位。
顺序错了会重复劳动:一上来就整盘搜 webshell 或逐个翻日志,往往几十分钟还没确定主机是否被控。先外联、再进程、后持久化,能把范围迅速收窄到一个或几个具体进程上。

易错点

  • 一上来就整盘搜 webshell:慢且盲目,先用连接与进程把范围收窄效率高得多
  • 只看进程名不看连接:伪装成系统名的木马会被直接漏掉
  • 只看当前状态不看启动时间:启动时间与告警时间对齐才是强线索
  • 三条主线只跑一条就下结论:告诉业务方「没有问题」需要三条线都干净
  • 排查完不记录:在线排查的结论必须附上命令与输出,否则无法复核

数据来源与参考

  • SANS 504 应急响应与威胁狩猎实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌