Mimikatz 는 메모리에서 비밀번호와 해시를 추출하고, pass-the-hash 공격을 수행하며, Golden Tickets를 통해 도메인 영속성을 만드는 데 사용되는 표준 도구가 되었습니다.
Mimikatz가 pass-the-hash 및 기타 인증 기반 공격을 얼마나 쉽게 수행할 수 있게 해주는지, 그리고 이러한 공격으로부터 보호하기 위해 무엇을 할 수 있는지 살펴보겠습니다.
Mimikatz로 패스 더 해시(Pass the Hash)가 작동하는 방식
패스 더 해시(pass-the-hash) 공격을 수행하는 데 필요한 것은 Active Directory 사용자 계정의 NTLM 해시뿐입니다. 이 해시는 로컬 시스템 메모리에서 추출하거나 Ntds.dit 파일에서 Active Directory 도메인 컨트롤러.
이제 Ntds.dit 파일에서 추출한 해시가 손에 들어왔습니다. Mimikatz를 사용하면 도메인 내에서 Administrator 계정을 대신해 작업을 수행할 수 있습니다. 먼저, 도메인 내에 특별한 권한이 없는 사용자 Adam으로 제 컴퓨터에 로그인하겠습니다:
Adam으로서, 원격 PowerShell 실행을 허용하는 도구인 PSExec 를 내 도메인 컨트롤러에 대해 실행해 보려고 하면, 다음과 같은 '액세스 거부' 메시지를 받게 됩니다:
하지만 Mimikatz로 명령을 실행하면 해당 계정을 도메인 관리자(Domain Administrator) 계정으로 권한 상승하고, 이 상승된 토큰으로 내가 지정하는 어떤 프로세스든 실행할 수 있습니다. 이 경우에는 새 명령 프롬프트를 실행하겠습니다:
이 명령 프롬프트에서 Windows는 여전히 내가 Adam이라고 생각하지만, 나는 Domain Administrator인 Jeff로서 작업을 수행할 수 있습니다. 여기에서 pass-the-hash 기법을 사용해 PSExec 세션을 이제 실행할 수 있고, 도메인 컨트롤러의 NTDS 디렉터리 내용을 열거할 수 있음을 확인할 수 있습니다:
Ntds.dit 파일이 해독되면 모든 사용자의 비밀번호 해시가 내 통제하에 있게 되므로, 어떤 사용자든 대신해서 손쉽게 작업을 수행할 수 있습니다. 이는 무제한 액세스를 얻는 것뿐 아니라, 흔적을 감추고 내가 가장하고 있는 그 사용자들인 것처럼 자연스럽게 섞이게 만드는—무서운 방식입니다.
Pass the Hash로부터 보호하기 Pass the hash는 방지가 어렵지만, Windows는 이를 실행하기 어렵게 만드는 여러 기능을 도입했습니다. 가장 효과적인 접근 방법은 로그온 제한을 구현하여, 특권 계정의 해시가 추출될 수 있는 위치에 절대 저장되지 않도록 하는 것입니다. Microsoft는 계층화된 관리 모델을 따르기 위한 모범 사례를 Active Directory에 대해 제공하며, 이러한 방식으로 특권 계정이 침해될 가능성을 크게 줄여줍니다. pass the hash에 대한 다른 방어 방법으로는 LSA Protection을 활성화하고, Protected Users 보안 그룹을 활용하며, 원격 데스크톱에서 Restricted Admin 모드를 사용하는 방법이 있습니다.
사전에 적절한 보안을 구축하는 것과 더불어, 진행 중인 공격을 시사할 수 있는 비정상 징후에 대해 인증 및 로그온 활동을 모니터링하는 것이 매우 중요합니다. 이러한 공격은 종종 계정이 비정상적인 방식으로 사용되는 패턴을 따릅니다. 이러한 활동이 발생하는 즉시 알림을 받을 수 있다면, 너무 늦기 전에 공격을 감지하고 대응할 수 있습니다.
Netwrix 솔루션이 도울 수 있는 방법
Netwrix Threat Manager 는 패스-더-해시(pass-the-hash) 공격을 탐지하는 데 효과적인 도구입니다. 이 솔루션이 지원하는 두 가지 접근 방식은 다음과 같습니다:
허니 토큰(Honey tokens) — 대상 머신의 LSASS 메모리에 가짜 자격 증명을 주입하고, 해당 자격 증명의 사용 여부를 모니터링할 수 있습니다. 자격 증명이 사용되는 것이 보이면, 그 자격 증명이 허니팟 머신 중 하나의 메모리에서 검색되어 측면 이동(lateral movement)에 사용된 것임을 알 수 있습니다.
비정상 행위 탐지 — 정상 사용자 행동을 기준선으로 설정하면 패스-더-해시(pass-the-hash) 및 기타 측면 이동(lateral movement) 공격에 해당할 수 있는 계정의 비정상적인 사용을 식별하는 데 도움이 됩니다. 확인해야 할 행동에는 다음이 포함됩니다:
- 이전에 인증한 적이 없는 호스트에서 계정이 사용되는 경우
- 이전에 한 번도 접속한 적이 없는 호스트에 접근하는 데 계정이 사용되는 경우
- 일반적인 액세스 패턴과 모순되게 네트워크 전반에서 다수의 호스트에 계정이 접근하는 경우
애초에 패스-더-해시(pass-the-hash) 공격이 실행될 위험을 줄이려면 Netwrix Access Analyzer 을 사용하세요. 이를 통해 다음을 수행할 수 있습니다:
- 서버와 데스크톱에 대한 관리자 권한을 최소화
- 사용자가 관리자 권한을 사용해 워크스테이션에 로그인하지 못하도록 방지
- 자격 증명 추출 및 pass the hash에 사용될 수 있는 의심스러운 PowerShell 명령을 모니터링하세요
- 고도로 권한이 높은 계정이 권한이 낮은 시스템에 로그인하지 못하도록 제한하세요
- 중요한 시스템에서 LSA Protection을 활성화하여 LSASS에서 자격 증명을 추출하기 더 어렵게 만드세요
Netwrix Access Analyzer
엔터프라이즈 수준의 민감 데이터 검색, 분류 및 복구를 제공하세요.
공유하기
더 알아보기
저자 소개
Jeff Warren
최고 제품 책임자
Jeff Warren은 Netwrix의 제품 포트폴리오를 총괄하며, 보안에 초점을 둔 제품 관리 및 개발 분야에서 10년이 넘는 경험을 바탕으로 기여하고 있습니다. Netwrix에 합류하기 전 Jeff는 Stealthbits Technologies에서 제품 조직을 이끌었으며, 소프트웨어 엔지니어로서의 경험을 활용해 혁신적이고 엔터프라이즈 규모의 보안 솔루션을 개발했습니다. 직접적인 실행 중심의 접근 방식과 까다로운 보안 과제를 해결하는 데 강점을 지닌 Jeff는 실제로 효과가 있는 실용적인 솔루션을 구축하는 데 집중하고 있습니다. 그는 델라웨어 대학교에서 정보 시스템(Information Systems) 학사 학위를 취득했습니다.