Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
drupalgeddon2-cli — CLI rewrite of the Drupalgeddon2 (CVE-2018-7600) PoC — अधिकृत परीक्षण/शिक्षा के लिए | Kitploit
उपकरण/GitHubGitHub/nayem-m/drupalgeddon2-cli
पेलोड जनरेशनशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHubnayem-m/drupalgeddon2-cli

drupalgeddon2-cli

CLI rewrite of the Drupalgeddon2 (CVE-2018-7600) PoC — अधिकृत परीक्षण/शिक्षा के लिए

रिपॉजिटरी देखें
2 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

drupalgeddon2-cli

एक Drupalgeddon2 (CVE-2018-7600) प्रूफ-ऑफ-कॉन्सेप्ट का कमांड-लाइन पुनर्लेखन, जो Hack The Box Academy के Attacking Common Applications मॉड्यूल के माध्यम से काम करते हुए एक अध्ययन अभ्यास के रूप में बनाया गया है।

[!WARNING] केवल अधिकृत सुरक्षा परीक्षण और शिक्षा के लिए। जिन सिस्टमों के आप मालिक नहीं हैं या जिनके लिए आपके पास स्पष्ट लिखित अनुमति नहीं है, उनके खिलाफ इसे चलाना अधिकांश न्यायक्षेत्रों में अवैध है। कानूनी और जिम्मेदार उपयोग देखें।

[!NOTE] AI सहायता से लिखा गया कार्यान्वयन। लेखकत्व पर एक नोट देखें।


पृष्ठभूमि — मैंने इसे क्यों बनाया

Drupal HTB Academy के Attacking Common Applications मॉड्यूल में शामिल "सामान्य अनुप्रयोगों" में से एक है, और CVE-2018-7600 ("Drupalgeddon2") इसके लिए विहित अनप्रमाणित-RCE उदाहरण है। एक बार उपयोग होने वाली स्क्रिप्ट को कॉपी-पेस्ट करके आगे बढ़ने के बजाय, मैं वास्तव में उस Form API इंजेक्शन को समझना चाहता था जो इस बग को काम कराता है — इसलिए मैंने एक सीखने के अभ्यास के रूप में सार्वजनिक PoC को शुरू से फिर से बनाया।

व्यापक रूप से संदर्भित मूल, Vitalii Rudnykh का a2u/CVE-2018-7600, बग को प्रदर्शित करने के लिए बहुत अच्छा है, लेकिन यह अपेक्षा करता है कि आप प्रत्येक रन के लिए पेलोड को स्थान पर संपादित करें। लैब/CTF वर्कफ़्लो में — विभिन्न लक्ष्यों के खिलाफ पुनः चलाना, एक दोहराने योग्य पैर जमाना चाहते हैं — यह थकाऊ हो जाता है। यह संस्करण इसके बजाय इसे एक उचित CLI टूल में बदल देता है:

  • लक्ष्य और कमांड को तर्कों के रूप में पास किया जाता है; प्रति रन में स्रोत संपादित करने की आवश्यकता नहीं है
  • यह स्वचालित रूप से एक छोटा PHP वेब शेल लगाता है (कमजोर सर्वर फ़ाइल स्वयं लिखता है), एक स्थिर, पुन: प्रयोज्य पैर जमाने देता है
  • आप एक एकल कमांड फायर कर सकते हैं, एक इंटरैक्टिव स्यूडो-शेल में जा सकते हैं, या बस शेल को तैनात करके छोड़ सकते हैं
  • शेल फ़ाइल नाम और कमांड पैरामीटर प्रत्येक रन में यादृच्छिक होते हैं, ताकि दोहराया रन टकराए नहीं और आप पीछे एक अनुमानित cmd= दरवाजा न छोड़ें

यह जानबूझकर एक ज्ञात, लंबे समय से पैच की गई कमजोरी (2018 में खुलासा) तक सीमित है। लक्ष्य तकनीक को समझना और एक साफ, दस्तावेजीकृत संदर्भ कार्यान्वयन तैयार करना था — नवीन आक्रामक क्षमता नहीं।

लेखकत्व पर एक नोट

