用途:检测 Active Directory 中危险的 ACL 错误配置。AD 的 DACL 由 ACE 组成,错误 ACE 会让非特权用户对域管组、域控或 GPO 等敏感对象拥有 GenericAll、WriteDACL、WriteOwner、GenericWrite 等权限,这类路径也是 BloodHound 类工具发现的基础。
主要能力:使用 ldap3 连接域控,查询目标 OU 或全域的对象(用户、组、计算机、OU),获取 nTSecurityDescriptor、distinguishedName、objectClass、sAMAccountName;把二进制安全描述符解析为 SDDL,逐个 ACE 提取 trustee SID、访问掩码和类型;将 SID 解析为可读账户名并识别内置组;比对危险权限位掩码(GenericAll 0x10000000、WriteDACL 0x00040000、WriteOwner 0x00080000、GenericWrite 0x40000000 及特定扩展权限的 WriteProperty);过滤 Domain Admins、Enterprise Admins、SYSTEM、Administrators 等预期管理 trustee,标记非特权主体的危险 ACE;为每项发现记录攻击链(例如对用户 GenericAll 可重置密码,对组 WriteDACL 可加自身入组);输出含危险 ACE、受影响对象、非管理 trustee 和建议修复步骤的 JSON 报告。
用法与前提:Python 3.9+ 并安装 ldap3(pip install ldap3);需要具备 AD 对象读取权限的域用户凭据;到域控 389(LDAP)或 636(LDAPS)的网络连通性,生产环境建议用 LDAPS;需理解 AD 安全模型和 SDDL。步骤为连接域控(NTLM 或简单认证)→查询对象→解析安全描述符→解析 SID→检查危险权限→过滤非管理 trustee→映射攻击路径→生成修复报告。
限制:资料未提供完整可用脚本、具体命令示例和部署说明;效果取决于账号读取权限与网络可达性;需自行判断误报并核实修复。