LTESniffer:一款功能强大的LTE上下行链路安全监控工具

关于LTESniffer

LTESniffer是一款功能强大的LTE上下行链路安全监控工具,该工具是一款针对LTE的安全开源工具。

该工具首先可以解码物理下行控制信道(PDCCH)并获取所有活动用户的下行链路控制信息(DCI)和无线网络临时标识符(RNTI)。获取到解码后的DCI和RNTI信息之后,LTESniffer将进一步解码物理下行链路共享信道(PDSCH)和物理上行链路共享信道(PUSCH),以检索上行链路和下行链路数据业务。

LTESniffer还提供了API接口,该API提供了三种用于安全应用程序和安全研究的相关功能。很多LTE安全研究都会涉及到通过被动嗅探工具来捕捉与安全隐私相关的无线数据包,但目前所有的开源工具都无法百分之百满足这一需求,主要原因就是它们无法解码PDSCH和PUSCH中的协议包。为此,LTESniffer便应运而生。

功能介绍

当前版本的LTESniffer基于FALCON项目实现其功能,并使用到了srsRAN代码库的部分功能,可以给广大研究人员提供下列安全功能:

1、实时解码LTE上下行控制数据信道:PDCCH、PDSCH、PUSCH;

2、LTE Advanced和LTE Advanced Pro,上行链路和下行链路最高可达256QAM;

3、支持的DCI格式:0、1A、1、1B、1C、2、2A、2B;

4、支持的传输模式:1、2、3、4;

5、FDD(频分双工);

6、基站最大20MHz;

7、自动检测智能手机的最大UL/DL调制方案(DL上64QAM/256QAM,UL上16QAM/64QAM/256 QAM);

8、自动检测每个UE的物理层配置;

9、LTE Security API:RNTI-TMSI映射、IMSI收集、UE功能分析;

硬件和软件要求

操作系统要求

当前版本的LTESniffer可以在Ubuntu 18.04/20.04/22.04上稳定运行。

硬件要求

推荐硬件配置如下:

Intel i7 CPU(至少8个物理核心);

至少16GB RAM

256GB SSD存储

SDR

srsRAN库支持的SDR,例如USRP或BladeRF;

SDR支持通过USB 3.0端口与PC连接;

配备GPSDO和两个RX天线;

USRP B-Series(B210/B200);

工具安装

首先,我们需要确保Ubuntu操作系统上的UHD库版本>= 4.0。

UHD依赖安装部署:

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:

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下载固件:

sudo uhd_images_downloader

我们这里选择使用USRP X310,并将其连接至PC,测试连接和固件:

sudo sysctl -w net.core.rmem_max=33554432

sudo sysctl -w net.core.wmem_max=33554432

sudo ifconfig <10Gb card interface> mtu 9000

sudo uhd_usrp_probe

srsRAN依赖安装部署:

sudo apt-get install build-essential git cmake libfftw3-dev libmbedtls-dev libboost-program-options-dev libconfig++-dev libsctp-dev

LTESniffer依赖安装部署:

sudo apt-get install libglib2.0-dev libudev-dev libcurl4-gnutls-dev libboost-all-dev qtdeclarative5-dev libqt5charts5-dev

源码构建LTESniffer:

git clone https://github.com/SysSec-KAIST/LTESniffer.git

cd LTESniffer

mkdir build

cd build

cmake ../

make -j 4 (use 4 threads)

工具使用

通用下行链路嗅探

 
sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -C -m 0

example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0

-A: number of antennas

-W: number of threads

-f: downlink frequency

-C: turn on cell search

-m: sniffer mode, 0 for downlink sniffing and 1 for uplink sniffing

如需使用USPR B210并以下行链路模式运行LTESniffer,需要在命令行添加-a "num_recv_frames=512"选项:

sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -C -m 0 -a "num_recv_frames=512"

example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0 -a "num_recv_frames=512"

通用上行链路嗅探

 
​​​​​​​sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -u <UL Freq> -C -m 1

example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1

-u: uplink frequency

Security API使用

 
​​​​​​​sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -u <UL Freq> -C -m 1 -z 3

example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1 -z 3

-z: 3 for turnning on 3 functions of sniffer, which are identity mapping, IMSI collecting, and UECapability profiling.

    2 for UECapability profiling

    1 for IMSI collecting

    0 for identity mapping

