
Учебный, нерабочий шаблон эксплойта ядра Linux для CVE-2024-1086 — только для лабораторных исследований в области безопасности и обучения (использовать только в контролируемых виртуальных машинах).
🛡️ Доработанный учебный эксплойт ядра Linux для исследований в области безопасности
Этот проект предоставляет надёжный, нефункциональный шаблон для изучения CVE-2024-1086 — уязвимости типа use-after-free в компоненте netfilter: nf_tables ядра Linux, позволяющей локально повышать привилегии. Проект предназначен для исследователей безопасности и студентов: он сочетает шаблон эксплойта на C с расширенной Java-обёрткой для надёжной диагностики, настройки и выполнения и предназначен для использования только в контролируемой лабораторной среде (например, в виртуальной машине с уязвимым ядром).
⚠️ Предупреждение: C-код нефункционален, использует значения-заглушки и требует значительной доработки для работы. Несанкционированное использование на производственных системах или без разрешения незаконно и неэтично. Используйте ответственно для развития знаний о безопасности ядра.
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.См. FAQ или откройте issue.
Распространяется по лицензии MIT — см. LICENSE.
🛡️ Создано с ❤️ для сообщества исследователей безопасности
--config <file>--helpЗапустите тесты
./tests/run_tests.sh
| Компонент | Минимум | Рекомендуется |
|---|
| Версия ядра | 5.14 | 5.15.x < 5.15.148 |
| ОЗУ | 512 МБ | 1 ГБ+ |
| Процессор | 1 ГГц | 2 ГГц+ |
| Место на диске | 100 МБ | 500 МБ+ |
| Версия Java | JDK 11 | JDK 17 |