Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PPLdump — 사용자 영역 익스플로잇으로 PPL의 메모리를 덤프 | Kitploit
도구/GitHubGitHub/itm4n/ppldump
Privilege EscalationMemory ForensicsExploitationRed TeamingPayload DevelopmentBinary ExploitationArchived
GitHubitm4n/ppldump

PPLdump

사용자 영역 익스플로잇으로 PPL의 메모리를 덤프

저장소 보기
8931424년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PPLdump

⚠️ 2022-07-24 - Windows 10 21H2 10.0.19044.1826 (2022년 7월 업데이트) 기준으로 PPLdump에 구현된 익스플로잇은 더 이상 작동하지 않습니다. NTDLL의 패치로 인해 이제 PPL이 _Known DLL_을 로드할 수 없습니다. 자세한 정보는 여기를 참조하세요.

이 도구는 James Forshaw(@tiraniddo)가 블로그 게시물에서 처음 논의한 사용자 영역(userland) 익스플로잇을 구현하여, 관리자 권한으로 __모든 PPL의 메모리를 덤프__할 수 있습니다.

이 도구에 관한 두 개의 블로그 게시물을 작성했습니다. 첫 번째 파트는 보호된 프로세스 개념에 관한 것이고, 두 번째 파트는 우회 기법 자체를 다룹니다.

  • 블로그 포스트 파트 #1: Do You Really Know About LSA Protection (RunAsPPL)?
  • 블로그 포스트 파트 #2: Bypassing LSA Protection in Userland

사용법

인수 없이 실행 파일을 실행하면 자세한 도움말/사용법이 표시됩니다.

root@kitploit:~
c:\Temp>PPLdump64.exe
 _____ _____ __      _
|  _  |  _  |  |   _| |_ _ _____ ___
|   __|   __|  |__| . | | |     | . |  version 0.4
|__|  |__|  |_____|___|___|_|_|_|  _|  by @itm4n
                                |_|

Description:
  Dump the memory of a Protected Process Light (PPL) with a *userland* exploit

Usage:
  PPLdump.exe [-v] [-d] [-f] <PROC_NAME|PROC_ID> <DUMP_FILE>

Arguments:
  PROC_NAME  The name of a Process to dump
  PROC_ID    The ID of a Process to dump
  DUMP_FILE  The path of the output dump file

Options:
  -v         (Verbose) Enable verbose mode
  -d         (Debug) Enable debug mode (implies verbose)
  -f         (Force) Bypass DefineDosDevice error check

Examples:
  PPLdump.exe lsass.exe lsass.dmp
  PPLdump.exe -v 720 out.dmp

자주 묻는 질문

모든 Windows 버전에서 작동하나요?

우선, PPL은 Windows 8.1에서 도입되었으므로 이전 Windows 버전은 당연히 지원되지 않습니다. 이 프로젝트는 주로 Windows 10(및 서버 에디션)을 대상으로 하지만, 이전 버전에서도 테스트했습니다. 동명의 섹션에서 수행한 테스트 요약 표를 확인할 수 있습니다.

다른 도구와 어떻게 다른가요?

다른 PPL 우회 도구는 일반적으로 디지털 서명된 드라이버를 통해 커널에서 임의 코드를 실행합니다. 이 도구는 사용자 영역 트릭만을 사용하며 (거의) 파일리스(fileless)라는 점에서 다릅니다.

"사용자 영역"이라고요?!

이 도구는 James Forshaw가 2018년에 처음 논의한 매우 영리한 트릭을 활용합니다(참고자료 참조). DefineDosDevice API 함수를 사용하여 시스템을 속여 임의의 Known DLL 항목을 생성합니다. PPL은 Known DLL의 디지털 서명을 확인하지 않기 때문에, 이를 이용해 DLL 하이재킹 공격을 수행하고 PPL 내에서 임의 코드를 실행할 수 있습니다.

정말 "파일리스"인가요?

이 도구는 2단계로 DLL 하이재킹 공격을 수행하지만, 디스크에 새 DLL 파일을 생성하지는 않습니다. 대신 NTFS 트랜잭션을 사용하여 기존 DLL의 내용을 가상으로 대체하는데, 이 기술은 @_ForrestOrr의 작업에서 직접 영감을 받았습니다(참고자료 참조).

이 도구가 DoS를 유발할 수 있나요?

간단히 답변하자면 "아니오"입니다. 첫째, 커널에 직접 접근하지 않으므로 BSOD가 발생할 위험이 없습니다. 최악의 시나리오에서는 생성된 Known DLL 항목을 제거하지 못할 수 있지만, 이로 인해 서비스 거부가 발생하지는 않습니다. 해당 항목은 다음 재부팅까지 그대로 남아 있을 뿐입니다. 생성된 항목은 존재하지 않는 섹션을 가리키는 심볼릭 링크일 뿐이므로, 시스템은 결국 기본 위치(예: System32 폴더)로 대체되어 머신에서 실행 중인 다른 프로그램에 영향을 주지 않습니다.

테스트

⚠️ 완전히 업데이트된 Windows 8.1/Server 2012 R2 머신에서는 익스플로잇이 실패합니다. 어떤 패치가 오류를 유발했는지 아직 확인하지 못했습니다.

root@kitploit:~
[-] DefineDosDevice failed with error code 6 - The handle is invalid.

⚠️ Windows 8.1/Server 2012 R2에서는 바이너리를 정적으로 컴파일해야 할 수도 있습니다(아래 "빌드 지침" 참조).

빌드 지침

이 Visual Studio 솔루션은 특정 순서로 컴파일해야 하는 두 개의 프로젝트(실행 파일과 페이로드 DLL)로 구성됩니다. 모든 것이 사전 구성되어 있으므로 간단한 지침을 따르기만 하면 됩니다. 컴파일된 페이로드 DLL은 최종 실행 파일에 자동으로 포함됩니다.

  1. Visual Studio 2019로 솔루션을 엽니다.
  2. 대상 머신의 아키텍처에 따라 Release / x64 또는 Release / x86을 선택합니다.
  3. 빌드 > 솔루션 빌드를 선택합니다.

Windows 8.1/Server 2012 R2에서는 바이너리를 정적으로 컴파일해야 할 수 있습니다.

  1. PPLdump 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
  2. 구성 속성 > C/C++ > 코드 생성으로 이동합니다.
  3. 런타임 라이브러리 옵션으로 다중 스레드(/MT)를 선택합니다.
  4. 솔루션을 빌드합니다.

참고자료

  • @tiraniddo - Windows Exploitation Tricks: 임의 객체 디렉터리 생성을 이용한 로컬 권한 상승
    https://googleprojectzero.blogspot.com/2018/08/windows-exploitation-tricks-exploiting.html
  • @_ForrestOrr - 악성 메모리 아티팩트 마스킹 – 파트 I: 팬텀 DLL 할로잉
    https://www.forrest-orr.net/post/malicious-memory-artifacts-part-i-dll-hollowing
도구 다운로드
Windows 버전빌드에디션아키텍처관리자SYSTEM
Windows 10 20H219042Prox64✔️✔️
Windows 10 20H219042Prox86✔️✔️
Windows 10 190918363Prox64✔️✔️
Windows 10 150710240Educationalx64✔️✔️
Windows 10 150710240Homex64✔️✔️
Windows 10 150710240Prox64✔️✔️
Windows Server 201917763Standardx64✔️✔️
Windows Server 201917763Essentialsx64✔️✔️
Windows 8.19600Prox64⚠️⚠️
Windows Server 2012 R29600Standardx64⚠️⚠️