本文作者:icy

C/C++-揭秘5G空口安全:Sni5Gect 5GNR 嗅探与漏洞利用工具深度解析

icy 今天 11 抢沙发
C/C++-揭秘5G空口安全:Sni5Gect 5GNR 嗅探与漏洞利用工具深度解析摘要: 揭秘5G空口安全:Sni5Gect 5GNR 嗅探与漏洞利用工具深度解析 项目概述 Sni5Gect 是一个专注于 5G 新空口(5G NR, New Radio)协议分析、流量嗅...

C/C++-揭秘5G空口安全:Sni5Gect 5GNR 嗅探与漏洞利用工具深度解析

揭秘5G空口安全:Sni5Gect 5GNR 嗅探与漏洞利用工具深度解析

项目概述

Sni5Gect 是一个专注于 5G 新空口(5G NR, New Radio)协议分析、流量嗅探以及潜在漏洞利用的 C/C++ 开源项目。在当前的移动通信安全研究中,能够直接在物理层或 MAC/RLC 层捕获并分析 5G 信号是极其困难的,因为这通常需要昂贵的商业设备(如 Keysight 或 Rohde & Schwarz)。

Sni5Gect 的核心目标是降低 5G 空口安全研究的门槛,通过结合软件定义无线电(SDR)硬件(如 USRP 或 BladeRF)与自定义的协议栈解析逻辑,实现对 5G 信号的实时截获、解码以及针对特定协议缺陷的攻击模拟。

核心功能模块

1. 信号嗅探 (Sniffing)

项目实现了对 5G NR 下行链路(DL)和上行链路(UL)的同步与捕获。 * PSS/SSS 搜索:通过主同步信号(PSS)和次同步信号(SSS)快速锁定小区 ID 和物理层参数。 * PBCH 解码:解析物理广播信道(PBCH),获取 MIB(主信息块),从而确定系统带宽、子载波间隔(SCS)等关键参数。 * SIB 提取:进一步解码系统信息块(SIB1, SIB2 等),获取小区配置、接入控制信息及邻区列表。

2. 协议分析 (Protocol Analysis)

Sni5Gect 不仅仅是捕获原始 IQ 数据,它还包含了一个轻量级的 5G 协议栈解析器: * MAC 层解析:分析 MAC PDU,识别调度请求、随机接入过程(RACH)等。 * RLC/PDCP 层分析:尝试对更高层的数据包进行重组和解密(在已知密钥或弱加密情况下)。 * NAS 层分析:分析非接入层信令,包括注册请求(Registration Request)和身份验证过程。

3. 漏洞利用 (Exploitation)

这是该项目的核心竞争力所在,它提供了一系列针对 5G 协议实现缺陷的 PoC(概念验证): * 拒绝服务攻击 (DoS):通过发送伪造的 RRC 连接释放(RRC Connection Release)消息,强制目标 UE(用户设备)断开连接。 * 身份泄露 (Identity Leakage):利用协议在某些阶段未加密传输 IMSI/SUPI 的漏洞,通过伪基站诱导 UE 泄露永久标识。 * 中间人攻击 (MITM):通过操纵 SIB 信息,诱导 UE 接入伪造的基站,从而拦截或篡改流量。

技术架构

项目采用 C/C++ 编写,旨在保证处理高采样率信号时的实时性。其整体架构可分为三层:

  1. 硬件抽象层 (HAL):利用 UHD (USRP Hardware Driver) 或 SoapySDR 接口与 SDR 硬件通信,负责 IQ 数据的采集与发送。
  2. 信号处理层 (DSP):使用 FFT、滤波和同步算法,将时域信号转换为频域,并提取物理层符号。
  3. 协议逻辑层 (Logic):将提取的比特流根据 3GPP TS 38 系列标准进行解析,并执行特定的攻击逻辑。

实例演示:如何利用 Sni5Gect 进行基础嗅探

虽然该项目需要特定的硬件支持,但其逻辑流程如下:

场景:捕获目标小区的 SIB1 信息

步骤 1:环境配置 确保安装了 uhd 驱动并连接了 USRP 设备。

text
# 检查硬件连接
uhd_find_devices

步骤 2:启动嗅探模式 运行项目编译后的二进制文件,指定目标频点(ARFCN)。

text
./sni5gect --mode sniff --freq 3500MHz --bandwidth 20MHz --cell-id 123

步骤 3:分析输出 程序将开始扫描 PSS/SSS。一旦同步成功,控制台将输出如下信息:

text
[+] PSS/SSS Sync Successful!
[+] Cell ID: 123, PCI: 456
[+] Decoding MIB... Done.
[+] Decoding SIB1... 
    - PLMN: 460-00
    - Tracking Area Code: 00101
    - Cell Selection Info: [Detailed Params]

场景:模拟 RRC 连接释放攻击(PoC)

警告:此操作仅限在受控的实验室环境下进行,严禁在公共网络尝试。

步骤 1:锁定目标 UE 通过嗅探 RACH 过程,获取目标 UE 的临时标识(C-RNTI)。

text
./sni5gect --mode sniff --capture-rnti
# 假设捕获到 C-RNTI: 0x1A2B

步骤 2:构造并发送伪造消息 使用攻击模块发送一个伪造的 RRCConnectionRelease 消息。

text
./sni5gect --mode exploit --attack rrc-release --rnti 0x1A2B --freq 3500MHz

结果:目标 UE 接收到该消息后,会认为基站要求其断开连接,从而导致设备掉线。

关键依赖与编译

若要运行此项目,通常需要以下环境: * 编译器:GCC 9+ 或 Clang * 库: * UHD (Universal Software Radio Peripheral) * Volk (Vector Optimized Library of Kernels) * Boost (用于异步处理和数据结构) * CMake (构建系统)

编译流程:

text
mkdir build && cd build
cmake ..
make -j$(nproc)

安全研究建议

使用 Sni5Gect 进行研究时,建议遵循以下路径:

  1. 学习 3GPP 标准:重点阅读 TS 38.331 (RRC 协议) 和 TS 38.300 (整体架构)。
  2. 搭建隔离环境:使用法拉第笼(Faraday Cage)防止信号外泄,避免干扰公共通信网络。
  3. 分析流量模式:先尝试使用 Wireshark 配合项目导出的 pcap 文件分析 5G 信令流。

总结

Sni5Gect 是一个极具价值的 5G 安全研究工具。它将复杂的 3GPP 协议实现转化为可执行的代码,使得研究人员能够直观地观察 5G 空口的交互过程。通过该项目,我们可以深刻意识到即便在 5G 时代,物理层和信令层的安全漏洞依然存在,这为未来的网络增强和防御提供了重要的参考。

Sni5Gect-5GNR-sniffing-and-exploitation_20260811045119.zip
类型:压缩文件|已下载:0|下载方式:免费下载
立即下载
文章版权及转载声明

作者:icy本文地址:https://zelig.cn/cpp/1422.html发布于 今天
文章转载或复制请以超链接形式并注明出处软角落-SoftNook

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,11人围观)参与讨论

还没有评论,来说两句吧...