首页/安全/应急响应速查/APT/DPKG 钩子后门排查

APT/DPKG 钩子后门排查

apt.conf.d 与 dpkg 配置里的 Invoke 钩子会在装包、升级时以 root 执行命令;攻击者借此让后门在管理员做例行维护时自动复活。

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

包管理器钩子后门是什么

apt 与 dpkg 支持配置钩子:在装包、升级等操作前后以 root 身份执行命令,常见键有 apt.conf.d 里的 DPkg::Pre-Invoke、APT::Update::Post-Invoke,以及 dpkg.cfg.d 里的 invoke。攻击者借此让后门在管理员做例行维护时自动复活——最阴的地方在于触发条件本身是完全合法的运维动作。

基本信息

APT 侧/etc/apt/apt.conf.d/ 中的 DPkg::Pre-Invoke、APT::Update::Post-Invoke 等
DPKG 侧/etc/dpkg/dpkg.cfg 与 dpkg.cfg.d/ 中的 invoke 钩子
执行者root,触发条件是合法的维护操作
排查方式全量 grep Invoke / invoke 关键字的赋值
区分手段用 dpkg -S 确认文件归属哪个包
企业场景加固脚本与自动更新也可能正常使用钩子

典型使用场景

  • 排查「例行升级之后后门又复活了」的现象
  • 处置时清点所有包管理器相关的钩子
  • 加固巡检:核对 apt.conf.d 与 dpkg.cfg.d 的内容
  • 排查没有 cron 与 systemd 单元、但维护后出现异常进程
  • 与 init、cron、profile.d 一起做完整持久化清点
  • 处置后验证钩子已被清理
  • 演练中练习检查包管理钩子

检查包管理器钩子

检查包管理器钩子
grep -rnH -E 'Invoke' /etc/apt/apt.conf.d/ /etc/apt/apt.conf 2>/dev/null   # APT 侧钩子
ls -la /etc/dpkg/dpkg.cfg.d/ 2>/dev/null                                   # DPKG 片段目录
grep -rn 'invoke' /etc/dpkg/dpkg.cfg /etc/dpkg/dpkg.cfg.d/ 2>/dev/null     # DPKG 侧钩子
dpkg -S /etc/apt/apt.conf.d/99custom 2>/dev/null                           # 文件归属
ls -la --time-style=long-iso /etc/apt/apt.conf.d/ | head -n 20             # 清单与修改时间

钩子位置与键名

位置键名说明
/etc/apt/apt.conf.d/DPkg::Pre-Invoke安装动作开始前以 root 执行
/etc/apt/apt.conf.d/APT::Update::Post-Invoke索引更新完成后执行
/etc/apt/apt.conf.d/DPkg::Post-Invoke安装动作完成后执行
/etc/dpkg/dpkg.cfg.d/invoke 选项dpkg 侧等效钩子
任意片段文件自定义键只要能被解析就会生效
企业加固脚本与自动更新工具也会使用钩子:先看命令指向哪个脚本、文件的 mtime 与包归属,再定性,不要见到钩子就删。
主配置文件干净不代表没有钩子:apt.conf.d 与 dpkg.cfg.d 下的片段文件同样会被加载,必须整目录 grep。
删除钩子后要验证配置语法:apt 配置写坏会导致后续所有安装与升级操作报错,修改前先复制备份。
钩子里的命令可能只是「调用一个脚本」:拿到路径后要继续追到目标脚本本身,否则删掉钩子行、脚本仍在,下次被别的入口调用。

易错点

  • 漏看 conf.d 片段:主配置文件干净就以为没问题,钩子实际藏在片段里
  • 把发行版维护脚本当成后门:先用 dpkg -S 确认文件归属,再定性
  • 删除钩子不做语法验证:apt 配置出错会让之后所有安装操作直接失败
  • 不记录钩子指向的命令:丢失攻击者选用的执行方式与载荷路径

数据来源与参考

  • man 5 apt.conf(DPkg::Pre-Invoke 等钩子键)
  • man 1 dpkg(invoke 钩子选项)

相关工具

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