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

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

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

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

工具目录

分类

查看所有分类
Loading categories
LTESniffer — 一个开源的LTE下行/上行链路窃听器 | Kitploit
工具/GitHubGitHub/syssec-kaist/ltesniffer
OSINT (开源情报)数据包嗅探与分析侦察信息收集网络安全无线安全论文与研究学习与教育
GitHubsyssec-kaist/ltesniffer

LTESniffer

一个开源的LTE下行/上行链路窃听器

查看仓库
2.2k2321年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

LTESniffer - 一款开源的LTE下行/上行链路窃听器

LTESniffer 是一款开源的LTE下行/上行链路窃听器。

它首先解码物理下行控制信道(PDCCH),以获取所有活跃用户的物理下行控制信息(DCI)和无线网络临时标识符(RNTI)。利用解码后的DCI和RNTI,LTESniffer进一步解码物理下行共享信道(PDSCH)和物理上行共享信道(PUSCH),以检索上行和下行数据流量。

LTESniffer支持一个包含三个函数的API,用于安全应用和研究。许多LTE安全研究假设存在一个能够捕获空中隐私相关数据包的被动嗅探器。然而,当前的开源嗅探器均无法满足其需求,因为它们无法解码PDSCH和PUSCH中的协议数据包。我们开发了一个概念验证的安全API,支持先前工作中提出的三个任务:1)身份映射,2)IMSI收集,以及3)能力分析。

详情请参阅我们的论文。

LTESniffer通俗解释

LTESniffer是一种能够捕获基站与其连接的智能手机之间LTE无线消息的工具。LTESniffer支持捕获两个方向的消息:从基站到智能手机,以及从智能手机回到基站。

LTESniffer 无法解密 基站与智能手机之间的加密消息。它可用于分析基站与智能手机之间通信的未加密部分。例如,对于加密消息,它可以允许用户分析未加密部分,如MAC层和物理层的头部。然而,那些以明文形式发送的消息可以完全分析。例如,由基站发送的广播消息,或连接开始时的消息是完全可见的。

伦理考量

LTESniffer的主要目的是支持蜂窝网络的安全和分析研究。由于会收集上下行用户数据,任何使用LTESniffer的行为都必须遵守当地关于嗅探LTE流量的法规。我们不承担任何用于有意收集用户隐私相关信息的非法目的的责任。

功能特性

新版本 v2.1.0

  • 支持将子帧的IQ原始数据记录到文件。详情请参考 LTESniffer-record-subframe 分支及其 README。
  • 支持使用记录文件进行离线解码(README)。
  • 在下行模式下启用API(仅适用于身份收集和映射API)。

新版本 v2.0.0

  • 支持使用两个USRP B系列进行上行嗅探模式。详情请参考 LTESniffer-multi-usrp 分支及其 README。
  • 修复了一些错误。

LTESniffer 基于 FALCON 实现,并借助 srsRAN 库。LTESniffer 支持:

  • 实时解码LTE上行-下行控制数据信道:PDCCH、PDSCH、PUSCH
  • LTE Advanced 和 LTE Advanced Pro,上下行均支持高达256QAM
  • DCI格式:0、1A、1、1B、1C、2、2A、2B
  • 传输模式:1、2、3、4
  • 仅FDD
  • 最大20 MHz基站
  • 自动检测智能手机的最大上下行调制方案(下行64QAM/256QAM,上行16QAM/64QAM/256QAM)
  • 自动检测每个UE的物理层配置
  • LTE安全API:RNTI-TMSI映射、IMSI收集、UECapability分析

硬件和软件要求

操作系统要求

目前,LTESniffer 在 Ubuntu 18.04/20.04/22.04 上稳定运行。

硬件要求

实现LTE流量的实时解码需要具备多个物理核心的高性能CPU,尤其是在基站有大量活跃用户的峰值时段。LTESniffer 在 Intel i7-9700K PC 上成功实现了实时解码,处理来自具有150个活跃用户的基站流量。

