Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 Mimikatz DCSync 窃取用户密码

使用 Mimikatz DCSync 窃取用户密码

May 29, 2025

Mimikatz 提供了多种提取和操纵凭据的方法,但其中最令人警惕的是 DCSync 命令。使用该命令,攻击者可以模拟域控制器的行为,并要求其他域控制器复制信息——包括用户密码数据。事实上,攻击者可以获取任意账号的 NTLM 密码哈希,甚至获取其明文密码;其中也包括 KRBTGT 账号的密码。这样一来,他们就能够创建 Golden Tickets

更糟的是,这种攻击可以在不在域控制器上运行任何代码的情况下完成——不像其他选项 Mimikatz 所提供的用于提取密码数据的方法。此外,它利用了 Microsoft Directory Replication Service Remote Protocol(MS-DRSR),而该协议是 Active Directory 的有效且必需的功能,因此无法关闭或禁用。

谁可以执行 DCSync 攻击?

运行 Mimikatz DCSync 需要一个具有执行域复制权限的帐户。这由域上设置的“Replicating Changes”(复制更改)权限控制。拥有“Replicating Changes All”或“Replicating Directory Changes”权限将允许你执行此攻击。

Mimikatz DCSync

默认情况下,这些权限仅限于 Domain Admins、Enterprise Admins、Administrators 和 Domain Controllers 组。要查找能够执行 DCSync 攻击的任何其他帐户,请使用下面的 PowerShell 脚本。它会枚举某个域的所有域级权限,并查找所有已被授予这些权限且 RID 高于 1000 的帐户,从而排除所有默认权限。

      #Get all permissions in the domain, filtered to the two critical replication permissions represented by their GUIDs
Import-Module ActiveDirectory
cd 'AD:DC=JEFFLAB,DC=local' # Replace with distinguished name of your domain
$AllReplACLs = (Get-AcL).Access | Where-Object {$_.ObjectType -eq '1131f6ad-9c07-11d1-f79f-00c04fc2dcd2' -or $_.ObjectType -eq '1131f6aa-9c07-11d1-f79f-00c04fc2dcd2'}

#Filter this list to RIDs above 1000 which will exclude well-known Administrator groups
foreach ($ACL in $AllReplACLs)
{
    $user = New-Object System.Security.Principal.NTAccount($ACL.IdentityReference)
    $SID = $user.Translate([System.Security.Principal.SecurityIdentifier])
    $RID = $SID.ToString().Split("-")[7]
    if([int]$RID -gt 1000)
    {
        Write-Host "Permission to Sync AD granted to:" $ACL.IdentityReference
    }
}
      

运行此脚本会列出每个用户和组:他们拥有执行 DCSync 攻击所需的权限,但很可能不应该拥有该权限:

Mimikatz DCSync 2

DCSync 攻击是如何发起的?

如果你拥有所需的权限,其余步骤就非常简单。只需执行以下命令:

Lsadump::dcsync /domain:<domain_name> /user:<user_name>

要检索 KRBTGT 账户的密码哈希,攻击者只需使用下方所示的命令:

Mimikatz DCSync 3

如果密码使用可逆加密进行存储,则会显示明文密码:

Mimikatz DCSync 4

组织如何防御 DCSync 攻击?

防止 DCSync 攻击的最佳方法是严格限制哪些账户拥有在域中复制信息的权限。你可以先对所有域运行上方提供的脚本,以查找是否存在具有不当特权、从而能够执行该攻击的账户。此外,还应实施控制措施来保护需要这些权限的账户,特别要避免其密码详细信息被存储在攻击者可能对其进行入侵的地方。

如果你发现了 DCSync 攻击,请立即禁用相关账户,以阻止对手升级其权限或对 AD 进行任何其他更改。 Netwrix Threat Prevention 提供阻断策略,可防止账户或工作站执行进一步的复制,从而减缓攻击并让响应人员有更多时间来消除威胁。此外,Netwrix StealthDEFEND 通过提供有关 DCSync 攻击肇事者、来源、目标以及被查询对象的详细信息来支持这些响应步骤。

Netwrix Threat Prevention

分享到

了解更多

关于作者

Asset Not Found

Kevin Joyce

产品管理总监

Netwrix 产品管理总监。Kevin 对网络安全充满热情,尤其致力于理解攻击者为利用组织环境所采用的策略与技术。凭借八年的产品管理经验,并专注于 Active Directory 和 Windows 安全,他将这种热情投入到帮助构建解决方案中,助力组织保护其身份、基础设施和数据。