首页/安全/应急响应速查/顽固进程终止顺序与取证

顽固进程终止顺序与取证

终止顽固进程前先看进程树与守护关系;/proc 信息在 kill -9 后消失,先快照再动手。

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

先看守护关系再动手

顽固进程背后通常有守护者:杀掉主进程会被立刻重新拉起。更关键的是,进程终止后 /proc 中的命令行、可执行文件与工作目录信息立即消失,因此终止前必须先快照。

推荐顺序

快照 → 判断守护关系 → 处理守护方 → 终止主进程 → 复验是否回归。涉及业务进程时必须先确认影响面,避免为了清理木马把生产服务一起停掉。

基本信息

查看/proc/<pid>/status、cmdline、exe、cwd
关系pstree -p <pid> 查看进程树与父子关系
顺序先处理看门狗与父进程,再终止目标进程
记录终止前保存 /proc/<pid> 快照与完整命令行
复验终止后持续观察是否被重新拉起
权限要求终止其他用户的进程需 root

典型使用场景

  • 处置挖矿进程与常驻木马
  • 结束顽固的扫描或外连程序
  • 处理残留会话与守护脚本
  • 在终止前留存进程级证据
  • 复验清理是否彻底

快照后终止

快照后终止
pstree -p 12345 | head -n 40
tr '\0' ' ' < /proc/12345/cmdline; echo
readlink /proc/12345/exe /proc/12345/cwd
cp -a /proc/12345/exe /evidence/proc_12345_exe 2>/dev/null
kill -TERM 12345; sleep 3; ps -p 12345 -o pid,stat,cmd
ss -antp | grep 12345 | head

逐项读法

来源含义正常/异常
/proc/PID/status进程状态与父子 PIDPPid 指向的守护者才是要一并处理的对象
/proc/PID/cmdline启动命令行空值常见于内核线程,需与进程名对照
/proc/PID/exe可执行文件链接指向 /tmp 等路径即为异常
/proc/PID/cwd工作目录指向临时目录通常说明运行环境异常
kill -9 之后 /proc 中的记录立即消失:先快照命令行、可执行路径与工作目录,再终止进程,否则证据无法挽回。
先 SIGTERM 再 SIGKILL:给进程清理与落盘的机会,也能从它是否体面退出判断是否存在信号处理逻辑(这本身是可疑特征)。

快照要保存什么

  • 完整命令行参数与启动用户
  • 可执行文件副本与哈希
  • 工作目录与打开的 socket 列表
  • 父子进程关系与启动时间

终止后的复验要点

  • 观察是否有同名进程重新出现
  • 检查父进程是否为守护脚本或系统服务
  • 检查计划任务与 systemd 单元是否触发重启
  • 确认被占用的端口不再重新监听

易错点

  • 先杀主进程不看守护:看门狗立刻把它重新拉起
  • 忽略 PID 复用:终止后 PID 可能被新进程占用,操作前要重新确认
  • 直接 kill -9:丢掉 /proc 中的命令行与工作目录等关键证据
  • 终止前不评估业务影响:误杀生产进程的损失可能更大
  • 杀完不复验:木马换名字继续运行却没有察觉

数据来源与参考

  • man 5 proc:进程信息伪文件
  • man 1 pstree / kill 使用说明

相关工具

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