
CVE-2018-19323 - GIGABYTE GDrv の特権昇格の脆弱性を標的としたエクスプロイトフレームワーク。マルチアーキテクチャ対応とフレームワーク統合を備えています。
このリポジトリには、CVE-2018-19323(GIGABYTE gdrv.sys ドライバの深刻な脆弱性)に対する、完全かつ高度なエクスプロイトフレームワークが含まれています。この脆弱性により、非特権ユーザーが任意のモデル固有レジスタ(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
このプロジェクトは高度なエクスプロイト技術のデモンストレーションであり、責任を持って使用してください。