用途:检测 Active Directory 中危险的 ACL 配置错误,识别可被利用的权限滥用路径。ACL 通过 DACL 中的 ACE 定义 AD 对象权限,配置不当会让非特权用户获得 GenericAll(完全控制)、WriteDACL(修改权限)、WriteOwner(取得所有权)、GenericWrite(修改属性)等危险权限,作用于 Domain Admins 组、域控或 GPO 等敏感对象。
主要能力:使用 ldap3 连接域控,查询对象及其 nTSecurityDescriptor 属性,将二进制安全描述符解析为 SDDL,提取受托者 SID、访问掩码和 ACE 类型;将 SID 解析为可读账户名;比对危险权限位掩码(GenericAll 0x10000000、WriteDACL 0x00040000、WriteOwner 0x00080000、GenericWrite 0x40000000 及特定扩展权限的 WriteProperty);排除 Domain Admins、Enterprise Admins、SYSTEM、Administrators 等预期管理主体,标记非特权用户或组持有的危险 ACE;记录潜在攻击链并输出 JSON 报告。
使用方式:需 Python 3.9+ 与 ldap3(pip install ldap3),具备可读取 AD 对象的域用户凭据,能访问域控 389(LDAP)或 636(LDAPS)端口,并理解 AD 安全模型与 SDDL。步骤为:建立 LDAP 连接(生产环境建议 LDAPS);搜索目标 OU 或整个域,请求 nTSecurityDescriptor、distinguishedName、objectClass、sAMAccountName;解析安全描述符与 DACL;解析 SID;检查危险权限;过滤非管理受托者;映射攻击路径;生成含危险 ACE、受影响对象、非管理受托者与修复建议的 JSON 报告。
适用场景:安全事件调查、检测规则与威胁狩猎查询构建、SOC 分析师结构化分析流程、验证相关攻击技术的监控覆盖。
限制:需有效域凭据与网络连通性;仅覆盖资料所述权限类型与对象;实际效果取决于环境配置,资料未提供性能、误报率或平台兼容性等更多细节。