
通過UDP模擬GTP
在看APT報告中發現了一個用UDP去模擬成GTP的技術,稍微看了一下原理做了整理。
Unit42 報告中追蹤的 CL‑STA‑0969常利用模擬 GTP(GPRS Tunneling Protocol)隧道來建立隱蔽通道或蒐集定位資訊。
很多人直覺以為「GTP 是另一個完全獨立的協定」,事實上——GTP 本質上是封裝在 IP/UDP 之上的一層協定。
1. 簡短結論(先看重點)
- 模擬 GTP 隧道:在網路層面仍透過 IP(多半使用 UDP)送出;GTP 是「封裝」/「隧道化」的一層,用以承載行動網路控制面或使用者面資料。
- TCP/IP vs GTP:TCP/IP 是通用的傳輸與路由協定族(IP、TCP/UDP),而 GTP 是行動核心(3G/4G/5G)專用的隧道封裝協定,運作於 UDP(典型埠:2123/2152)。
- 這次 APT 常見工具:混合了公開開源工具(如
sgsnemu
、microsocks
、Responder
、frp
)與攻擊者自製工具(如GTPDoor
、ChronosRAT
、AuthDoor
、Cordscan
等)。
2. 模擬 GTP 隧道的技術本質(分層解釋)
實際封包堆疊範例(從下到上):
1 |
|
- GTP‑U(User plane,通常 UDP/2152)承載使用者面資料(可能再包一個 IP 封包在內)。
- GTP‑C(Control plane,通常 UDP/2123)承載控制訊令(建立/修改/刪除 PDP context)。
- 所有 GTP 封包本質上是 IP 封包;如果網路設備允許 UDP/2152 或 UDP/2123 的外部存取,就有被利用風險。
3. TCP/IP 與 GTP 的差別
面向 | TCP/IP(通用) | GTP(行動網路隧道) |
---|---|---|
層級 | IP(網路層) + TCP/UDP(傳輸層) | 隧道/封裝層,跑在 UDP(底層為 IP) |
典型埠 | 多樣(80,443,22…) | GTP‑C: UDP/2123;GTP‑U: UDP/2152 |
功能 | 一般端對端資料傳輸與路由 | 在行動核心內建立用戶會話(PDP/PDN context)與封裝使用者資料 |
可靠性 | TCP 提供可靠、流控;UDP 不保證可靠 | GTP‑U 通常用 UDP(不可靠)但為隧道化 service;GTP‑C 仍以控制訊息為主 |
認證/安全 | 可搭配 TLS/IPsec 等 | 原生未建立加密/驗證(多仰賴電信網路邊界的信任) |
簡單來說:
TCP/IP 是「道路與車輛系統」,GTP 是放在貨車裡的「貨箱技術」,貨箱裡可以再放一個小車(內層 IP 封包)。
額外整理 CL‑STA‑0969 / Unit42 報告中提及的工具
開源 / 可取得
- sgsnemu / open5gs / openGGSN(相關專案)
用途:模擬 SGSN / GGSN 行為,建立 GTP 隧道以模擬漫遊或 PDP context(可用於測試 GTP 流量)。 - microsocks —(GitHub: rofl0r/microsocks)
用途:輕量 SOCKS5 代理,用於內網轉發或跳板。 - Responder —抓取 LLMNR/NBT-NS/SMB NTLM)
用途:網域內中間人與 NTLM 採集。 - FScan —(各類作者實作,常見於中國白帽工具庫)
用途:網段掃描、服務指紋。 - frp (Fast Reverse Proxy) —(fatedier/frp)
用途:內網穿透 / 反向代理。 - sshpass, proxychains 等小工具
攻擊者自製 / 未公布或高度改造(通常非開源)
- GTPDoor —(GTP 作為 C2 隧道的後門)
用途:把 C2 指令隱藏於 GTP 封包內(監聽 UDP/2123 等),低偵測率下維持控制。 - ChronosRAT — (ELF 後門,含 AES/RSA)
功能:後門、遠端指令執行、檔案操作、螢幕截圖、鍵盤記錄等。 - AuthDoor —(PAM/驗證鉤子後門)
功能:掛鉤 PAM,攔截/儲存憑證(hex 編碼),即使密碼改變也可維持存取。 - Cordscan —(針對 SGSN/IMSI 的定位掃描工具)
功能:根據 IMSI/HNI 掃描目標的行動定位資訊。 - NoDepDNS / EchoBackdoor — 多數為客製化 DNS / ICMP 隧道實作(部分行為與開源 dnscat2、iodine 類似,但為自製版本)
5. 實務偵測
5.1 Wireshark 過濾(觀察 GTP)
GTP‑U(user plane)過濾:
1
udp.port == 2152
GTP‑C(control plane)過濾:
1
udp.port == 2123
如果想過濾內層封包(tunneled IP),可先抓到 GTP‑U 封包,右鍵選擇「Decode as…」或展開 GTP payload。
6. 結論
- 模擬 GTP 隧道仍舊走在 IP(多半 UDP)之上;攻擊者利用 GTP 的信任假設與電信網界限來隱蔽 C2、蒐集定位或側錄資料。
🗒 延伸閱讀
留言區從原本需要登入github才能留言的方式改成使用 Twikoo
不須登入即可留言
如果你要匿名的話姓名、郵箱、網址可以隨便打沒關係
留QQ郵箱的話可以自動偵測郵箱頭像
有想多交流的話可以留網址我看到會過去逛逛