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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Kernel_VADInjector — VAD를 활용하고 로드된 드라이버를 숨기는 드라이버 기반 Windows 10 DLL 인젝터 | Kitploit
도구/GitHubGitHub/lleon1435/kernel_vadinjector
IDS/IPS EvasionShellcodePost-ExploitationRed TeamingPayload DevelopmentAdversarial Attack
GitHublleon1435/kernel_vadinjector

Kernel_VADInjector

VAD를 활용하고 로드된 드라이버를 숨기는 드라이버 기반 Windows 10 DLL 인젝터

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

드라이버 DLL 인젝터

드라이버 DLL 인젝터 설명

Driver DLL Injector는 사용자가 선호하는 매퍼를 사용하여 원하는 드라이버를 로드할 수 있게 해주는 강력한 도구입니다. KDmapper와 같은 서명되지 않은 드라이버 로더의 기능을 활용하여, 이 인젝터는 Windows 10 2004 x64 프로세스를 대상으로 빌드 및 테스트되었습니다.

드라이버 부분:

드라이버는 사용자 모드 프로세스와 통신하기 위해 xKdEnumerateDebuggingDevices로 알려진 패치 가드에 안전한 함수를 후킹합니다. 이 방법은 널리 알려진 안티치트에 고도로 탐지되므로, 한 단계 더 나아가 커널에서 사용자 모드 스레드를 트랩하여 원래 함수 주소를 복원함으로써 함수 무결성 검사를 우회하며 통신합니다.

드라이버는 남겨진 흔적을 숨기기 위해 다음을 수행합니다:

  • VAD 조작: 드라이버는 널리 알려지지 않은 문서화되지 않은 VAD(Virtual Address Descriptor) 함수들(예: MiInsertChange, MiAllocVad)을 활용하여 "스레드 스택" 뒤에 전략적으로 메모리를 할당합니다. VAD가 할당되고 DLL이 성공적으로 로드되면 드라이버는 VAD 트리에서 VAD를 제거합니다.

  • PTE 조작: NtQueryVirtualMemory의 검사를 우회하기 위해 드라이버는 PTE(Page Table Entry)를 조작하여 VAD가 할당한 페이지가 실행 가능하도록 만듭니다. PTE를 수정함으로써 드라이버는 VAD가 실행(X) 비트가 활성화된 상태로 업데이트되지 않도록 하여 잠재적 제한을 우회합니다.

  • PiDDBCacheTable, MmUnloadedDrivers(해시 버킷 목록) 지우기.

  • 드라이버에 어떤 수동 매퍼를 사용하는지에 따라 big pools도 고려해야 합니다.

사용자 모드 부분:

사용자 모드 프로세스는 Discord의 오버레이를 활용하여 DLL main 함수를 호출합니다.

사용자 모드 프로세스는 다음을 수행합니다:

  • 후킹된 커널 함수와 "연결"하여 모든 주소와 메시지 코드를 제공합니다.
  • 프로세스에서 Discord 오버레이를 스캔하고, 발견되면 셸코드를 설정하고 VAD를 할당합니다.
  • DLL main을 호출하기 위한 셸코드를 설정한 다음
  • DLL이 주입되면 사용자 모드 프로세스는 드라이버에 "끝났습니다!"라는 메시지를 보내고, 드라이버는 남겨진 모든 흔적을 정리합니다.

Driver DLL Injector를 사용하려면 다음 단계를 따르세요:

root@kitploit:~
1. KDmapper와 같은 호환 가능한 매퍼를 선택하고 설치하세요.
2. Driver DLL Injector 프로젝트를 컴파일하거나 빌드하세요.
3. 선택한 매퍼를 사용하여 드라이버를 로드하세요.
4. 테스트 애플리케이션을 실행하세요(Discord 오버레이 활성화 상태로).
5. 사용자 모드 애플리케이션을 실행하고 Hello World 메시지 상자를 기다리세요.

탐지 벡터

  • 페이지 테이블 워크, 스택 워크 등
  • WDF는 드라이버가 MmUnLoadedDrivers처럼 지워지지 않았기 때문에 로드된 드라이버를 나열할 것입니다.
  • 사용자 모드 스레드는 커널 영역에서 엄청난 양의 CPU 사이클 시간을 소비할 것입니다. 작업 관리자에서 "커널 시간"을 확인하세요.

발생한 문제

이 프로젝트를 만들면서 여러 장애물이 있었습니다. 그중 일부는 다음과 같습니다:

  • DLL 속성이 잘못 설정되어 DLL이 충돌했습니다. /sdl-, /GS-를 설정하고 런타임 라이브러리를 /MT로 설정하여 충돌 문제를 해결했습니다.
  • 매퍼를 사용하여 드라이버를 매핑하면 KMODE_EXCEPTION BSOD가 발생했습니다. 드라이버 속성 /GS-를 설정하여 해결했습니다.
  • Discord 오버레이는 초기화하는 데 시간이 걸립니다. 오버레이가 초기화되기 전에 주입을 시도하면 NULL 포인터로 인해 충돌합니다.

크레딧

ModMap - VAD 조작을 보여준 점

SkCrypt - 암호화

Stealthy Kernel Mode Injector - 드라이버 베이스

Poseidon - 커널 영역에서 um 스레드를 트랩한 점

FACE INJECTOR - 셸코드

도구 다운로드