Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
KDU — Windows 커널 드라이버 유틸리티로, 취약한 서명된 드라이버(BYOVD)를 악용하여 DSE를 우회하고, 서명되지 않은 드라이버를 로드하며, 보호된 프로세스를 하이재킹하고, 프로세스 메모리를 덤프합니다. | Kitploit
도구/GitHubGitHub/hfiref0x/kdu
Defensive ToolsPrivilege EscalationPersistence MechanismsVulnerability AnalysisExploitationReverse EngineeringShellcodeMalware AnalysisRed TeamingPayload DevelopmentBinary Exploitation
2.8k55257일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
hfiref0x/kdu

KDU

Windows 커널 드라이버 유틸리티로, 취약한 서명된 드라이버(BYOVD)를 악용하여 DSE를 우회하고, 서명되지 않은 드라이버를 로드하며, 보호된 프로세스를 하이재킹하고, 프로세스 메모리를 덤프합니다.

저장소 보기

KDU

Build status Visitors

커널 드라이버 유틸리티

시스템 요구 사항

  • x64 Windows 7/8/8.1/10/11;
  • 관리자 권한이 필요합니다.

목적 및 기능

이 도구의 목적은 광범위한 설정이나 로컬 디버거 없이 Windows 커널/구성 요소를 탐색할 수 있는 간단한 방법을 제공하는 것입니다. 다음 기능을 제공합니다:

  • EPROCESS 객체 수정을 통한 임의 PPL 또는 임의 프로세스 핸들을 이용한 보호된 프로세스 하이재킹;
  • 드라이버 서명 적용 우회 (DSEFix와 유사);
  • 드라이버 서명 적용을 우회하기 위한 드라이버 로더 (TDL/Stryker와 유사);
  • 기능 "제공자"로 사용되는 다양한 취약한 드라이버 지원.

사용법

KDU -list
KDU -listcsv
KDU -diag
KDU -prv ProviderID
KDU -ps ProcessID
KDU -pse Commandline
KDU -psw Commandline
KDU -pho ProcessID
KDU -dmp ProcessID
KDU -dse value
KDU -map filename
  • -list - 현재 사용 가능한 제공자 목록을 표시합니다;
  • -listcsv [file] - 사용 가능한 제공자를 CSV 형식으로 나열하며, 선택적으로 파일에 기록합니다;
  • -diag - 문제 해결을 위한 시스템 진단을 실행합니다;
  • -prv - 선택 사항, 취약한 드라이버 제공자를 선택합니다;
  • -ps - 주어진 ProcessID의 프로세스 객체를 수정하여 모든 보호를 해제합니다;
  • -pse - 프로그램을 ProtectedProcessLight-AntiMalware (PPL)로 실행합니다;
  • -psw - 프로그램을 ProtectedProcessLight-WinTcb (PPL)로 실행합니다;
  • -pho - 임의의 프로세스를 전체 액세스 권한으로 엽니다
    • -pht - 이 프로세스의 모든 스레드도 전체 액세스 권한으로 엽니다
    • -phc - 플래그를 상속할 명령줄 (자식 프로세스), 기본값은 powershell
    • -phe - 자식 프로세스도 ppl로 시작합니다
  • -dmp - 주어진 프로세스의 가상 메모리를 덤프합니다;
  • -dse - 사용자 정의 값을 시스템 DSE 상태 플래그에 기록합니다;
  • -map - 드라이버를 커널에 매핑하고 진입점을 실행합니다; 이 명령에는 아래 나열된 종속성이 있습니다;
    • -scv version - 선택 사항, 셸코드 버전을 선택합니다, 기본값은 1;
    • -drvn name - 드라이버 객체 이름 (셸코드 버전 3에서만 유효);
    • -drvr name - 선택 사항, 드라이버 레지스트리 키 이름 (셸코드 버전 3에서만 유효).

예시:

  • kdu -ps 1234
  • kdu -map c:\driverless\mysuperhack.sys
  • kdu -dmp 666
  • kdu -prv 1 -ps 1234
  • kdu -prv 1 -map c:\driverless\mysuperhack.sys
  • kdu -prv 6 -scv 3 -drvn DrvObj -map c:\install\e3600bm.sys
  • kdu -prv 6 -scv 3 -drvn edrv -drvr e3600bl -map c:\install\e3600bl.sys
  • kdu -dse 0
  • kdu -dse 6
  • kdu -pse "C:\Windows\System32\notepad.exe C:\TEMP\words.txt"
  • kdu -psw "C:\Windows\System32\cmd.exe"
  • kdu -pho 1234 -pht -phe 3
  • kdu -listcsv "c:\kdu\out.csv"

Windows 11 24H2에서 실행*

Windows 10 20H2에서 실행*

Windows 8.1에서 컴파일 및 실행*

완전히 패치된 Windows 7 SP1에서 실행 (미리 컴파일된 버전)*

Windows 10 19H2에서 실행 (미리 컴파일된 버전, SecureBoot 활성화)*

대부분의 스크린샷은 버전 1.0X에서 가져온 것입니다.

-map 명령의 제한 사항

표준 커널 로더를 사용하지 않고 이미 로드된 모듈을 셸코드로 덮어쓰는 비정상적인 로딩 방식으로 인해 몇 가지 제한 사항이 있습니다:

  • 로드된 드라이버는 "드라이버리스"로 실행되도록 특별히 설계되어야 합니다;

즉, DriverEntry에 지정된 매개변수를 사용할 수 없으며 유효하지 않습니다. 또한 어떤 드라이버든 로드할 수 있는 것이 아니라 특별히 설계된 드라이버만 로드할 수 있거나 셸코드 루틴을 수정해야 합니다.

  • 대상 드라이버에 대한 SEH 지원 없음;

