iT邦幫忙

2023 iThome 鐵人賽

DAY 14
0

DAY13 我們讓SMF認為我們的運行PFCP程式的主機為UPF,而接下來我們要來抓取UE在通訊時的GTPU封包。
而這方面我們也很幸運SCAPY依樣有函示庫可以解析GTPU的封包 Scapy GTP document
這邊簡單寫一個程式去抓取封包

from scapy.contrib.gtp import *
import socket

LOCAL_DATA_HANDLER = lambda x:x
REMOTE_DATA_HANDLER = lambda x:x
BUFFER_SIZE = 2 ** 15


proxy_socket2 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
proxy_socket2.bind(("10.20.1.22", 2152))
while True:
    data, address = proxy_socket2.recvfrom(BUFFER_SIZE)
    print(GTP_U_Header(data))


show出來看的話則可以看到完整內容

而因為我們的程式沒有UPF的功能,因此我們這邊將封包轉送給真正的UPF

    proxy_socket2.sendto(data,("10.244.0.90", 2152))

執行後再重新讓UE進行連線,並去PING 8.8.8.8

可以看到UE可正常進行通訊了,也代表我們的程式有正常的運作,並可去抓取並查看UE目前通訊的封包,這點就可以利用來作為防火牆,或是存進資料庫進行分析並顯示流量,而DAY15 我們總結一下再透過GTP PROXY的程式下,會有什麼風險或可以做到什麼。


上一篇
DAY13 透過python scapy 抓取UE建立連線時的PFCP封包
下一篇
DAY15 GTP proxy功能研究
系列文
一個人的5G網路與資安小圈圈30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言