
教育用、非機能のLinux kernelエクスプロイトテンプレート — CVE-2024-1086向け、ラボ専用のセキュリティ研究および教育(管理されたVMのみで使用)。
🛡️ セキュリティ研究向け洗練された教育用 Linux カーネルエクスプロイト
このプロジェクトは、Linux カーネルの netfilter: nf_tables コンポーネントにおける Use-After-Free 脆弱性 CVE-2024-1086 を研究するための、堅牢で機能しないテンプレートを提供します。ローカル権限昇格を可能にします。セキュリティ研究者や学生向けに設計されており、C エクスプロイトテンプレートと拡張された Java ラッパーを組み合わせ、信頼性の高い診断、設定、実行を実現します。管理されたラボ環境(例:脆弱なカーネルを搭載した VM)でのみ使用することを意図しています。
⚠️ 警告: C コードは機能せず、プレースホルダ値を使用しており、実際に動作させるには大幅な変更が必要です。許可なく本番システムで使用したり、権限なく使用することは違法かつ非倫理的です。カーネルセキュリティの知識を深めるために責任を持って使用してください。
nf_tables モジュールの包括的なチェック--check、--run、--dry-run、--payload、--config オプションをサポートnf_tables エクスプロイトの安全な教育学習のための非機能 C コード┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔍 Java Diagnostics │───▶│ 💻 Exploit Runner │───▶│ 🔐 C Exploit Template│
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔒 System Validation│───▶│ 📝 Logging Engine │───▶│ 🛡️ Kernel Netlink │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ 🧪 Test Suite │ │ 📜 Config Management│
└─────────────────────┘ └─────────────────────┘
このプロジェクトは、安全な診断、ロギング、設定のための Java ラッパーと、Netlink ソケットを介したカーネルインタラクションをシミュレートする C エクスプロイトテンプレートを統合し、テストスイートで検証をサポートします。
以下のツールがインストールされていることを確認してください。
sudo apt install build-essential)sudo apt install openjdk-11-jdk)org.json:json:20230227 (Maven または JAR 経由)commons-cli:commons-cli:1.5.0 (Maven または JAR 経由)オペレーティングシステム:
CONFIG_USER_NS=y)nf_tables モジュールが有効 (CONFIG_NF_TABLES=y)ラボ環境:
リポジトリのクローン
git clone https://github.com/karim4353/CVE-2024-1086-Exploit.git
cd CVE-2024-1086-Exploit
依存関係のインストール
sudo apt update
sudo apt install build-essential openjdk-11-jdk
# ライブラリをダウンロードするか、Maven に追加
wget https://repo1.maven.org/maven2/org/json/json/20230227/json-20230227.jar
wget https://repo1.maven.org/maven2/commons-cli/commons-cli/1.5.0/commons-cli-1.5.0.jar
C エクスプロイトのビルド
make
Java ラッパーの実行
javac -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" -d . src/main/java/com/example/cve20241086/ExploitRunner.java
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
オプション: --check、--run、--dry-run、--payload <パス>、--config <ファイル>、
詳細な設定については、セットアップガイドを参照してください。
CVE-2024-1086-Exploit/
├── src/
│ ├── main/
│ │ ├── c/
│ │ │ └── exploit.c # 🔐 C エクスプロイトテンプレート
│ │ ├── java/
│ │ │ └── com/example/cve20241086/
│ │ │ └── ExploitRunner.java # 🔍 Java ラッパー
│ │ └── resources/
│ │ └── config.json # 📜 エクスプロイト設定
│ └── test/
│ ├── c/
│ │ └── test_exploit.c # 🧪 C テストケース
│ └── java/
│ └── com/example/cve20241086/
│ └── ExploitRunnerTest.java # 🧪 Java テストケース
├── Makefile # 🛠️ ビルドスクリプト
├── README.md # 📝 このファイル
├── CONTRIBUTING.md # 🤝 コントリビューションガイドライン
├── LICENSE # 📄 MIT ライセンス
└── tests/
└── run_tests.sh # 🧪 テストランナースクリプト
安全なラボ環境でプロジェクトをテストします。
# システムの脆弱性をチェック
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --check
# エクスプロイトの実行 (非機能)
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
# テストの実行
./tests/run_tests.sh
# ビルドアーティファクトのクリーン
make clean
この教育用プロジェクトへのコントリビューションを歓迎します!詳細はコントリビューションガイドラインを参照してください。
nf_tables の Use-After-Free 脆弱性を研究exploit_log.txt への書き込み時間 <50mssrc/main/resources/config.json で設定します。
{
"exploitBinary": "./exploit",
"targetKernel": "5.15",
"payloadPath": "/tmp/payload.sh",
"logLevel": "DEBUG",
"timeoutSeconds": "30"
}
設定ガイドを参照してください。
よくある問題:
make clean && make を実行。sysctl -w kernel.unprivileged_userns_clone=1 と lsmod | grep nf_tables を確認。json-20230227.jar と commons-cli-1.5.0.jar が含まれているか確認。MIT ライセンスの下で提供されています - 詳細は LICENSE を参照。
🛡️ セキュリティ研究コミュニティのために ❤️ を込めて作られました
--helpテストの実行
./tests/run_tests.sh
| コンポーネント | 最小要件 | 推奨要件 |
|---|
| カーネルバージョン | 5.14 | 5.15.x < 5.15.148 |
| RAM | 512MB | 1GB+ |
| CPU | 1GHz | 2GHz+ |
| ディスク容量 | 100MB | 500MB+ |
| Java バージョン | JDK 11 | JDK 17 |