इस रिपॉजिटरी का कोड AI सहायता (Anthropic के Claude) से लिखा गया था जब मैं HTB मॉड्यूल के माध्यम से काम कर रहा था। मैंने डिज़ाइन लक्ष्य और आवश्यकताएँ निर्धारित कीं — CLI एर्गोनॉमिक्स, वेब शेल का ऑटो-डिप्लॉय, इंटरैक्टिव मोड, यादृच्छिक शेल नाम और पैरामीटर — और मैंने परिणाम की समीक्षा और परीक्षण किया। मैं यह इसलिए प्रकट कर रहा हूँ क्योंकि यह ईमानदार काम है, और क्योंकि यहाँ मूल्य हर पंक्ति के लेखकत्व के बजाय समझ और इंजीनियरिंग निर्णयों में है।

यह क्या करता है

  1. CVE-2018-7600 Form API इंजेक्शन का उपयोग करके लक्ष्य पर एक छोटा PHP वेब शेल गिराता है। कमजोर सर्वर फ़ाइल को स्वयं डिकोड और लिखता है, जो इंजेक्ट किए गए कमांड के साथ कोटिंग/एस्केपिंग समस्याओं को दरकिनार करता है।
  2. आपको --cmd के साथ उस शेल के माध्यम से कमांड चलाने देता है, या --shell के साथ इंटरैक्टिव स्यूडो-शेल में जाने देता है।
  3. सफलता की रिपोर्ट करने से पहले सत्यापित करता है कि शेल वास्तव में उतरा और निष्पादित होता है (यह एक यादृच्छिक टोकन गूँजता है और उसकी जाँच करता है)।

प्रभावित संस्करण

CVE-2018-7600 प्रभावित करता है:

  • Drupal 7.x 7.58 से पहले
  • Drupal 8.x 8.5.1 से पहले (साथ ही 8.3.x < 8.3.9 और 8.4.x < 8.4.6)

यह कार्यान्वयन Drupal 8 Form API वेक्टर (user/register AJAX एंडपॉइंट) को लक्षित करता है। Drupal 7 एक अलग एंडपॉइंट/पेलोड के माध्यम से शोषणीय है और यहाँ हैंडल नहीं किया गया है।

पैच किए गए रिलीज़ (7.58 / 8.5.1 और बाद के) प्रभावित नहीं हैं।

आवश्यकताएँ

  • Python 3.7+
  • requests
root@kitploit:~
pip install requests

उपयोग

root@kitploit:~
# एक बार का कमांड
python3 drupalgeddon2.py -u http://target/ -c id

# इंटरैक्टिव स्यूडो-शेल
python3 drupalgeddon2.py -u http://target/ --shell

# बस शेल लगाएं, कुछ न चलाएं
python3 drupalgeddon2.py -u http://target/ --deploy-only

# Burp के माध्यम से रूट करें, प्रॉक्सी के सेल्फ-साइन किए गए प्रमाणपत्र को अनदेखा करें
python3 drupalgeddon2.py -u http://target/ -c id --proxy http://127.0.0.1:8080 -k

यह कैसे काम करता है

CVE-2018-7600 Drupal के Form API में इनपुट-सैनिटाइज़ेशन विफलता है। Drupal फॉर्मों को नेस्टेड रेंडरेबल ऐरे के रूप में दर्शाता है, और # से शुरू होने वाली ऐरे कुंजियाँ उपयोगकर्ता डेटा के बजाय विशेष रेंडर गुणों के रूप में मानी जाती हैं। पैच (SA-CORE-2018-002) ने उपयोगकर्ता-आपूर्ति किए गए इनपुट से इन #-उपसर्ग कुंजियों को हटाने के लिए सैनिटाइज़ेशन जोड़ा।

पैच से पहले, एक अनप्रमाणित हमलावर एक फॉर्म तत्व में रेंडर गुणों को इंजेक्ट कर सकता था जो Drupal के AJAX हैंडलर द्वारा संसाधित किया जाता है। उदाहरण के लिए, गुण सबमिट करना:

  • #post_render — Drupal द्वारा रेंडरिंग के बाद लागू किए जाने वाले कॉलबल्स की एक सूची, और
  • #markup — उन्हें पास किया गया तर्क

उपयोगकर्ता-पंजीकरण फॉर्म के mail तत्व के विरुद्ध Drupal को रेंडर चरण के दौरान हमलावर-नियंत्रित इनपुट के साथ एक मनमाना PHP फ़ंक्शन (यहाँ exec) कॉल करने का कारण बनता है — अर्थात दूरस्थ कोड निष्पादन, बिना किसी प्रमाणीकरण के।

