口令库离线审计是融合系统配置、账号策略与真实凭证的深度合规评估。需解析pam策略参数、导出脱敏哈希、三步联动验证(策略匹配+破解+行为分析),输出指向配置缺陷的可落地修复建议。

口令库离线审计不是“跑一遍字典”,而是结合系统配置、账号策略与真实凭证数据,对账号安全状态做深度合规性与风险性评估。核心在于把静态的口令策略规则、PAM配置、历史密码哈希、用户行为日志等多源信息关联分析,而非仅做暴力匹配。
提取并解析本地口令策略配置
先确认系统是否启用口令复杂度强制机制,再验证其实际生效范围:
- 检查/etc/pam.d/system-auth或/etc/pam.d/common-password中是否启用pam_pwquality.so或pam_cracklib.so
- 重点识别参数值:如minlen=8、ucredit=-1(至少1个大写字母)、lcredit=-1(至少1个小写)、dcredit=-1(至少1数字)、ocredit=-1(至少1特殊字符)
- 若存在retry=3但无enforce_for_root,说明root账户可能绕过策略——这是常见配置盲区
导出并结构化账号凭证数据
离线审计依赖真实账号数据支撑,需合法获取并脱敏处理:
- Linux下可从/etc/shadow提取哈希(需root权限),用unshadow合并/etc/passwd生成john兼容格式
- Windows域环境导出NTDS.dit中的NTLM哈希,配合secretsdump.py解析,注意排除KRBTGT等高危账户哈希
- 对导出哈希进行强度初筛:跳过空密码、LM哈希(已禁用)、或明显为NTLMv1弱哈希(如结尾为0000000000000000)
策略匹配+哈希破解+行为交叉验证
三步联动才能定位“策略开了但没管住”的真问题:
- 用john --wordlist=rockyou.txt --format=NT hashfile或hashcat -m 1000 -a 0 hashfile wordlist.txt跑通基础破解,记录成功破解账号及原始口令
- 将破解出的明文口令逐条代入策略规则校验:例如口令Admin123虽含大小写+数字,但长度仅7,不满足minlen=8,即暴露策略执行失效
- 叠加登录日志(如/var/log/auth.log)分析:若某账号近30天内多次失败后成功登录,且对应口令被破解,说明该账号长期未更新、策略未触发锁定机制
输出可落地的风险结论
审计报告不能只写“存在弱口令”,要指向具体配置缺陷和修复动作:
- 发现12个账号使用password123类口令 → 检查是否因reject_username未启用,导致用户名直接作为口令基底
- root账户哈希被破解 → 审查pam_pwquality.so是否缺失enforce_for_root参数,或存在auth [default=ignore] pam_succeed_if.so user = root绕过逻辑
- 某业务账号连续90天未改密 → 验证PASS_MAX_DAYS在/etc/login.defs中是否设为99999(即不限制),而非策略未部署