x64에는 SEH 코드가 없습니다. 대신 PE 헤더의 포인터로 설명되는 try/except/finally 영역 테이블이 있습니다. 예외가 발생하면 BSOD가 발생할 수 있습니다.

  • 드라이버 언로드 없음;

매핑된 코드는 스스로 언로드할 수 없습니다; 그러나 매핑된 코드가 할당한 모든 리소스를 해제할 수 있습니다. DRIVER_OBJECT->DriverUnload는 NULL로 설정해야 합니다.

  • ntoskrnl 임포트만 해결되며, 나머지는 모두 사용자 책임입니다;

프로젝트에 다른 모듈 종속성이 필요한 경우 이 로더 부분을 다시 작성해야 합니다.

  • 여러 Windows 기본 요소가 PatchGuard에 의해 동적 코드 사용이 금지됩니다.

비정상적인 로딩 방식으로 인해 매핑된 드라이버는 PsLoadedModulesList에 포함되지 않습니다. 즉, 이러한 코드에 의해 등록된 모든 콜백의 핸들러는 이 목록 외부의 메모리에 위치하게 됩니다. PatchGuard가 이를 감지하고 시스템을 충돌시킬 수 있습니다.

일반적으로 커널에서 하지 말아야 할 것을 알고 싶다면 https://github.com/hfiref0x/KDU/tree/master/Source/Examples/BadRkDemo 를 참조하십시오. 여기에는 금지된 사항의 몇 가지 예가 포함되어 있습니다.

커널 추적 참고 사항

이 도구는 MmUnloadedDrivers 및/또는 PiDDBCacheTable의 내부 Windows 구조를 변경하지 않습니다 (그리고 앞으로도 변경하지 않을 것입니다). 그 이유는:

  • KDU는 타사 보안 소프트웨어 또는 다양한 의심스러운 소프트웨어 (예: 안티치트)를 우회하도록 설계되지 않았습니다;
  • 이러한 데이터는 다음 주요 Windows 10 업데이트에서 PatchGuard 보호의 대상이 될 수 있습니다.

사용에 따른 책임은 사용자에게 있습니다. 일부 게으른 AV는 이 도구를 hacktool/malware로 플래그 지정할 수 있습니다.

지원되는 제공자

모든 메타데이터를 포함한 전체 목록은 여기에서 확인할 수 있습니다:

  • https://github.com/hfiref0x/KDU/blob/master/Help/providers.md

향후 더 많은 제공자가 추가될 수 있습니다.

작동 방식

합법적인 소프트웨어의 알려진 취약한 (또는 설계상 웜홀) 드라이버를 사용하여 읽기/쓰기 기본 요소로 임의의 커널 메모리에 액세스합니다.

명령에 따라 KDU는 TDL/DSEFix로 작동하거나 커널 모드 프로세스 객체 (EPROCESS)를 수정합니다.

-map 모드에서 KDU는 대부분의 사용 가능한 제공자에 대해 기본적으로 SysInternals Process Explorer의 타사 서명된 드라이버를 사용하고 IRP_MJ_DEVICE_CONTROL 루틴 내부에 작은 로더 셸코드를 배치하여 하이재킹합니다.

셸코드 버전

KDU는 셸코드를 사용하여 입력 드라이버를 매핑하고 DriverEntry를 실행합니다. KDU에 내장된 몇 가지 셸코드 변형이 있습니다. 셸코드 V1, V2, V3는 타사 희생 드라이버 (Process Explorer 등)와 함께 사용됩니다.

빌드 및 참고 사항

KDU는 전체 소스 코드와 함께 제공됩니다. 소스에서 빌드하려면 Microsoft Visual Studio 2019 이상이 필요합니다. 드라이버 빌드의 경우 Microsoft Windows Driver Kit 10 이상이 필요합니다.

완전한 작동 바이너리에는 kdu.exe (주 실행 파일) 및 drv64.dll (드라이버 데이터베이스)이 포함됩니다. 이들은 kdu.exe에 대해 R/W 액세스가 활성화된 동일한 디렉터리에 있어야 합니다. 모든 바이너리는 시스템 영역에서 차단 해제되어야 합니다.

유틸리티 및 참고 사항

GenAsIo2Unlock은 AsIO2 드라이버 작업에 필요한 "잠금 해제" 리소스를 생성하는 데 사용되는 특수 유틸리티입니다. 이 유틸리티의 전체 소스는 Source\Utils\GenAsIo2Unlock에 포함되어 있습니다.

버그 및 비호환성 보고

KDU를 타사 소프트웨어 또는 OS와 함께 사용하는 동안 버그나 비호환성을 경험하면 이슈를 작성해 주십시오. 그러나 이 비호환성이 귀하의 행동으로 인해 발생한 경우 이러한 보고는 무시됩니다.

안티치트, 안티멀웨어 비호환성은 무시됩니다, 이는 귀하의 책임입니다.

면책 조항

이 프로그램을 사용하면 BSOD와 함께 컴퓨터가 충돌할 수 있습니다. 컴파일된 바이너리와 소스 코드는 유용하기를 바라며 있는 그대로 제공되지만 어떠한 종류의 보증도 없습니다. KDU는 완전히 버그가 있고 취약한 드라이버에 의존하므로 가상 머신에서만 사용하는 것이 강력히 권장됩니다.

변경 로그

https://github.com/hfiref0x/KDU/tree/master/CHANGELOG.txt

타사 코드 사용

  • TinyAES, https://github.com/kokke/tiny-AES-c
  • whirlpool, https://github.com/mabako/mta-whirlpool

참고 자료

도구 다운로드