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 — это открытый инструмент для перехвата нисходящего (Downlink) и восходящего (Uplink) каналов 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 МГц.
  • Автоматическое определение максимальных схем модуляции UL/DL смартфонов (64QAM/256QAM на DL и 16QAM/64QAM/256QAM на UL).
  • Автоматическое определение конфигурации физического уровня для каждого UE.
  • API безопасности LTE: сопоставление RNTI-TMSI, сбор IMSI, профилирование UECapability.

Требования к оборудованию и программному обеспечению

Требования к ОС

В настоящее время LTESniffer стабильно работает на Ubuntu 18.04/20.04/22.04.

Требования к оборудованию

Для достижения декодирования трафика LTE в реальном времени требуется высокопроизводительный CPU с несколькими физическими ядрами, особенно в часы пик, когда на базовой станции много активных пользователей. LTESniffer успешно достиг декодирования в реальном времени при развертывании на ПК с Intel i7-9700K, декодируя трафик с базовой станции с 150 активными пользователями.

Рекомендуется следующее оборудование:

  • Intel i7 CPU с не менее 8 физическими ядрами.
  • Не менее 16 ГБ RAM.
  • 256 ГБ SSD-накопитель.

SDR

LTESniffer требует разные SDR для режимов перехвата восходящего и нисходящего каналов.

Для перехвата только нисходящего трафика от базовой станции LTESniffer совместим с большинством SDR, поддерживаемых библиотекой srsRAN (например, USRP или BladeRF). SDR должен подключаться к ПК через порт USB 3.0. Кроме того, он должен быть оснащен двумя приемными антеннами для декодирования нисходящих сообщений в режимах передачи 3 и 4. Если ваш SDR имеет только одну приемную антенну, LTESniffer будет декодировать только нисходящие сообщения в режиме передачи 1. Обратите внимание, что GPSDO является опциональным для перехвата нисходящего канала; он помогает улучшить синхронизацию, но не обязателен.

С другой стороны, для перехвата восходящего трафика от смартфонов к базовым станциям LTESniffer необходимо одновременно прослушивать две разные частоты (восходящую и нисходящую). Для решения этой проблемы LTESniffer поддерживает два варианта:

  • Использование одного USRP X310. USRP X310 имеет два локальных генератора (LO) для 2 каналов RX, что позволяет настраивать каждый канал RX на отдельную частоту восходящего/нисходящего канала. Как и в случае с перехватом нисходящего канала, GPSDO является опциональным для этого варианта. Чтобы использовать этот вариант, обратитесь к ветке main LTESniffer.
  • Использование 2 USRP B-серии. LTESniffer использует 2 USRP B-серии (B210/B200) отдельно для восходящего и нисходящего каналов. Синхронизация между двумя USRP достигается за счет использования GPSDO в качестве источника тактовой частоты и временной привязки. GPSDO обязателен для этого варианта. Чтобы использовать этот вариант, обратитесь к ветке LTESniffer-multi-usrp LTESniffer и её 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>/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 к ПК. Для настройки интерфейса USRP X310 и карты 10Gb обратитесь к руководству UHD [1], [2]. Для USRP B210 его следует подключать к ПК через порт USB 3.0.

Проверьте соединение и прошивку (только для 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). Оно покажет идентификатор соты и полосу/частоту восходящего/нисходящего каналов, к которым подключен смартфон. Убедитесь, что LTESniffer также подключается к той же соте и частоте.

Общий перехват нисходящего канала

Режим нисходящего канала LTESniffer

root@kitploit:~
sudo ./<каталог-сборки>/src/LTESniffer -A 2 -W <количество потоков> -f <частота DL> -C -m 0
пример: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -C -m 0
-A: количество антенн
-W: количество потоков
-f: частота нисходящего канала
-C: включить поиск соты
-m: режим сниффера, 0 для нисходящего, 1 для восходящего

Примечание: для запуска LTESniffer с USRP B210 в режиме нисходящего канала добавьте опцию -a "num_recv_frames=512" в командную строку. Эта опция расширяет приемный буфер для USRP B210 для достижения лучшей синхронизации.

root@kitploit:~
sudo ./<каталог-сборки>/src/LTESniffer -A 2 -W <количество потоков> -f <частота DL> -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 <частота DL> -u <частота UL> -C -m 1
пример: sudo ./src/LTESniffer -A 2 -W 4 -f 1840e6 -u 1745e6 -C -m 1
-u: частота восходящего канала

