EDR을 이용한 다양한 LSASS 자격 증명 덤핑 방식들 탐지

EDR을 이용한 다양한 LSASS 자격 증명 덤핑 방식들 탐지

AhnLab SEcurity intelligence Center(ASEC)은 “도메인 환경에서 EDR을 활용한 자격 증명 정보 탈취 단계 탐지” [1] 블로그를 통해 공격자가 액티브 디렉터리 환경에 속한 시스템을 장악한 이후 자격 증명 정보를 탈취하는 다양한 방식들을 다루었다. 여기에서는 자격 증명 정보 탈취 방식 중 LSASS 프로세스의 메모리에 저장되어 있는 NT Hash(NTLM 인증 프로토콜에서 사용하는 해시)를 덤프하는 다양한 기법들을 더 상세하게 다룬다.

LSASS 프로세스의 메모리에는 자격 증명 정보가 저장되어 있으며 공격자는 해당 프로세스의 메모리를 덤프하고 여기에서 자격 증명 정보를 추출할 수 있다. 이에 따라 LSASS 프로세스의 메모리를 덤프하는 행위는 보안 제품들에 의해 의심스러운 행위로 간주되며 이러한 기능을 담당하는 미미카츠와 같은 해킹 툴들은 보안 제품들의 주요한 탐지 대상이 되고 있다.

공격자들 또한 이러한 사실을 알기 때문에 최근에는 해킹 툴을 직접 이용하기보다는 여러 정상 도구들을 악용하여 LSASS 프로세스의 메모리를 덤프하는 경향이 있다. 과거 블로그에서는 가장 대표적인 방식인 Sysinternals의 ProcDump를 이용하는 예시를 다루었지만 이외에도 Process Explorer, 작업 관리자 등 보안 제품의 탐지를 우회하기 위한 다양한 기법들을 사용할 수 있다.

이러한 방식들은 정상적인 목적에 의한 행위일 수도 있고 정상 도구들을 이용하는 방식이기 때문에 AntiVirus 제품 단독으로 이를 완벽하게 차단하는 데에는 한계가 존재한다. AhnLab EDR (Endpoint Detection and Response)은 국내 유일의 행위 기반 분석 엔진을 기반으로 엔드포인트 영역에 대해 강력한 위협 모니터링과 분석, 대응 역량을 제공하는 차세대 엔드포인트 위협 탐지 및 대응 솔루션이다. AhnLab EDR은 의심스러운 행위에 관한 유형별 정보를 상시 수집해 탐지 및 분석, 대응 관점에서 사용자가 위협을 정확하게 인식할 수 있는 기능을 제공하며 이를 통해 종합적인 분석을 통해 원인 파악과 적절한 대응, 재발 방지 프로세스를 수립할 수 있다.

1. LSASS 프로세스

NTLM 인증은 로컬 사용자가 로그인할 경우에 사용되는 인증 방식으로 보안 패키지인 “msv1_0.dll”에 구현되어 있다. “msv1_0.dll”는 LSASS 즉 lsass.exe 프로세스에 로드되어 동작하며 로그인 시 사용자가 입력한 비밀번호에 대한 NT Hash와 SAM(Security Accounts Manager) 데이터베이스에 저장되어 있는 NT Hash를 비교하는 방식으로 인증한다. 이에 따라 lsass.exe 프로세스의 메모리 내부에도 NT Hash가 존재하게 된다.

참고로 해시 알고리즘을 이용해 만들어진 해시 값이기 때문에 공격자는 NT Hash로 평문 비밀번호를 구할 수 없다. 물론 공격자는 여러 사전 공격 도구들을 이용해 평문 비밀번호를 획득할 수 있으며, 미미카츠에서 제공하는 기능을 이용하여 직접 평문 비밀번호를 획득할 수도 있다.

만약 평문 비밀번호를 구하지 못한다고 하더라도 다른 시스템에 존재하는 계정에 대한 NT Hash를 알 수 있다면, 공격자는 이를 이용해 탈취한 계정의 NT Hash로 해당 시스템에 로그인할 수 있다. 이를 Pass the Hash 공격이라고 하는데, NTLM 프로토콜에서는 이러한 공격이 가능하기 때문에 굳이 평문 비밀번호를 알지 못한다고 하더라도 “측면 이동”에는 문제가 되지 않는다.

2. 미미카츠 (Mimikatz)

