Atom
通過UDP模擬GTP

通過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 常見工具:混合了公開開源工具(如 sgsnemumicrosocksResponderfrp)與攻擊者自製工具(如 GTPDoorChronosRATAuthDoorCordscan 等)。

2. 模擬 GTP 隧道的技術本質(分層解釋)

實際封包堆疊範例(從下到上):

1
2
3
4
5
6
7
8
9
┌────────────┐
│ IP │ ← 真正的網際網路傳輸(來源IP/目的IP)
├────────────┤
│ UDP │ ← GTP-C 用 UDP/2123;GTP-U 用 UDP/2152
├────────────┤
│ GTP │ ← 攜帶行動網路的控制或資料內容
├────────────┤
│ 原始資料包 │ ← 例如內層再包一個 IP 封包(tun/tap)
└────────────┘
  • 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郵箱的話可以自動偵測郵箱頭像
有想多交流的話可以留網址我看到會過去逛逛


本文作者:Atom
本文鏈接:https://d0ngd.github.io/2025/09/28/通過UDP模擬GTP/
版權聲明:本文採用 CC BY-NC-SA 3.0 CN 協議進行許可