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의 제품 관리( Product Management ) 책임자입니다. Kevin은 사이버 보안에 대한 열정이 있으며, 특히 공격자들이 조직 환경을 악용하기 위해 사용하는 전술과 기술을 이해하는 데 집중합니다. Active Directory 및 Windows 보안에 초점을 맞춰 제품 관리 분야에서 8년의 경험을 쌓아, 조직이 Identity, 인프라 및 데이터를 보호할 수 있도록 솔루션을 구축하는 데 그 열정을 더했습니다.