建议使用以下硬件

  • Intel i7 CPU,至少8个物理核心
  • 至少16GB RAM
  • 256GB SSD存储

SDR

LTESniffer 在其上行和下行嗅探模式中需要不同的SDR。

若仅嗅探来自基站的下行流量,LTESniffer 兼容大多数 srsRAN 库支持的SDR(例如 USRP 或 BladeRF)。 SDR 应通过 USB 3.0 端口连接到 PC。此外,它应配备两个RX天线以解码传输模式3和4的下行消息。 如果您的SDR只有一个RX天线,LTESniffer 将仅解码传输模式1的下行消息。注意,对于下行嗅探,GPSDO 是可选的;它有助于改善同步,但不是必需的。

另一方面,要嗅探从智能手机到基站的上行流量,LTESniffer 需要同时监听两个不同的频率(上行和下行)。为了解决这个问题,LTESniffer 支持两种选项:

  • 使用单个 USRP X310。USRP X310 有两个本地振荡器(LO)用于两个RX通道,可以将每个RX通道调谐到不同的上行/下行频率。与下行嗅探类似,此选项的 GPSDO 是可选的。要使用此选项,请参考 LTESniffer 的 main 分支。
  • 使用两个 USRP B系列。LTESniffer 分别使用两个 USRP B系列(B210/B200)进行上行和下行。它通过使用 GPSDO 作为时钟源和时间参考来实现两个USRP之间的同步。此选项必须使用 GPSDO。要使用此选项,请参考 LTESniffer 的 LTESniffer-multi-usrp 分支及其 README。

安装

重要提示:为避免意外错误,请在 Ubuntu 18.04/20.04/22.04 上执行以下步骤。

依赖项

  • 重要依赖项:必须预先安装 UHD 库版本 >= 4.0(建议从源码构建)。以下步骤可用于 Ubuntu 18.04。完整安装指南请参考 UHD 手册。

UHD 依赖项:

root@kitploit:~
sudo apt update
sudo apt-get install autoconf automake build-essential ccache cmake cpufrequtils doxygen ethtool \
g++ git inetutils-tools libboost-all-dev libncurses5 libncurses5-dev libusb-1.0-0 libusb-1.0-0-dev \
libusb-dev python3-dev python3-mako python3-numpy python3-requests python3-scipy python3-setuptools \
python3-ruamel.yaml

从源码克隆并构建UHD(确保当前分支版本高于4.0)

root@kitploit:~
git clone https://github.com/EttusResearch/uhd.git
cd <uhd-repo-path>/host
mkdir build
cd build
cmake ../
make -j 4
make test
sudo make install
sudo ldconfig

下载 USRP 的固件:

root@kitploit:~
sudo uhd_images_downloader

我们使用 10Gb 网卡 将 USRP X310 连接到 PC,请参考 UHD 手册 [1]、[2] 配置 USRP X310 和 10Gb 网卡接口。对于 USRP B210,应通过 USB 3.0 端口连接到 PC。

测试连接和固件(仅限 USRP X310):

root@kitploit:~
sudo sysctl -w net.core.rmem_max=33554432
sudo sysctl -w net.core.wmem_max=33554432
sudo ifconfig <10Gb网卡接口> mtu 9000
sudo uhd_usrp_probe
  • srsRAN 依赖项:
root@kitploit:~
sudo apt-get install build-essential git cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev
  • LTESniffer 依赖项:
root@kitploit:~
sudo apt-get install libglib2.0-dev libudev-dev libcurl4-gnutls-dev libboost-all-dev qtdeclarative5-dev libqt5charts5-dev

从源码构建 LTESniffer:

root@kitploit:~
git clone https://github.com/SysSec-KAIST/LTESniffer.git
cd LTESniffer
mkdir build
cd build
cmake ../
make -j 4 (使用4个线程)

用法

LTESniffer 有3个主要功能:

  • 嗅探来自基站的下行LTE流量
  • 嗅探来自智能手机的上行LTE流量
  • 安全API

