Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

DCShadow를 통한 권한 상승

DCShadow를 통한 권한 상승

Nov 20, 2024

DCShadow는 오픈 소스 도구 mimikatz의 기능입니다. 다른 블로그 게시물에서는 공격자가 관리자 자격 증명을 확보한 뒤 DCShadow를 사용해 탐지 없이 도메인에서 지속성을 확보하는 방법을 다룹니다. 하지만 DCShadow는 공격자가 자신의 권한을 상승시키는 데도 사용할 수 있습니다.

도메인 관리자가 권한을 더 높이려면 어떻게 해야 할까요? 다른 포리스트에서 관리자 권한을 획득하면 됩니다. 공격자는 SID History를 활용해 사용자 계정에 관리용 SIDs를 추가하고, 다른 신뢰된 도메인과 포리스트에서 관리자 수준의 권한을 얻을 수 있습니다. 이 글에서는 이러한 방식이 어떻게 작동하는지 살펴보겠습니다.

1단계. 신뢰 관계 확인

첫 번째 단계는 어떤 신뢰 관계가 존재하는지 확인하는 것입니다. 이를 수행하는 방법은 여러 가지가 있지만, PowerShell을 통해 활용할 두 가지는 PowerSploit 프레임워크와 Active Directory PowerShell 모듈입니다.

찾은 각 신뢰 관계마다 SID 필터링이 활성화되어 있는지 확인해야 합니다. 활성화되어 있다면, 과거 SIDs는 해당 신뢰 관계 반대편의 포리스트에 접근하는 데 사용할 수 없습니다. 하지만 비활성화되어 있다면 상황이 달라집니다. 흔히 마이그레이션 후에도 사용자가 필요로 하는 시스템과 데이터에 대한 액세스를 잃지 않도록 이 옵션을 비활성화 상태로 두는 경우가 많습니다. 아래 PowerShell 명령은 신뢰 관계를 찾아내고 SID 필터링을 포함한 각 옵션을 나열합니다:

      Get-NetDomainTrust | ForEach-Object{Get-ADTrust –filter * -server $_.TargetName}
      

이 명령의 출력 결과는 아래에 제공됩니다. SID 필터링이 비활성화되어 있는 gobias.local 도메인에 대한 신뢰 관계가 있음을 확인할 수 있습니다(SidFilteringQuarantined = False). 따라서 과거 SIDs를 사용하여 해당 도메인의 리소스에 액세스할 수 있게 됩니다.

DCShadow1

SID 필터링과 신뢰 관계에 대해 더 알아보려면 이 TechNet의 게시글을 읽어 보세요.

2단계. SID History를 사용해 권한을 상승

다음으로, 신뢰하는 포리스트의 리소스에 액세스할 수 있도록 사용자 계정에 관리용 SID를 추가해야 합니다. 여기서 DCShadow는 두 가지 이유로 유용합니다:

  • AD Users & Computers와 같은 애플리케이션을 통해서는 SID History를 기본적으로 변경할 수 없습니다.
  • DCShadow는 어떠한 탐지도 없이 이 변경을 수행합니다.

SID History에 추가할 SID만 선택하면 됩니다. Administrator 및 Domain Admins 같은 잘 알려진 SID와 기본 제공 사용자 또는 그룹은 사용하지 않겠습니다. 다른 도메인에서는 이러한 SID를 해당에 해당하는 개체에만 할당할 수 있도록 제어가 있기 때문입니다. domain reconnaissance를 수행하면, 권한을 상승시키기 위해 액세스 토큰에 추가하고자 하는 도메인 사용자 또는 그룹을 찾을 수 있어야 합니다.

다음 DCShadow 명령을 사용하여 gobias.local 포리스트의 AD-Admins 그룹을 사용자 계정에 추가해 봅시다:

      lsadump::dcshadow /object:"CN=Jeff Warren,OU=Administrators,OU=Users,OU=JEFFLAB,DC=JEFFLAB,DC=local" /attribute:sidhistory /value:S-1-5-21-1722627474-2472677011-3296483304-1113
      

새로 추가된 SIDhistory 값을 확인하려면 다음 스크립트를 실행할 수 있습니다:

      Get-ADUser Jeff -Properties sIDHistory
      

DCShadow2

이 모든 작업이 제대로 되었는지 확인하려면, 이 사용자로 다시 로그인한 후 whoami /groups 명령을 실행하여 새 그룹 멤버십을 확인할 수 있습니다. 사용자에게 이 그룹은 SID history를 통해서만 토큰에 포함됩니다.

DCShadow3

3단계. 상승된 권한 사용

액세스 권한을 확보하면 신뢰할 수 있는 포리스트에서 데이터를 추출하는 방법은 얼마든지 있습니다. 가장 효율적인 방법 중 하나는 DCSync 대상 도메인 컨트롤러에서 코드를 실행할 필요가 없기 때문입니다.

계정에 SID 기록을 추가하기 전에는 DCSync 를 대상 포리스트에 대해 실행하려고 하면 액세스가 거부되었습니다:

Image

하지만 사용자 계정에 과거 SID를 추가한 후에는 동일한 명령을 성공적으로 실행하여, 매우 가치가 큰 krbtgt Kerberos 서비스 계정을 포함한 모든 계정의 암호 해시를 얻을 수 있었습니다.

DCShadow5

DCShadow 탐지 및 대응

DCShadow를 탐지하는 데 사용되는 주요 방법은 악성(rogue) 도메인 컨트롤러의 등록 및 등록 취소와 일치하는 행위 패턴을 찾고, 그들이 전송하는 복제 트래픽을 모니터링하는 것입니다. 기본 제공 기능으로 Netwrix StealthDEFEND 는 DCShadow의 징후를 감지하기 위해 모든 도메인 복제 및 변경 이벤트를 적극적으로 모니터링합니다.

Netwrix Threat Prevention 차단 정책은 가해자 계정 또는 워크스테이션이 추가 복제, 인증 및 기타 활동을 수행하지 못하도록 방지하는 데 사용할 수 있습니다. 이는 공격자를 느리게 만들고, 대응 담당자가 위협을 완전히 제거하는 데 더 많은 시간을 확보할 수 있게 해줍니다.

공유하기

더 알아보기

저자 소개

Jeff Warren

최고 제품 책임자

Jeff Warren은 Netwrix의 제품 포트폴리오를 총괄하며, 보안에 초점을 둔 제품 관리 및 개발 분야에서 10년이 넘는 경험을 바탕으로 기여하고 있습니다. Netwrix에 합류하기 전 Jeff는 Stealthbits Technologies에서 제품 조직을 이끌었으며, 소프트웨어 엔지니어로서의 경험을 활용해 혁신적이고 엔터프라이즈 규모의 보안 솔루션을 개발했습니다. 직접적인 실행 중심의 접근 방식과 까다로운 보안 과제를 해결하는 데 강점을 지닌 Jeff는 실제로 효과가 있는 실용적인 솔루션을 구축하는 데 집중하고 있습니다. 그는 델라웨어 대학교에서 정보 시스템(Information Systems) 학사 학위를 취득했습니다.