
커널 프로세스 종료 도구 (CVE-2026-0828 익스플로잇)


⚠️ 면책 조항: 이 프로젝트는 교육 및 보안 연구 목적으로만 엄격히 사용됩니다. 저자는 이 도구로 인한 오용, 손상 또는 불법 활동에 대해 책임을 지지 않습니다. 명시적인 허가를 받은 격리된 실험실 환경에서만 사용하십시오.
KillChain은 취약한 커널 드라이버(ProcessMonitorDriver.sys, CVE-2026-0828)를 활용하여 사용자 모드에서 보호된 프로세스를 종료하는 도구입니다. 커스텀 IOCTL 인터페이스를 통해 커널과 통신하며, 표준 프로세스 보호 메커니즘을 우회합니다.
이 도구는 드라이버 바이너리를 실행 파일에 직접 내장하고, 런타임 시 임시 위치에 추출한 후 커널 서비스로 등록하고, NtLoadDriver를 통해 로드하며, DeviceIoControl을 통해 종료 요청을 전송합니다.
KillChain/
├── KillChain.cpp 진입점, CLI 인수 파싱, 메인 종료 루프
├── LoadDriver.h 드라이버 추출, 서비스 등록, NtLoadDriver/NtUnloadDriver 로직
├── Logger.h 스레드 안전 콘솔/파일 로깅 (색상 코드 출력)
├── driverBytes.h 내장 드라이버 바이너리 (원시 바이트 배열)
ProcessMonitorDriver.sys (실행 파일 내부에 내장)
├── IOCTL_KILL_PROCESS (0xB822200C) 노출 PID로 대상 프로세스 종료
1. CLI 인수 파싱
2. 내장 .sys 추출 → %TEMP%\EmbeddedDriverService.sys
3. 레지스트리 서비스 키 생성 + SCM을 통한 등록
4. NtLoadDriver를 통해 커널에 드라이버 로드 (SeLoadDriverPrivilege 필요)
5. 디바이스 핸들 열기: \\.\STProcessMonitorDriver
6. 루프 (최대 360초):
a. 매 반복마다 이름으로 PID 확인 (--name 사용 시)
b. 대상 PID로 IOCTL_KILL_PROCESS 전송
c. 2회 성공적인 종료 후, 선택적으로 레지스트리를 통해 Windows Defender 비활성화
7. 디바이스 핸들 닫기; 선택적으로 --uninstall-driver 정리 실행
SeLoadDriverPrivilege 및 레지스트리 접근에 필요KillChain.sln 열기Ctrl+Shift+B를 눌러 빌드출력: x64\Release\KillChain.exe
KillChain.exe [options]
옵션:
--pid <PID> PID로 프로세스 종료
--name <ProcessName> 실행 파일 이름으로 프로세스 종료
--disable-defender 레지스트리를 통해 Windows Defender도 비활성화
--log-level <0-3> 로깅 상세 수준 (0=오류, 1=일반, 2=상세, 3=디버그)
--output <file> 로그 출력을 파일에 저장
--uninstall-driver 드라이버 언로드, 서비스 및 드라이버 파일 삭제
--help 도움말 표시
REM 이름으로 보호된 프로세스 종료
KillChain.exe --name MsMpEng.exe
REM 상세 로깅과 함께 PID로 종료하고 파일에 기록
KillChain.exe --pid 1234 --log-level 2 --output log.txt
REM 프로세스 종료 후 Windows Defender 비활성화
KillChain.exe --name notepad.exe --disable-defender
REM 테스트 후 드라이버 정리
KillChain.exe --uninstall-driver
| 상수 | 값 |
|---|---|
IOCTL_KILL_PROCESS | 0xB822200C |
| 필드 | 유형 | 설명 |
|---|---|---|
| 입력 버퍼 | ULONG64 | 대상 프로세스 PID |
| 출력 버퍼 | DWORD | 사용되지 않음 (더미) |
출력은 스레드 안전(CRITICAL_SECTION 기반)하며, ANSI 색상의 콘솔과 로그 파일에 동시에 기록할 수 있습니다.
CVE-2026-0828 ProcessMonitorDriver.sys는 디바이스에 대한 핸들을 가진 모든 사용자 모드 호출자가 표준 접근 제어 검사 없이 임의의 프로세스(보호된 시스템 프로세스 포함)를 종료할 수 있게 하는 IOCTL을 노출합니다.
Eleven Red Pandas
이 프로젝트는 교육 및 연구 목적으로만 제공됩니다. 재배포 또는 프로덕션 환경에서의 사용은 엄격히 금지됩니다.
| 기능 | 설명 |
|---|
| PID로 종료 | 커널 IOCTL을 통해 숫자 PID로 모든 프로세스 종료 |
| 이름으로 종료 | 실행 파일 이름으로 프로세스를 확인하고 종료, 매 반복마다 재확인 |
| 지속 루프 | 최대 360초 동안 대상 프로세스를 지속적으로 모니터링하고 재종료 |
| Defender 비활성화 | HKLM\SOFTWARE\Policies\Microsoft\Windows Defender에 기록하여 실시간 보호 비활성화 |
| 내장 드라이버 | 드라이버 바이너리가 실행 파일에 내장됨 외부 .sys 파일 불필요 |
| 드라이버 제거 | 커널에서 드라이버 언로드, SCM 서비스 제거, 레지스트리 정리, 임시 파일 삭제 |
| 구성 가능한 로깅 | 선택적 파일 출력이 포함된 4단계 상세 수준 |
| 디바이스 경로 |
\\.\STProcessMonitorDriver |
| 수준 | 값 | 설명 |
|---|
LOG_ERROR | 0 | 오류만 |
LOG_INFO | 1 | 일반 운영 메시지 (기본값) |
LOG_WARNING | 2 | 경고 및 정보 메시지 |
LOG_DEBUG | 3 | 전체 디버그 추적 |
| 단계 | Win32 / NT API |
|---|
| 임시 파일로 추출 | CreateFile + WriteFile |
| 서비스 등록 | RegCreateKeyEx + CreateService (SCM) |
| 커널에 로드 | NtLoadDriver (ntdll) |
| 활성 상태 확인 | EnumDeviceDrivers + GetDeviceDriverBaseName |
| 커널에서 언로드 | NtUnloadDriver (ntdll) |
| 서비스 제거 | DeleteService (SCM) + RegDeleteTree |
| 임시 파일 삭제 | DeleteFile |