从源码构建后,LTESniffer 位于 <构建目录>/src/LTESniffer

请注意,在商用网络上使用 LTESniffer 之前,必须检查当地关于嗅探LTE流量的法规,正如我们在伦理考量中解释的那样。

要确定测试智能手机连接到的基站和上行-下行频段,请在测试智能手机上安装 Cellular-Z 应用(该应用仅支持Android)。它将显示测试智能手机连接到的小区ID和上下行频段/频率。确保 LTESniffer 也连接到相同的小区和频率。

常规下行嗅探

LTESniffer 下行模式

root@kitploit:~
sudo ./<构建目录>/src/LTESniffer -A 2 -W <线程数> -f <下行频率> -C -m 0
示例: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0
-A: 天线数量
-W: 线程数
-f: 下行频率
-C: 开启小区搜索
-m: 嗅探模式,0为下行嗅探,1为上行嗅探

注意:要在下行模式下使用 USRP B210 运行 LTESniffer,请在命令行中添加选项 -a "num_recv_frames=512"。 此选项扩展了 USRP B210 的接收缓冲区,以实现更好的同步。

root@kitploit:~
sudo ./<构建目录>/src/LTESniffer -A 2 -W <线程数> -f <下行频率> -C -m 0 -a "num_recv_frames=512"
示例: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0 -a "num_recv_frames=512"

常规上行嗅探

注意:在上行嗅探模式下,测试智能手机应靠近嗅探器,因为来自UE的上行信号功率明显弱于来自基站的下行信号。

LTESniffer 上行模式

root@kitploit:~
sudo ./<构建目录>/src/LTESniffer -A 2 -W <线程数> -f <下行频率> -u <上行频率> -C -m 1
示例: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1
-u: 上行频率

安全API

LTESniffer API模式

root@kitploit:~
sudo ./<构建目录>/src/LTESniffer -A 2 -W <线程数> -f <下行频率> -u <上行频率> -C -m 1 -z 3
示例: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1 -z 3
-z: 3 开启嗅探器的3个功能:身份映射、IMSI收集和UECapability分析。
    2 仅UECapability分析
    1 仅IMSI收集
    0 仅身份映射

指定一个基站

LTESniffer 可以使用选项 -I <物理小区ID (PCI)> -p <物理资源块数量 (PRB)> 嗅探特定基站。在这种情况下,LTESniffer 不进行小区搜索,而是直接连接到指定小区。

root@kitploit:~
sudo ./<构建目录>/src/LTESniffer -A 2 -W <线程数> -f <下行频率> -I <PCI> -p <PRB> -m 0
sudo ./<构建目录>/src/LTESniffer -A 2 -W <线程数> -f <下行频率> -u <上行频率> -I <PCI> -p <PRB> -m 1
示例: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -I 379 -p 100 -m 1

可以通过选项 -d 启用调试模式。此时,调试信息将打印在终端上。

LTESniffer 的输出

LTESniffer 输出 pcap 文件。pcap 文件可以通过 WireShark 打开,以进行进一步分析和数据包跟踪。 下行 pcap 文件名:sniffer_dl_mode.pcap,上行 pcap 文件名:sniffer_ul_mode.pcap,API pcap 文件名:api_collector.pcap。 pcap 文件位于执行 LTESniffer 的同一目录下。 为了使 WireShark 正确分析解码的数据包,请参考此处的 WireShark 配置指南 here。链接中还提供了一些 pcap 文件的示例。
注意: 上行 pcap 文件同时包含上行和下行消息。在 WireShark 中,使用以下过滤器仅监控上行消息:mac-lte.direction == 0;或使用以下过滤器仅监控下行消息:mac-lte.direction == 1。

应用说明

上行嗅探的距离

