
Drupalgeddon3 RCE शोषण प्रयोगशाला Docker-आधारित कमजोर वातावरण और Metasploit एकीकरण के साथ व्यावहारिक CVE-2018-7602 शोषण प्रशिक्षण के लिए।
Drupal 7.x और 8.x के कई उपतंत्रों में एक रिमोट कोड निष्पादन भेद्यता मौजूद है। यह संभावित रूप से हमलावरों को Drupal साइट पर कई हमला वैक्टरों का शोषण करने की अनुमति देता है, जिसके परिणामस्वरूप साइट से समझौता हो सकता है। यह भेद्यता Drupal कोर - Highly critical - Remote Code Execution - SA-CORE-2018-002 से संबंधित है। SA-CORE-2018-002 और यह भेद्यता दोनों का जंगली में शोषण किया जा रहा है। --- MITRE
Docker for Mac (https://docs.docker.com/docker-for-mac/networking/#use-cases-and-workarounds) और Windows में कुछ नेटवर्किंग सीमाओं के कारण, नीचे दिए गए कोड को LINUX मशीन पर docker और docker-compose स्थापित करके निष्पादित किया जाना चाहिए।
यहाँ हमारे पास दो-चरणीय प्रक्रिया है, पहले भेद्य संस्करण 7.57 वाली Drupal मशीन और दूसरी हमलावर मशीन जिसमें एक संशोधित शोषण है जो हमें भेद्यता के संभावित खतरे को दिखाने की अनुमति देता है।
# Supposing that you are placed inside the directory CVE-2018-7602
cd vulnerable_machine
docker-compose up -d
cd ..
चेतावनी कमांड चलाने से पहले सुनिश्चित करें कि पोर्ट 80 किसी अन्य सॉफ्टवेयर द्वारा उपयोग नहीं किया जा रहा है।
हमलावर मशीन: यहां हम एक Metasploit डॉकर इमेज इंस्टैंशिएट करेंगे जिसमें एक अनुकूलित शोषण (drupal_drupalgeddon3_commander) है जिसका आगे उपयोग किया जाएगा। ऐसा करने के लिए हम निष्पादित करते हैं:
cd attacking_machine
docker-compose run --rm --service-ports -e MSF_UID=$(id -u) -e MSF_GID=$(id -g) ms
यदि आपको नीचे दिए गए कमांड को निष्पादित करने में कोई समस्या है, तो [email protected] को निष्पादन लॉग संलग्न करके एक ईमेल भेजें और वह समस्या को हल करने में आपकी मदद करने में प्रसन्न होगा।
अब जब हमने Drupal चला लिया है, हमें Drupal का उपयोग करके कॉन्फ़िगर और कुछ सामग्री बनानी होगी। ऐसा करने के लिए निम्नलिखित चरणों का पालन करें:


# Overview
We will try to use the vulnerability to execute commands like ls or whoami
to show that it is possible to execute commands remotely.
अब जब हमारे पास localhost पर भेद्य Drupal इंस्टेंस चल रहा है। अगला कदम वातावरण सेटअप चरण में बनाए गए metasploit इंस्टेंस का उपयोग शुरू करना है।
Metasploit पर, हमें कमांड का उपयोग करके शोषण डेटाबेस को पुनः लोड करना होगा:
reload_all
इससे हमारे पास आवश्यक शोषण तक पहुंच हो जाती है। तो शोषण के लिए आवश्यक जानकारी तैयार करने के लिए हमें साइट पर लॉग इन किसी उपयोगकर्ता के सत्र कुकीज़ की आवश्यकता होगी।
इसे आसान तरीके से प्राप्त करने के लिए। मान लें कि आप अभी भी लॉग इन हैं। डेवलपर टूल पर जाएं, कुकीज़ स्टोरेज देखें और बाद में उपयोग के लिए इसे सहेजें। आपको अंत में कुछ इस प्रकार प्राप्त होना चाहिए:
#<session_name>=<session_token>
SESS49960de5880e8c687434170f6476605b=DGHZKHWaNC51nrVQHEsTD0_PS68EeNyvGjdzk1SVmss
कुकी प्राप्त करने के लिए google chrome का उपयोग करने का एक उदाहरण

अब हम metasploit के साथ शोषण लोड करना शुरू करते हैं। ऐसा करने के लिए निम्नलिखित कमांड निष्पादित करें:
use exploits/unix/webapp/drupal_drupalgeddon3_commander
show options
जैसा कि आप देख सकते हैं हमें कुछ पैरामीटर्स की आवश्यकता है। हम पैरामीटर्स इस प्रकार सेट करते हैं:
set RHOSTS localhost
set DRUPAL_SESSION <session_name>=<session_token>
ऐसा करने के बाद हम निष्पादित कर सकते हैं
exploit
हमें वह उपयोगकर्ता मिलेगा जो वर्तमान में वेब सर्वर चला रहा है। इस मामले में www-data। क्योंकि डिफ़ॉल्ट कमांड सेटअप whoami है। साथ ही आप JSON प्रारूप में कुछ अतिरिक्त जानकारी देखेंगे जो हमारे लिए प्रासंगिक नहीं है।
अंतिम शोषण परिणाम इस प्रकार दिखता है:

प्रयोग का अंत: यदि आप सभी प्रयोग सफलतापूर्वक निष्पादित करने में सफल रहे तो यह अंत है बधाई हो।
यदि आप प्रयोग जारी रखना चाहते हैं तो आप set निर्देश का उपयोग करके कमांड मान बदल सकते हैं। या metasploit द्वारा उपयोग की जाने वाली रूबी स्क्रिप्ट को संशोधित कर सकते हैं।