API безопасности

Режим API LTESniffer

root@kitploit:~
sudo ./<каталог-сборки>/src/LTESniffer -A 2 -W <количество потоков> -f <частота DL> -u <частота UL> -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 <физический идентификатор соты (PCI)> -p <количество физических ресурсных блоков (PRB)>. В этом случае LTESniffer не выполняет поиск соты, а подключается непосредственно к указанной соте.

root@kitploit:~
sudo ./<каталог-сборки>/src/LTESniffer -A 2 -W <количество потоков> -f <частота DL> -I <PCI> -p <PRB> -m 0
sudo ./<каталог-сборки>/src/LTESniffer -A 2 -W <количество потоков> -f <частота DL> -u <частота UL> -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, восходящего канала: sniffer_ul_mode.pcap, API: api_collector.pcap. Pcap-файлы находятся в том же каталоге, откуда был запущен LTESniffer. Чтобы WireShark мог правильно анализировать декодированные пакеты, обратитесь к руководству по настройке WireShark здесь. Там также приведены некоторые примеры pcap-файлов.
Примечание: Pcap-файл восходящего канала содержит как сообщения восходящего, так и нисходящего каналов. В WireShark используйте следующий фильтр для просмотра только восходящих сообщений: mac-lte.direction == 0; или этот фильтр для просмотра только нисходящих сообщений: mac-lte.direction == 1.

Примечание по применению

Расстояние для перехвата восходящего канала

Эффективная дальность перехвата восходящего канала в LTESniffer ограничена из-за возможностей радиочастотного фронтэнда аппаратного обеспечения (SDR). Мощность сигнала восходящего канала от UE значительно слабее, чем мощность сигнала нисходящего канала, поскольку UE — это портативное устройство, оптимизирующее использование батареи, в то время как eNB использует достаточную мощность для покрытия большой площади. Для успешного захвата восходящего трафика LTESniffer может увеличить мощность сигнала: i) находясь физически близко к UE, или ii) улучшив возможности приема сигнала с помощью специализированного оборудования, такого как направленная антенна, выделенный радиочастотный фронтэнд и усилитель сигнала.

Информация, отображаемая на терминале

Режим перехвата нисходящего канала

Processed 1000/1000 subframes: Количество подкадров, обработанных LTESniffer за последнюю 1 секунду. По замыслу в 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: Отношение сигнал/шум (дБ). Низкое 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 History Chart

Часто задаваемые вопросы

Q: Обязательно ли использовать GPSDO с USRP для работы LTESniffer?
A: GPSDO полезен для более стабильной синхронизации. Однако для режима перехвата нисходящего канала LTESniffer все еще может синхронизироваться с LTE-сигналом для декодирования пакетов без GPSDO. Для режима перехвата восходящего канала GPSDO требуется только при использовании 2 USRP B-серии, так как он служит источником тактовой частоты и временной привязки для синхронизации между каналами восходящего и нисходящего направлений. Другой вариант SDR для восходящего канала — использование одного USRP X310 — не требует GPSDO.

Q: Для нисходящего трафика можно ли использовать более дешевый SDR?
A: Технически любые SDR, поддерживаемые библиотекой srsRAN, такие как Blade RF, можно использовать для запуска LTESniffer в режиме перехвата нисходящего канала. Однако мы протестировали функцию перехвата нисходящего канала LTESniffer только с USRP B210 и X310.

Q: Незаконно ли использовать LTESniffer для перехвата LTE-трафика?
A: Вам необходимо проверить местные правила перехвата (незашифрованного) LTE-трафика. Другой способ протестировать LTESniffer — развернуть персональную LTE-сеть с помощью srsRAN — реализации LTE с открытым исходным кодом в клетке Фарадея.

Q: Можно ли с помощью LTESniffer просматривать содержимое сообщений между двумя пользователями?
A: Можно увидеть только "незашифрованную" часть сообщений. Обратите внимание, что большая часть эфирного трафика между базовой станцией и пользователями зашифрована.

Q: Есть ли какие-либо идентификаторы устройств, передаваемые в открытом виде в сети LTE?
A: Да, литература показывает, что существует множество идентификаторов, передаваемых в открытом виде, таких как TMSI, GUTI, IMSI и RNTI. Подробнее см. в академической литературе, например, Watching the Watchers: Practical Video Identification Attack in LTE Networks.

Скачать инструмент