
قالب تعليمي غير وظيفي لاستغلال ثغرة CVE-2024-1086 في نواة لينكس — مخصص للبحث والتدريس الأمني في المختبر فقط (استخدمه في أجهزة افتراضية خاضعة للتحكم فقط).
🛡️ استغلال تعليمي مصقول لنواة لينكس لأغراض البحث الأمني
يوفر هذا المشروع قالبًا غير وظيفي ومتينًا لدراسة CVE-2024-1086، وهي ثغرة استخدام-after-free في مكوّن netfilter: nf_tables بنواة لينكس، مما يتيح تصعيد الصلاحيات محليًا. صُمّم لباحثي الأمن والطلاب، ويجمع بين قالب استغلال بلغة C وواجهة Java محسّنة لتشخيص وتكوين وتنفيذ موثوقين، وهو مخصص للاستخدام في بيئة مختبرية خاضعة للتحكم فقط (مثل جهاز افتراضي بنواة قابلة للاستغلال).
⚠️ تحذير: كود C غير وظيفي ويستخدم قيمًا مؤقتة (placeholder)، ويتطلب تعديلات كبيرة ليعمل. الاستخدام غير المصرح به على أنظمة الإنتاج أو بدون إذن يعتبر غير قانوني وغير أخلاقي. استخدمه بمسؤولية لتطوير المعرفة بأمن النواة.
nf_tables--check و --run و --dry-run و --payload و --confignf_tables┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔍 Java Diagnostics │───▶│ 💻 Exploit Runner │───▶│ 🔐 C Exploit Template│
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🔒 System Validation│───▶│ 📝 Logging Engine │───▶│ 🛡️ Kernel Netlink │
└─────────────────────┘ └─────────────────────┘ └─────────────────────┘
│ │
▼ ▼
┌─────────────────────┐ ┌─────────────────────┐
│ 🧪 Test Suite │ │ 📜 Config Management│
└─────────────────────┘ └─────────────────────┘
يدمج المشروع واجهة Java للتشخيص الآمن والتسجيل والتكوين مع قالب استغلال بلغة C يحاكي التفاعل مع النواة عبر مقابس Netlink، مدعومًا بمجموعة اختبارات للتحقق.
تأكد من تثبيت الأدوات التالية:
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
# Download libraries or add to 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 <path>، ،
للتثبيت المفصّل، راجع دليل الإعداد.
CVE-2024-1086-Exploit/
├── src/
│ ├── main/
│ │ ├── c/
│ │ │ └── exploit.c # 🔐 C exploit template
│ │ ├── java/
│ │ │ └── com/example/cve20241086/
│ │ │ └── ExploitRunner.java # 🔍 Java wrapper
│ │ └── resources/
│ │ └── config.json # 📜 Exploit configuration
│ └── test/
│ ├── c/
│ │ └── test_exploit.c # 🧪 C test cases
│ └── java/
│ └── com/example/cve20241086/
│ └── ExploitRunnerTest.java # 🧪 Java test cases
├── Makefile # 🛠️ Build script
├── README.md # 📝 This file
├── CONTRIBUTING.md # 🤝 Contribution guidelines
├── LICENSE # 📄 MIT license
└── tests/
└── run_tests.sh # 🧪 Test runner script
اختبر المشروع في بيئة مختبرية آمنة:
# Check system vulnerability
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --check
# Run exploit (non-functional)
java -cp ".:json-20230227.jar:commons-cli-1.5.0.jar" com.example.cve20241086.ExploitRunner --run
# Run tests
./tests/run_tests.sh
# Clean build artifacts
make clean
نرحب بالمساهمات لتحسين هذا المشروع التعليمي! راجع إرشادات المساهمة للتفاصيل حول:
nf_tablesexploit_log.txtقم بالتكوين عبر src/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 في مسار الفئات (classpath).راجع الأسئلة الشائعة أو افتح مشكلة.
مرخّص بموجب رخصة MIT - راجع LICENSE.
🛡️ صُنع بكل ❤️ لمجتمع أبحاث الأمن
--config <file>--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 |