LSASS Credential Extraction with Python: Red Team Techniques
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

LSASS 자격 증명 추출: Python을 활용한 보안 이탈 공격 기법

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

보안

대상자

  • 대상자: 보안 테스트 엔지니어, 레드 팀 멤버, 시스템 관리자
  • 난이도: 중간~고급 (Windows API, Python, 보안 메커니즘 이해 필요)

핵심 요약

  • LSASS 메모리 접근: OpenProcess()ReadProcessMemory()를 사용한 직접 메모리 읽기, MiniDumpWriteDump()로 생성한 minidump 분석, pypykatz 라이브러리 활용이 주요 기법
  • 보안 방어: Protected Process Light (PPL), Virtual Secure Mode (VSM) 등 현대 Windows의 보호 메커니즘, EDR 시스템의 OpenProcess 호출 감지
  • 이탈 기술: 레지스트리 프로세스 활용, LSASS 복제, 디스크 I/O 회피 등 감지 회피 전략

섹션별 세부 요약

1. LSASS의 역할과 보안 중요성

  • LSASS 기능: 사용자 인증, NTLM 해시, Kerberos 티켓, 캐시된 자격 증명 저장
  • 보안 위협: 권한 상승 및 네트워크 이동을 위한 민감 정보 저장
  • 현대 보호 기법: PPL, VSM, EDR 시스템의 실시간 감지

2. 직접 메모리 접근 (ctypes)

  • 코드 예시:

```python

kernel32.OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, False, pid)

kernel32.ReadProcessMemory(h_process, address, buffer, len(buffer), ctypes.byref(bytes_read))

```

  • 단점: EDR 시스템 감지 가능성 높음, 실시간 감지 위험
  • 기능: ctypes 라이브러리로 Windows API 직접 호출

3. Minidump 생성 (MiniDumpWriteDump)

  • 메커니즘: dbghelp.dllMiniDumpWriteDump() 함수 활용
  • 코드 예시:

```python

dbghelp.MiniDumpWriteDump(h_lsass, pid, h_file, MINIDUMP_FULL_MEMORY, None, None, None)

```

  • 장점: Task Manager 등 정당 도구와 혼동 가능, 감지 회피 효과

4. pypykatz를 통한 메모리 분석

  • 기능: pypykatz.go_live()로 실시간 LSASS 메모리 분석
  • 코드 예시:

```python

for session in katz.logon_sessions:

for cred in session.credentials:

print(f"{cred.username}\\{cred.domain} : {cred.password}")

```

  • 장점: Mimikatz 외부 이진 파일 사용 없이 분석 가능

5. 감지 회피 전략

  • 정당 프로세스 활용: Task Manager, WMI 제공자 내부에서 메모리 추출
  • LSASS 복제: 원본 프로세스 직접 접근 없이 복제된 프로세스에서 추출
  • 디스크 I/O 회피: 메모리 스트림을 named pipe 또는 메모리 버퍼로 직접 전달

결론

  • 실무 권장사항: pypykatz와 minidump 기법 활용, EDR 감지 회피를 위해 정당 프로세스 내부에서 실행, 디스크 I/O 최소화
  • 핵심 원칙: LSASS 자격 증명 추출은 기술적 접근과 감지 회피 전략의 균형이 필수적