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

리소스 센터블로그

Active Directory에서 평문 비밀번호를 손상시키는 방법

Active Directory에서 평문 비밀번호를 손상시키는 방법

Mar 17, 2023

많은 주의가 pass-the-hash 및 pass-the-ticket 공격을 막는 데 쏠리지만, 이러한 전술은 공격자를 명령줄에서 수행할 수 있는 범위로 제한합니다. 평문 비밀번호를 손상시키면 공격자는 계정에 무제한으로 접근할 수 있으며, 여기에는 웹 애플리케이션, VPN, 이메일 등에 대한 접근이 포함될 수 있습니다.

평문 비밀번호를 추출하는 한 가지 방법은 Kerberoasting 이지만, 이 무차별 대입 방식은 많은 시간과 인내가 필요합니다. 이 게시물에서는 평문 비밀번호를 더 빠르고 쉽게 추출하는 방법을 살펴보겠습니다.

그룹 정책 기본 설정

Windows Server 2008에서 Microsoft는 Group Policy 기본 설정(GPP)을 도입했습니다. GPP의 일반적인 사용 사례 중 하나는 서버와 워크스테이션에서 로컬 계정(예: Administrator 계정)을 생성하고 관리하는 것입니다. 이에 따라 관리자는 이러한 계정의 비밀번호를 배포할 수 있습니다.

비밀번호는 SYSVOL의 그룹 정책 XML 파일에 저장되며 AES 키를 사용해 암호화됩니다. 하지만 Microsoft가 AES 키를 공개했습니다 . 이 키로 이러한 비밀번호를 복호화할 수 있어, 결과적으로 평문 비밀번호와 다름없게 됩니다.

SYSVOL 공유가 인증된 사용자(Authenticated Users)에 공개되어 있으므로, 조직 내의 어떤 사용자든 그곳에 저장된 파일을 읽을 수 있습니다. 따라서 어떤 사용자 계정이든 그룹 정책 파일을 찾아 복호화함으로써, Administrator 계정의 평문 비밀번호에 접근할 수 있습니다. PowerSploit 명령 Get-GPPPassword 는 이러한 비밀번호를 찾아 복호화해 줍니다.

이 주제에 대해 더 자세한 설명은 Sean Metcalf의 게시물 과 Microsoft의 게시물 을 참고하세요. 또한 Microsoft는 보안 게시판의 일부로, 비밀번호를 포함하는 GPP를 스캔하기 위한 유용한 스크립트를 제공합니다.

Mimikatz와 LSASS 미니덤프

일반적으로 Mimikatz 는 메모리에서 NTLM 비밀번호 해시 또는 Kerberos 티켓을 추출하는 데 사용됩니다. 하지만 잘 알려지지 않은 기능 중 하나는 LSASS 프로세스를 위해 생성된 덤프에서 평문 비밀번호를 추출할 수 있다는 점입니다. 이는 공격자가 도메인 컨트롤러에서 악성 코드를 실행하지 않고도 평문 비밀번호를 손상(탈취)시킬 수 있음을 의미합니다. 덤프 파일은 대화형으로 만들거나 ProcDump 를 사용해 만들 수 있으며, 어떤 경우든 해당 행위는 백신 소프트웨어에 의해 탐지(플래그)될 가능성이 낮습니다. 덤프가 생성되면 이를 도메인 컨트롤러에서 복사한 뒤 Mimikatz 를 오프라인으로 사용해 평문 자격 증명을 수집할 수 있습니다.

여기서는 ProcDump 를 사용하여 도메인 컨트롤러에서 프로세스 덤프를 생성하는 과정을 확인할 수 있습니다:

Image

이 명령은 본질적으로 LSASS 프로세스의 스냅샷을 생성하며, 여기에는 평문 비밀번호 정보가 포함되어 있습니다:

Command-line interface displaying Mimikatz 2.1.1 performing LSASS memory dump and credential extraction.

한 번 생성되면 이 파일을 다른 호스트로 복사하여 Mimikatz를 사용한 오프라인 암호 추출에 활용할 수 있습니다. sekurlsa::minidump 명령을 사용하면 Mimikatz의 컨텍스트를 추출된 덤프 파일로 전환하고 sekurlsa::logonpasswords 명령을 실행할 수 있습니다:

Console output displaying extracted authentication details for user 'Gene.Parmesan' in 'JEFFLAB' domain, including various password hashes and a plaintext password.

Digest 인증 프로토콜에 대해 Mimikatz를 사용하는 방법

Digest 인증 프로토콜 (WDigest.dll)는 Windows XP에서 도입되었으며 HTTP 및 SASL에 사용됩니다. 무엇보다도 WDigest를 활성화하면 로컬 인증 계정에 대한 평문 자격 증명이 저장됩니다. 2014년, Microsoft는 패치를 공개했습니다 이 패치로 UseLogonCredential 레지스트리 값을 사용해 WDigest를 비활성화할 수 있습니다. 그러나 많은 조직에서는 여전히 WDigest가 활성화된 상태로 많은 서버와 워크스테이션을 운영하고 있습니다.

WDigest가 활성화되어 있으면 공격자는 sekurlsa::logonpasswords 명령으로 평문 자격 증명을 손쉽게 추출할 수 있습니다:

Image

역변환 가능한 암호화 악용

Active Directory 사용자 비밀번호를 되돌릴 수 있는 암호화(reversible encryption)로 저장할 수 있게 해주는데, 이는 본질적으로 비밀번호를 평문(plain text)으로 저장하는 것과 동일합니다. 이 정책은 Windows Server 2000에서 도입되었으며, 지금도 가장 최신 버전에서도 여전히 존재합니다. Microsoft에 따르면 이는 “사용자 인증을 위해 사용자의 비밀번호가 필요한 프로토콜을 사용하는 애플리케이션을 지원하기 위한 것”을 제공하기 위해 도입되었습니다.

기본적으로 이 정책은 꺼져 있지만, 이를 활성화하면 공격자는 DCSync 같은 기법을 사용해 손쉽게 평문 비밀번호를 추출할 수 있습니다:

Image

위 명령은 평문 비밀번호를 반환합니다:

되돌릴 수 있는 암호화(reversible encryption) 정책은 그룹 정책의 사용자 계정 컨트롤(Group Policy User Account Control) 설정을 통해, 그리고 비밀번호 정책 을 통해 활성화할 수 있습니다. 공격자는 악의적으로 세부(세분화된) 비밀번호 정책을 만들어 Domain Admins에 연결함으로써, Domain Admins의 비밀번호가 되돌릴 수 있는 암호화로 저장되도록 하여 권한 있는 계정의 평문 비밀번호에 접근할 수 있게 할 수도 있습니다.

결론

보시는 것처럼, 관심 있는 공격자가 Active Directory 계정의 평문 비밀번호를 얻을 수 있는 방법은 결코 부족하지 않습니다. 자세한 내용은 다음 관련 게시물을 읽어보세요: PowerSploit을 사용하여 평문 비밀번호 추출, 약한 비밀번호 찾기, 약한 비밀번호 공격 및 로컬 계정 비밀번호 공격.

Netwrix StealthDEFEND를 통해 인프라 전반에서 이와 더 정교한 공격을 효과적으로 탐지하고 실시간으로 대응할 수 있습니다.

공유하기

더 알아보기

저자 소개

Jeff Warren

최고 제품 책임자

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