यह PoC उस प्रिमिटिव का उपयोग करके एक-पंक्ति के PHP शेल को स्थानीय रूप से बेस64-एनकोड करता है, सर्वर से इसे वेबरूट में एक फ़ाइल में डिकोड करवाता है, और फिर सामान्य GET अनुरोधों के माध्यम से उस फ़ाइल के साथ बातचीत करता है।

पता लगाना और सुधार

यदि आप इसके बचाव पक्ष पर हैं:

सुधार

  • Drupal 7.58 / 8.5.1 या बाद के संस्करण में अपग्रेड करें (SA-CORE-2018-002 लागू करें)। यही एकमात्र वास्तविक समाधान है।
  • यदि तत्काल पैचिंग असंभव है, तो Drupal सुरक्षा टीम ने खुलासे के समय एक शमन पैच प्रकाशित किया था — लेकिन अपग्रेड करना अत्यधिक प्राथमिकता है।

पता लगाने के विचार

  • फॉर्म/AJAX एंडपॉइंट पर POST बॉडी की जाँच करें रेंडर-एरे कुंजियों के लिए: #post_render, #markup, #type, #lazy_builder, आदि। वैध फॉर्म सबमिशन में ये नहीं होते।
  • …/user/register?element_parents=…&_wrapper_format=drupal_ajax पर संदिग्ध पैरामीटर ले जाने वाले अनुरोधों को ध्वजांकित करें।
  • एक AJAX फॉर्म एंडपॉइंट पर POST को वेबरूट में नव-निर्मित .php फ़ाइल पर बाद के GET के साथ सहसंबंधित करें।
  • Drupal वेबरूट में अप्रत्याशित फ़ाइल निर्माण और छोटी एकल-पैरामीटर PHP फ़ाइलों (system($_GET[...]) शेल) पर नज़र रखें।
  • इन व्यवहारों को सीधे Suricata/Snort हस्ताक्षर या वेब-सर्वर लॉग पर Sigma नियमों के रूप में एनकोड किया जा सकता है।

क्रेडिट

  • मूल PoC और मुख्य तकनीक: Vitalii Rudnykh — a2u/CVE-2018-7600
  • कमजोरी का खुलासा: Drupal सुरक्षा टीम — SA-CORE-2018-002
  • तकनीकी गहराई से जानकारी जिसने इस पुनर्लेखन को सूचित किया: Drupalgeddon2 पर Check Point और Ambionics शोध लेख
  • यह CLI पुनर्लेखन: मैं, AI सहायता के साथ (देखें लेखकत्व पर एक नोट)

कानूनी और जिम्मेदार उपयोग

यह उपकरण शिक्षा और अधिकृत सुरक्षा परीक्षण के लिए प्रकाशित किया गया है — आपके अपने लैब वातावरण, HTB/CTF लक्ष्य, या ऐसे सिस्टम जिनके आकलन के लिए आपके पास स्पष्ट लिखित अनुमति है। कंप्यूटर सिस्टम में अनधिकृत पहुँच यूके कंप्यूटर मिसयूज़ एक्ट 1990, यूएस कंप्यूटर फ्रॉड एंड अब्यूज़ एक्ट, और अन्यत्र समकक्ष कानूनों के तहत एक अपराध है। इसका उपयोग कैसे किया जाता है, इसके लिए आप पूरी तरह से जिम्मेदार हैं। लेखक दुरुपयोग या किसी भी हुई क्षति के लिए कोई दायित्व स्वीकार नहीं करता है।

लाइसेंस

MIT

टूल डाउनलोड करें
फ़्लैगविवरण
-u, --url(आवश्यक) लक्ष्य का आधार URL, जैसे http://target/
-c, --cmdलक्ष्य पर चलाने के लिए एकल कमांड
--shellइंटरैक्टिव स्यूडो-शेल में जाएँ
--deploy-onlyकेवल वेब शेल लगाएं, कुछ न चलाएं
--shell-nameलगाए गए शेल के लिए फ़ाइल नाम (डिफ़ॉल्ट: यादृच्छिक .php)
--paramशेल के लिए GET पैरामीटर का नाम (डिफ़ॉल्ट: यादृच्छिक md5)
--proxyप्रॉक्सी URL, जैसे http://127.0.0.1:8080
-k, --insecureTLS सत्यापन अक्षम करें (सेल्फ-साइन किए गए प्रॉक्सी प्रमाणपत्रों के लिए)
--timeoutप्रति-अनुरोध टाइमआउट सेकंड में (डिफ़ॉल्ट: 15)