指定基站

LTESniffer支持使用命令行参数“-I <Phycial Cell ID (PCI)> -p <number of Physical Resource Block (PRB)>”指定一个要嗅探的基站:

sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -I <PCI> -p <PRB> -m 0

sudo ./<build-dir>/src/LTESniffer -A 2 -W <number of threads> -f <DL Freq> -u <UL Freq> -I <PCI> -p <PRB> -m 1

example: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -I 379 -p 100 -m 1

项目地址

LTESniffer:【GitHub传送门】

参考资料

https://syssec.kaist.ac.kr/pub/2023/wisec2023_tuan.pdf

GitHub - falkenber9/falcon: FALCON - Fast Analysis of LTE Control channels

GitHub - srsran/srsRAN_4G: Open source SDR 4G software suite from Software Radio Systems (SRS) https://docs.srsran.com/projects/4g

10 Gigabit Ethernet Card for Desktop | Ettus Research, a National Instruments Brand | The leader in Software Defined Radio (SDR)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319273.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

为了这口醋,包的这饺子。为了Selenium,学有限的CSS,逐步替换XPATH

Learn about CSS rules and pseudo-classes to help you move your XPATH locators to CSS. 1. 最基本IdElement TypeDirect ChildChild or Sub-ChildClass 2. 深入一点Next SiblingAttribute ValuesChoosing a Specific Match Sub-String Matches 3 参考资料 In order for Sel…

Java零基础教学文档第五篇:jQuery

今日新篇章 【jQuery】 【主要内容】 jQuery简介 jQuery安装 jQuery语法 jQuery选择器 jQuery事件处理 jQueryDOM操作 jQuery元素遍历 jQuery过滤 jQuery其它方法 【学习目标】 1.jQuery简介 1.1 jQuery简介 jQuery 库可以通过一行简单的标记被添加到网页中。 1.…

java自动化将用例和截图一起执行测试放入world中直接生成测试报告【搬代码】

1.首先我们得用例写好之后放入文档中&#xff0c;把不用的案例类型、前置条件去掉之后&#xff0c;如图&#xff1a; 放到桌面后&#xff0c;先看执行结果&#xff1a; 直接上代码 package com.znzdh.qitagongju;import jxl.Sheet; import jxl.Workbook; import org.apache…

了解集群,以及集群是什么?

每个集群即一个独立运行的文档数据库&#xff0c;分片集群架构由路由&#xff08;mongos&#xff09;、配置&#xff08;config&#xff09;和分片&#xff08;shard&#xff09;组成。 数据读写请求经mongos分发&#xff0c;通过查询config信息&#xff0c;并行分配到相应sha…

C语言之字符串和指针

目录 用数组实现的字符串和用指针实现的字符串 █用数组实现的字符串str █用指针实现的字符串ptr 注意 用数组和指针实现字符串的不同点 字符串数组 用数组实现的字符串的数组——二维数组 用指针实现的字符串数组——指针数组 注意 字符串和指针有着紧密的联系&#…

力扣(105. 从前序与中序遍历序列构造二叉树,106. 从中序与后序遍历序列构造二叉树)

题目1链接 题目1&#xff1a; 思路&#xff1a;使用前序确定根&#xff0c;使用中序分左右子树&#xff0c;分治法。 难点&#xff1a;如何控制递归确定左右子树。 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* T…

【STM32】FLASH闪存

1 FLASH闪存简介 本节所指STM32内部闪存&#xff0c;即下载程序的时候&#xff0c;程序存储的地方。&#xff08;非易失性&#xff09; STM32F1系列的FLASH包含程序存储器、系统存储器&#xff08;bootloader&#xff0c;不允许修改&#xff09;和选项字节三个部分&#xff0…

华西建筑智能化寻找志同道合的创业团队

我今天四十多了&#xff0c;之前也创过业&#xff0c;做软件开发系统集成的。 19年进入华西建筑装饰工程有限公司负责机电安装及弱电智能化版块。后公司成立建筑智能化事业部&#xff0c;我负责。现在想全身心打造施工企业项目管理平台&#xff0c;同时进军智慧康养领域。我想…

1.5矩阵元素的引用