미미카츠는 윈도우 운영체제 환경에서 자격 증명 정보를 추출하는 기능을 갖는 프로그램이다. 미미카츠는 기본적인 명령만으로 LSASS 프로세스의 메모리를 덤프한 후 NT Hash를 추출하여 보여주는 기능을 지원한다. 이에 따라 공격자들은 깃허브에 공개된 오픈 소스 도구이면서 동시에 간편하게 자격 증명 정보를 추출해 주는 미미카츠를 공격에 자주 사용하고 있다.

물론 이렇게 많은 공격에 사용되고 있음에 따라 대부분의 보안 제품들이 이를 주요한 위협으로 탐지하고 있다. 이에 따라 공격자들은 LSASS 프로세스의 메모리를 덤프하기 위해 다양한 정상 도구들을 사용하고 있으며 각각의 사례들은 뒤에서 다루도록 한다.

미미카츠의 sekurlsa::logonpasswords” 명령은 직접 LSASS 프로세스의 메모리를 덤프하고 덤프한 정보에서 NT Hash를 추출하여 출력해서 보여주는 전체 과정을 담당하는 명령이다. 하지만 “sekurlsa::minidump” 명령을 함께 사용할 경우 직접 LSASS 프로세스에 접근하지 않고 시스템에 저장되어 있는 메모리 덤프 파일을 읽어와 자격 증명 정보를 추출할 수도 있다. 즉 공격자가 LSASS 프로세스의 메모리를 정상 도구로 덤프하고 이를 탈취하여 자신의 환경에서 “sekurlsa::minidump” 명령으로 NT Hash를 추출할 경우 공격 대상 시스템에 미미카츠를 설치하지 않고도 자격 증명 정보를 알아낼 수 있다.

3. ProcDump

Sysinternals의 ProcDump는 특정 프로세스의 메모리를 덤프해주는 기능을 지원하는 커맨드 라인 도구이다. 현재 Sysinternals는 마이크로소프트 사의 소속이며 이에 따라 ProcDump 도구는 윈도우 운영체제의 파일들과 동일하게 마이크로소프트의 인증서로 서명되어 있는 정상 파일이다.

ProcDump는 과거 다수의 ASEC 블로그들에서도 다룰 만큼 공격자들이 LSASS 프로세스의 메모리를 덤프하기 위한 목적으로 자주 사용하는 도구이다. 다음은 ProcDump를 이용한 덤프 과정과 이를 통해 생성된 메모리 덤프 파일을 미미카츠를 이용해 추출하여 자격 증명 정보를 탈취하는 과정을 AhnLab EDR 제품으로 탐지한 화면이다.

AhnLab EDR은 정상 프로그램인 Sysinternals의 ProcDump를 이용해 LSASS 프로세스의 메모리를 덤프하는 행위에 대해 위협으로 탐지하여 관리자가 이를 인지하고 원인 파악과 적절한 대응을 진행할 수 있도록 지원한다.

4. Process Explorer

Process Explorer 또한 Sysinternals에서 개발한 도구로서 이름과 같이 현재 실행 중인 프로세스들의 목록을 보여주고 관련 정보 조회 및 프로세스 제어와 같은 다양한 기능들을 제공한다. 특징이 있다면 Process Explorer가 지원하는 기능들 중 다음과 같이 특정 프로세스의 메모리를 덤프하는 기능이 존재한다는 점이다. 이에 따라 LSASS 프로세스의 메모리 또한 덤프가 가능하여 공격자가 자격 증명 정보를 추출하는데 Process Explorer를 악용할 수 있게 된다.

AhnLab EDR은 정상 프로그램인 Sysinternals의 Process Explorer를 이용해 LSASS 프로세스의 메모리를 덤프하는 행위에 대해 위협으로 탐지하여 관리자가 이를 인지하고 원인 파악과 적절한 대응을 진행할 수 있도록 지원한다.

5. 작업 관리자

ProcDump와 Process Explorer는 비록 마이크로소프트의 인증서로 서명된 정상 파일들이기는 하지만 기본적으로 윈도우 운영체제에서 제공하는 도구들은 아니다. 만약 기본적인 윈도우 환경에 설치되어 있는 도구들을 이용한다면 외부에서 추가적인 도구들을 설치하는 행위와 같이 눈에 띄는 의심 행위 없이도 자격 증명 정보를 탈취할 수 있을 것이다.

