
교육용 비기능 Linux 커널 익스플로잇 템플릿 — 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
# 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>, --config <file>,
자세한 설정은 설정 가이드를 참조하십시오.
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_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 |