通过下标来引用矩阵的元素 A(3, 2)表示A矩阵第3行第2列的元素。 >> arr [1,2,3;4,5,6]; >> arr(4, 5) 10arr 1 2 3 0 04 5 6 0 00 0 0 0 00 0 0 0 10>> 如果引用元素超过矩阵的大小将自…

Windows下面基于pgsql15的备份和恢复

一、基础备份 1.创建一个文件用来存储备份数据 2.备份指令 $CurrentDate Get-Date -Format "yyyy-MM-dd" $OutputDirectory "D:\PgsqData\pg_base\$CurrentDate" $Command "./pg_basebackup -h 127.0.0.1 -U postgres -Ft -Pv -Xf -z -Z5 -D $O…

Navicat 16 for MySQL:打造高效数据库开发管理工具

随着数据的快速增长和复杂性的提升&#xff0c;数据库成为了现代应用开发中不可或缺的一部分。而在MySQL数据库领域&#xff0c;Navicat 16 for MySQL作为一款强大的数据库开发管理工具&#xff0c;正受到越来越多开发者的青睐。 Navicat 16 for MySQL拥有丰富的功能和直观的界…

功能权限篇

文章目录 1. 如何设计一套权限系统1.1 目标1.2 权限模型1.2.1 模型一RBAC1.2.2 模型二ABAC 2.如何实现菜单的创建&#xff1f;2.1 表结构2.2 前端实现2.3 后端实现 3. 如何实现角色的创建&#xff1f;4.如何给用户分配权限 —— 将菜单赋予角色&#xff1f;5.如何给用户分配权限…

sqlilabs第五十三五十四关

Less-51(GET - GET - Error based - ORDER BY CLAUSE-String- Stacked injection) 手工注入 单引号闭合&#xff0c;和上一关一样堆叠注入解决 自动注入 和上一关一样 Less-52(GET - challenge - Union- 10 queries allowed -Variation 1) 手工注入 这一关开始后面的可以看…

设计模式之备忘录模式【行为型模式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某…

QT上位机开发(函数运行时间分析)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 软件除了功能开发、debug之外&#xff0c;另外一个很重要的部分就是软件的优化和提高。这里面的优化&#xff0c;当然就是希望软件能够处理更多的数…

[Beego]1.Beego简介以及beego环境搭建,bee脚手架的使用,创建,运行项目

一.Beego介绍 Beego是一个开源的基于Golang的MVC框架&#xff0c;主要用于Golang Web开发,Beego可以用来快速开发API、Web、后端服务等各种应用。 Golang 的Web开发框架有很多,从 github star 数量来看Gin>Beego>lris>Echo>Revel>Buffalo 目前国内用的比较多的就…

在ubuntu平台上安装minecraft

一、获取minecraft启动器安装包 登陆minecraft官网Welcome to the Minecraft Official Site | Minecraft&#xff0c;使用已经购买minecraft的microsoft或者mojang账号登陆。 点击Download Launcher 对于ubuntu系统&#xff0c;使用点击debian版本 此后便会自动下载Minecraft.…

基于pyradiomics影像组学特征提取

基于pyradiomics影像组学特征提取 特征提取&#xff1a;1 pyradiomics的使用&#xff1a;1.1&#xff0c;在python环境下安装pyradiomics:1.2,设置特征提取器&#xff0c;获得想要特征&#xff1a;1.2.1 图像类型1.2.2 目标特征设置1.2.3 特征提取器设置 2 代码示例;参考&#…

关于提高IDEA运行速度的说明

1.作者IDEA软件版本和计算机内存 Ultimate 2022.1.2版 2.修改配置提高IDEA运行速度的误区 很多文章会教调内存&#xff0c;但大多是让你调高堆内存&#xff0c;-Xms -Xmx 是最小堆内存和最大堆内存。堆内存越高&#xff0c;说明堆区可放入新对象的数量越多&#xff0c;由于…

关闭免费版pycharm社区版双击shift时出现的搜索框

Pycharm 在双击 shift 的时候总是弹出搜索框&#xff0c;但作为中国玩家&#xff0c;经常需要双击 shift 循环切换中英文。这就很困恼。 下面就解决这个问题。单独关闭双击shift的功能。 步骤 1.左上角 File -> Settings 2. 如图&#xff0c;输入‘advan’ 找到高级设置&…