윈도우 운영체제는 기본적으로 “작업 관리자(taskmgr.exe)”라는 도구를 지원하는데 이는 Process Explorer와 유사하게 현재 실행 중인 프로세스의 목록 조회 및 제어와 같은 기능들을 제공한다. 그뿐만 아니라 설치된 서비스나 시작 프로그램, 사용자 정보 등 다양한 기능들을 제공한다. 작업 관리자의 특징 중 하나는 실행 중인 프로세스에 대한 메모리 덤프를 생성하는 기능도 제공한다는 점이다. 예를 들어 다음과 같이 LSASS 프로세스에 대해 메모리 덤프를 생성할 경우 “TEMP% 경로에 “lsass.DMP”라는 파일명으로 덤프 파일이 생성된다.

AhnLab EDR은 윈도우 환경에서 기본적으로 제공하는 작업 관리자를 이용해 LSASS 프로세스의 메모리를 덤프하는 행위에 대해 위협으로 탐지하여 관리자가 이를 인지하고 원인 파악과 적절한 대응을 진행할 수 있도록 지원한다.

6. Comsvcs.dll

“comsvcs.dll”은 COM+ 서비스 기능을 담당하는 DLL 파일로서 윈도우 환경에 기본적으로 설치된 시스템 파일들 중 하나이다. “comsvcs.dll”의 특징 중 하나는 특정 프로세스에 대한 메모리 덤프 기능을 지원하는 “MiniDump” 함수를 익스포트하고 있다는 점이다. 즉 이를 이용하면 LSASS 프로세스에 대한 메모리 덤프가 가능해진다.

“comsvcs.dll”은 DLL 파일이기 때문에 일반적으로 rundll32.exe 프로세스를 이용해 실행할 수 있다. 참고로 LSASS 프로세스의 메모리를 덤프하기 위해서는 SeDebugPrivilege라고 하는 디버그 권한이 추가적으로 필요한데 해당 권한은 관리자 권한으로 실행 중인 경우 쉽게 활성화할 수 있다.

AhnLab EDR은 윈도우 환경에서 기본적으로 제공하는 “comsvcs.dll”을 이용해 메모리를 덤프하는 행위에 대해 위협으로 탐지하여 관리자가 이를 인지하고 원인 파악과 적절한 대응을 진행할 수 있도록 지원한다.

7. 결론

특정 네트워크에 속한 시스템을 공격한 공격자는 해당 시스템뿐만 아니라 최종적으로 이것이 속한 네트워크 전체를 장악하는 것이 목표일 것이다. 이를 위해서는 최종적으로 관리 서버 및 주요 시스템들까지 측면 이동하는 과정이 필요하다. 자격 증명 정보는 이러한 측면 이동 공격을 위한 필수적인 정보이다.

공격자들은 일반적으로 부적절하게 관리되고 있는 정보들을 활용하거나 미미카츠 등의 해킹 툴들을 이용해 자격 증명 정보를 추출할 수 있다. 자격 증명 정보를 탈취하는 대표적인 방식은 LSASS 프로세스의 메모리를 덤프하고 여기에서 NT Hash를 추출하는 방법이다. 하지만 해킹 툴들을 이용해 LSASS 프로세스의 메모리를 덤프하는 행위는 보안 제품에 의해 쉽게 탐지가 가능하며 이에 따라 공격자들은 해킹 툴이 아닌 정상 도구들을 악용하여 LSASS 프로세스의 메모리를 덤프하고 있다.

이렇게 보안 제품의 탐지를 우회하기 위한 목적으로 정상 도구들을 이용할 경우 AntiVirus 제품 단독으로는 탐지 및 차단하는 데 한계가 존재한다. AhnLab EDR은 특정 시스템을 장악한 공격자가 추후 도메인 전체를 장악하기 위해 자격 증명 정보를 탈취해가는 공격 기법들을 탐지하여 관리자가 원인을 파악하고 적절한 대응 및 재발 방지 프로세스를 수립할 수 있도록 도와준다.

행위 진단
– Execution/EDR.Mimikatz.M11444
– Execution/EDR.Behavior.M10484
– CredentialAccess/EDR.ProcExp.M11597
– CredentialAccess/EDR.Event.M11566
– CredentialAccess/EDR.Comsvcs.M11596

AhnLab EDR의 행위 기반 탐지 및 대응 기능에 대해 더 알고 싶으시면, 아래 배너를 클릭하여 확인해 보세요.