mcpField
A
analyzing-active-directory-acl-abuse

analyzing-active-directory-acl-abuse

github.com/mukul975安全35.2k549 次安装8 周前更新
代码仓库

关于 analyzing-active-directory-acl-abuse

面向 Active Directory 安全调查的技能,使用 ldap3 检查对象安全描述符,发现非管理员主体持有的危险 ACL 权限,并输出攻击路径和修复报告。

主要功能

  1. 01通过 LDAP 查询 AD 对象
  2. 02解析安全描述符和 ACE
  3. 03识别危险权限配置
  4. 04筛选非管理员主体
  5. 05生成攻击路径与修复报告

适用场景

  1. 01排查 Active Directory ACL 滥用风险
  2. 02审计敏感对象的权限配置
  3. 03整理 ACL 攻击路径及修复措施

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill analyzing-active-directory-acl-abuse

安装后在 Claude Code 中输入/analyzing-active-directory-acl-abuse确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

分析 Active Directory ACL 滥用

概述

Active Directory 访问控制列表(ACL)通过包含访问控制条目(ACE)的自由访问控制列表(DACL)定义 AD 对象上的权限。配置错误的 ACE 可能授予非特权用户危险权限,例如对 Domain Admins 组、域控制器或 GPO 等敏感对象的 GenericAll(完全控制)、WriteDACL(修改权限)、WriteOwner(取得所有权)和 GenericWrite(修改属性)。

本技能使用 ldap3 Python 库连接到域控制器,查询对象及其 nTSecurityDescriptor 属性,将二进制安全描述符解析为 SDDL(安全描述符定义语言)格式,并识别向非管理主体授予危险权限的 ACE。这些错误配置是 BloodHound 等工具发现的基于 ACL 的攻击路径的基础。

何时使用

  • 在调查需要分析 Active Directory ACL 滥用的安全事件时
  • 在为该领域构建检测规则或威胁狩猎查询时
  • 当 SOC 分析师需要针对此类分析的结构化流程时
  • 在验证相关攻击技术的安全监控覆盖范围时

先决条件

  • Python 3.9 或更高版本,并安装 ldap3 库(pip install ldap3)
  • 具有 AD 对象读取权限的域用户凭据
  • 到域控制器端口 389(LDAP)或 636(LDAPS)的网络连接
  • 了解 Active Directory 安全模型和 SDDL 格式

步骤

  1. 连接到域控制器:使用 ldap3 通过 NTLM 或简单身份验证建立 LDAP 连接。在生产环境中使用 LDAPS(端口 636)进行加密连接。

  2. 查询目标对象:在目标 OU 或整个域中搜索对象,包括用户、组、计算机和 OU。请求 nTSecurityDescriptor、distinguishedName、objectClass 和 sAMAccountName 属性。

  3. 解析安全描述符:将二进制 nTSecurityDescriptor 转换为其 SDDL 字符串表示形式。解析 DACL 中的每个 ACE,以提取被授权者 SID、访问掩码和 ACE 类型(允许/拒绝)。

  4. 将 SID 解析为主体:使用针对域的 LDAP 查找,将安全标识符(SID)映射为可读的账户名称。识别内置组的众所周知 SID。

  5. 检查危险权限:将每个 ACE 的访问掩码与危险权限位掩码进行比较:GenericAll(0x10000000)、WriteDACL(0x00040000)、WriteOwner(0x00080000)、GenericWrite(0x40000000),以及针对特定扩展权限的 WriteProperty。

  6. 过滤非管理被授权者:排除预期的管理被授权者(Domain Admins、Enterprise Admins、SYSTEM、Administrators),并标记非特权用户或组持有危险权限的 ACE。

  7. 映射攻击路径:对于每个发现,记录潜在的攻击链(例如,对用户的 GenericAll 允许重置密码,对组的 WriteDACL 允许将自己添加到组中)。

  8. 生成修复报告:输出 JSON 报告,包含所有危险 ACE、受影响的对象、非管理被授权者以及建议的修复步骤。

预期输出

{
  "domain": "corp.example.com",
  "objects_scanned": 1247,
  "dangerous_aces_found": 8,
  "findings": [
    {
      "severity": "critical",
      "target_object": "CN=Domain Admins,CN=Users,DC=corp,DC=example,DC=com",
      "target_type": "group",
      "trustee": "CORP\\helpdesk-team",
      "permission": "GenericAll",
      "access_mask": "0x10000000",
      "ace_type": "ACCESS_ALLOWED",
      "attack_path": "GenericAll on Domain Admins group allows adding arbitrary members",
      "remediation": "Remove GenericAll ACE for helpdesk-team on Domain Admins"
    }
  ]
}

评论

支持 Markdown