
CVE-2018-19323 - GIGABYTE GDrv 권한 상승 취약점을 위한 익스플로잇 프레임워크로, 다중 아키텍처 지원 및 프레임워크 통합을 제공합니다.
이 저장소는 GIGABYTE gdrv.sys 드라이버의 심각한 취약점인 CVE-2018-19323을 위한 완전하고 고급화된 익스플로잇 프레임워크를 포함합니다. 이 취약점은 권한이 없는 사용자가 임의의 모델 특정 레지스터(MSR)를 읽고 쓸 수 있게 하여, 완전한 Ring-0(커널) 장악 및 NT AUTHORITY\SYSTEM으로의 권한 상승으로 이어집니다.
이 프레임워크는 모듈식, 견고성, 그리고 다양한 기능을 갖추도록 설계되어, 보안 연구, 레드 팀 운영, 취약점 분석을 위한 포괄적인 도구를 제공합니다.
IA32_LSTAR MSR을 통해 커널 베이스 주소를 유출하고 토큰 탈취 셸코드를 실행하여 권한 상승을 달성합니다.core, payloads, evasion, monitor, multiarch, framework)로 구성되어 있습니다..
├── exploit.py # Main exploitation framework and CLI
├── core.py # Core driver interaction and exploit primitives
├── payloads.py # Shellcode generation, custom payloads, and encoding
├── evasion.py # Anti-VM, anti-debugging, and persistence techniques
├── monitor.py # Logging, performance monitoring, and reporting
├── multiarch.py # Multi-architecture support (x86/x64/ARM64)
├── framework.py # Integration with Metasploit, Cobalt Strike, etc.
├── tests.py # Comprehensive unit, integration, and performance tests
└── README.md # This documentation file
gdrv.sys 드라이버가 존재해야 합니다.psutil, cryptography, requests# Install required Python packages
pip install psutil cryptography requests
메인 익스플로잇 프레임워크는 exploit.py를 통해 실행됩니다. 다양한 작동 모드를 위한 여러 명령줄 옵션을 제공합니다.
# Display help and all available options
python exploit.py --help
# Default stealth mode (recommended)
# Runs all pre-flight evasion checks before exploitation.
python exploit.py
# Aggressive mode
# Skips evasion checks for faster execution in controlled environments.
python exploit.py --aggressive
# Debug mode
# Provides verbose logging for development and analysis.
python exploit.py --debug
# Run the full test suite
# Validates all framework components without executing the exploit.
python exploit.py --test-only
[!WARNING] 이 소프트웨어는 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 승인되지 않은 시스템 사용은 불법이며 엄격히 금지됩니다. 작성자 kali는 이 프레임워크의 손상이나 오용에 대해 책임을 지지 않습니다.
gdrv.sys 드라이버는 모든 사용자 모드 애플리케이션이 호출할 수 있는 IOCTL 0xC3502580을 노출합니다. 이 IOCTL은 작업 유형(읽기/쓰기), MSR 레지스터 인덱스, 값을 포함하는 구조체를 전달받습니다. 드라이버는 어떠한 액세스 제어 검사도 수행하지 않으므로 모든 프로세스가 임의의 MSR을 읽거나 쓸 수 있습니다.
MSR은 CPU의 기본 연산을 제어하기 때문에 이는 심각한 결함입니다. 특히 IA32_LSTAR MSR(주소 0xC0000082)은 커널 내 시스템 콜 핸들러의 주소를 저장합니다. 이 MSR을 읽으면 커널 주소 공간 레이아웃 무작위화(KASLR)를 우회하고 커널 베이스 주소를 계산할 수 있습니다. 이 MSR에 쓰면 시스템 콜을 우리 자신의 셸코드로 리디렉션하여 Ring-0에서 임의 코드 실행을 달성할 수 있습니다.
\\.\GIO 디바이스에 대한 핸들을 엽니다.IA32_LSTAR MSR을 읽어 커널 내부의 포인터를 얻고 KASLR을 우회합니다.EPROCESS 구조체를 찾고, SYSTEM 프로세스(PID 4)의 EPROCESS를 찾아 해당 보안 토큰을 우리 프로세스로 복사하도록 설계되었습니다.IA32_LSTAR MSR의 주소가 우리 셸코드의 주소로 덮어써집니다.NT AUTHORITY\SYSTEM 권한을 갖게 됩니다.IA32_LSTAR 값이 복원됩니다.evasion.py 모듈은 더 강력한 환경 지문 생성을 위해 CPU 코어 수, 디스크 크기, 최근 파일 활동, 설치된 프로그램, 고급 타이밍/후킹 탐지에 대한 검사를 포함합니다.payloads.py 모듈은 다양한 아키텍처를 위한 여러 페이로드(리버스 셸, Meterpreter, Cobalt Strike 비콘)를 다중 인코딩 레이어와 함께 동적으로 생성할 수 있게 합니다.multiarch.py 모듈은 포인터 크기, 호출 규약, 커널 구조체, 명령어 집합을 포함한 x86, x64, ARM64 간의 차이를 처리하기 위한 포괄적인 추상화 계층을 제공합니다.framework.py 모듈은 Metasploit(.rb), Cobalt Strike(.cna), Empire(.py), Sliver(.go)용으로 바로 사용할 수 있는 모듈을 생성하여 레드 팀 운영을 위한 통합 프로세스를 자동화합니다.프레임워크는 tests.py에 포괄적인 테스트 스위트를 포함합니다. 모든 구성 요소의 무결성과 기능을 확인하기 위해 모든 테스트를 실행할 수 있습니다.
# Run all unit, integration, and performance tests
python tests.py --all
# Run only unit tests
python tests.py --unit
이 프로젝트는 고급 익스플로잇 기술을 시연하기 위한 것이며 책임감 있게 사용해야 합니다.