### 获取域控的方法有哪些

**1. 信息收集与利用**

**SYSVOL**

SYSVOL 是 Active Directory 中的一个共享文件夹，用于存储域内所有域控的公共文件，比如组策略（Group Policy）脚本。在渗透测试中，SYSVOL 是一个宝贵的信息源。攻击者可以通过访问 `\\<domain_name>\SYSVOL\<domain_name>\Policies` 路径，获取域内所有用户的组策略信息。这些文件中可能包含硬编码的密码、管理员账户信息或其他敏感配置，有时可以直接利用这些信息进行横向移动

**SPN 扫描**

SPN 是服务在 Kerberos 认证中的唯一标识。SPN 扫描（通常使用工具如 `setspn -T <domain> -q */*` 或 PowerView）可以发现域内所有注册了 SPN 的服务。许多服务（如 SQL Server、IIS 等）会使用域服务账户运行。如果这些服务账户的密码较弱，攻击者可以通过 Kerberoasting 攻击，请求这些服务的 TGS 票据，然后离线破解票据中的哈希，从而获取服务账户的明文密码

**2. 凭证窃取与传递**

**凭证窃取**

这是渗透测试中的核心技术。除了之前提到的 Mimikatz 和 LSASS 转储，还有其他多种方式：

- **注册表和文件窃取：** 许多应用程序会在注册表或文件中存储凭据
- **浏览器凭据：** 窃取浏览器中保存的密码

**黄金票据与白银票据**

这是 Kerberos 认证体系中的两种强大攻击方式，能让攻击者在域内获得几乎无限的权限

- **黄金票据 (Golden Ticket):** 利用域内 KDC 服务的哈希（通常是 `krbtgt` 账户的哈希），伪造一个任意用户的 Kerberos TGT 票据。这个票据可以让我们在整个域内伪装成任何用户（通常是域管理员），访问任何服务。只要 `krbtgt` 账户的哈希没有改变，这个票据就是“永恒”的，可以持久化控制整个域
- **白银票据 (Silver Ticket):** 利用特定服务账户的哈希（如 `CIFS` 或 `MSSQLSvc`），伪造一个特定服务的 Kerberos TGS 票据。这个票据只能用于访问该特定服务，权限相对受限，但同样非常强大

**哈希传递攻击和 NTLM Relay**

- **NTLM Relay:** 攻击者在域内中间人攻击中，截获用户的 NTLM 认证请求，并将其转发到另一个服务（如 SMB、LDAP、HTTP 等），从而以受害用户的身份在该服务上执行操作。如果被中继的用户是域管理员，攻击者可以在没有明文密码的情况下，以域管理员的身份在目标机器上创建新的账户或执行其他恶意操作

**3. 特殊漏洞利用与攻击链**

**Kerberos 委派**

Kerberos 委派允许一个服务以用户的身份去访问另一个服务。如果配置不当，攻击者可以利用非约束性委派或约束性委派中的漏洞，在特定条件下实现权限提升和横向移动。例如，如果一个服务配置了非约束性委派，攻击者可以劫持该服务，等待域管理员访问，从而获取其 TGT 票据，实现权限提升

**MS14-068 (Kerberos 漏洞)**

这是一个古老的但经典的 Kerberos 漏洞。攻击者可以利用该漏洞在未打补丁的域内普通主机上，伪造一个有效的 Kerberos 票据，并利用这个票据来提升权限，最终以域管理员身份获取域控权限。尽管现在大多数系统都已打补丁，但了解其原理对渗透测试仍然有价值

**Zerologon 漏洞 (CVE-2020-1472)**

这是一个非常严重的漏洞。它允许攻击者在未认证的情况下，通过 Netlogon 协议将域控的机器账户密码重置为空。一旦密码被重置，攻击者就可以以该账户（例如 `DC01$`）的身份完全接管域控。在渗透测试中，这是最直接和高效的获取域控权限的方法之一

**CVE-2021-42278 和 CVE-2021-42287**

这是两个密切相关的 Kerberos 漏洞，通常被称为“**SAMAccountName 欺骗攻击**”

- **CVE-2021-42278:** 允许攻击者通过修改一个非域控计算机账户的 `sAMAccountName` 属性，将其伪装成域控
- **CVE-2021-42287:** 结合前一个漏洞，当域内服务发现一个机器账户的 `sAMAccountName` 属性与域控名称一致时，它会为该账户请求一个 TGT 票据。攻击者利用这个 TGT 票据，可以冒充域控，进一步获取 krbtgt 账户的哈希，最终实现黄金票据攻击