首页/安全/应急响应速查/PAM 后门检查(pam_unix 模块被替换)

PAM 后门检查(pam_unix 模块被替换)

替换 pam_unix.so 可实现万能口令登录,属于最难察觉的登录后门:用包管理器校验与哈希比对抓它。

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

PAM 后门是什么

PAM(可插拔认证模块)是 Linux 上所有认证的必经环节:本地登录、su、sudo、SSH 口令认证最终都要调用 /lib*/security/ 下的模块。把 pam_unix.so 换成带后门的版本,让口令校验恒定返回成功,就得到了一把「任意口令都能进」的万能钥匙。它比新增账号隐蔽得多,因为 /etc/passwd 里看不出任何异常,只能靠文件完整性校验抓出来。

基本信息

目标文件/lib/x86_64-linux-gnu/security/pam_unix.so(路径随发行版与架构变化)
另一类改动/etc/pam.d/ 中滥用 pam_exec、pam_permit 绕过认证
包校验rpm -V pam / dpkg -V libpam-modules
哈希比对与干净主机同版本文件或发行版包内文件比对
时间线索模块 .so 的 mtime 与包安装时间明显不符
处置原则认证链被污染时优先从干净介质恢复或重装

典型使用场景

  • 常规口令都能登录成功,怀疑存在万能口令后门
  • 应急排查中核对核心认证文件完整性,属于系统校验的必查项
  • 处置完成后复验认证链是否干净,用同一套命令再跑一遍
  • 排查 /etc/pam.d 中不合常理的 pam_exec、pam_permit 调用
  • 与 rootkit 检查一起做,判断是否已被植入认证层后门

校验模块与配置

校验模块与配置
rpm -Va pam 2>/dev/null | grep -E '^..5'      # RHEL 系:内容不符的文件被标记
sudo dpkg -V libpam-modules 2>/dev/null | head  # Debian 系:列出被改动的文件
md5sum /lib/x86_64-linux-gnu/security/pam_unix.so 2>/dev/null
rpm -qf /lib64/security/pam_unix.so 2>/dev/null   # 确认文件归属哪个安装包
ls -la --time-style=long-iso /lib*/security/*.so | head -n 20  # 找 mtime 异常
sudo grep -rn 'pam_exec\|pam_permit' /etc/pam.d/ | head       # 配置层是否被滥用

检查项与判据

检查项命令命中判据
文件内容rpm -V pam / dpkg -V libpam-modules出现校验失败标记或文件被列出
文件归属rpm -qf / dpkg -S查不到归属说明来源不明
修改时间ls -la --time-style=long-iso与包安装时间明显不符
配置引用grep -rn pam.d/出现无业务解释的 pam_exec、pam_permit
哈希比对sha256sum 后与干净主机比对同版本文件哈希不一致
不同发行版与架构下模块路径不同(/lib/security、/lib64/security、/lib/x86_64-linux-gnu/security),先用 rpm -qf 或 dpkg -S 确认真实路径,再与干净文件比对。
PAM 被篡改后这台主机上的口令认证结果已不可信:处置方向是从干净介质恢复或重装受影响主机,而不是逐条修改配置。

易错点

  • 只比对文件大小:替换模块可以保持体积完全一致,必须比对哈希或走包完整性校验
  • 改完不做验证:认证链写坏会锁死所有登录通道,改动前先保留一个已登录会话
  • 只查 .so 不查 pam.d:pam_exec、pam_permit 的滥用不需要替换任何二进制就能绕过认证
  • 认证层已被污染仍用本机口令做后续判断:后续所有登录结论都不可信,应先恢复受信环境

数据来源与参考

  • pam(8) 手册
  • MITRE ATT&CK T1556 修改认证流程

相关工具

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