由于硬件(即SDR)射频前端的性能限制,LTESniffer 嗅探上行的有效范围有限。来自UE的上行信号功率明显弱于下行信号,因为UE是手持设备,需要优化电池使用,而eNB使用足够的功率覆盖大范围。为了成功捕获上行流量,LTESniffer 可以通过以下方式提高信号功率强度:i) 物理上靠近UE,或 ii) 使用专用硬件提高信号接收能力,例如定向天线、专用射频前端和信号放大器。

终端上显示的信息

下行嗅探模式

Processed 1000/1000 subframes:过去1秒内LTESniffer处理的子帧数量。设计上LTE每秒有1000个子帧。
RNTI:UE的无线网络临时标识符。
Table:智能手机在下行中使用的最大调制方案。LTESniffer 在下行支持高达256QAM。详情请参阅我们的论文。
Active:检测到的RNTI消息数量。
Success:成功解码的消息数量占检测到的消息数量(Active)的比率。
New TX, ReTX, HARQ, Normal:新消息和重传消息的统计信息。此功能正在开发中。
W_MIMO, W_pinfor, Other:具有错误无线电配置的消息数量,仅用于调试。

上行嗅探模式

Max Mod:智能手机在上行中使用的最大调制方案。可以是16/64/256QAM,具体取决于智能手机的支持和网络配置。详情请参阅我们的论文。
SNR:信噪比(dB)。低SNR表示来自智能手机的上行信号质量差。一个可能的原因是智能手机距离嗅探器较远。
DL-UL_delay:来自基站的下行信号和来自智能手机的上行信号之间的平均时间延迟。
Other Info:仅用于调试的信息。

API模式

Detected Identity:检测到的身份名称。
Value:检测到的身份的值。
From Message:包含该检测到身份的消息名称。

致谢

我们衷心感谢 FALCON 和 SRS团队 提供其出色的软件。

贡献者

特别感谢所有帮助我们修复错误和改进LTESniffer的贡献者:

  1. cellular777
  2. Cemaxecuter
  3. Ksk190809

BibTex

详情请参阅我们的论文。

root@kitploit:~
@inproceedings{hoang:ltesniffer,
  title = {{LTESniffer: An Open-source LTE Downlink/Uplink Eavesdropper}},
  author = {Hoang, Dinh Tuan and Park, CheolJun and Son, Mincheol and Oh, Taekkyung and Bae, Sangwook and Ahn, Junho and Oh, BeomSeok and Kim, Yongdae},
  booktitle = {16th ACM Conference on Security and Privacy in Wireless and Mobile Networks (WiSec '23)},
  year = {2023}
}

Star历史

Star History Chart

常见问题

问: 运行LTESniffer是否必须使用GPSDO与USRP配合?
答: GPSDO 有助于更稳定的同步。然而,对于下行嗅探模式,LTESniffer 仍可在没有GPSDO的情况下与LTE信号同步并解码数据包。对于上行嗅探模式,仅当使用2个USRP B系列时才需要GPSDO,因为它作为上下行通道同步的时钟和时间参考源。另一种上行SDR选项,即使用单个USRP X310,不需要GPSDO。

问: 对于下行流量,我可以使用更便宜的SDR吗?
答: 从技术上讲,任何 srsRAN 库支持的SDR(例如 Blade RF)都可以用于运行LTESniffer的下行嗅探模式。然而,我们仅使用 USRP B210 和 X310 测试了LTESniffer的下行嗅探功能。

问: 使用LTESniffer嗅探LTE流量是否违法?
答: 您必须检查当地关于嗅探(未加密)LTE流量的法规。另一种测试LTESniffer的方法是在法拉第笼中通过使用 srsRAN(一款开源的LTE实现)搭建个人LTE网络。

问: LTESniffer 能否用于查看两个用户之间消息的内容?
答: 只能看到消息的“未加密”部分。请注意,基站和用户之间的空中流量大部分是加密的。

问: LTE网络中是否有任何设备身份以明文形式暴露?
答: 是的,文献表明有多个身份暴露,例如TMSI、GUTI、IMSI和RNTI。详情请参考学术文献,例如 Watching the Watchers: Practical Video Identification Attack in LTE Networks。

下载工具