Радиохакинг

MAREK11

Интересующийся
Регистрация
29/1/22
Сообщения
85
Репутация
20
Реакции
145
RUB
0
Перехват «GSM» трафика с помощью SDR, GNU-Radio, Wireshark, Kraken.

Введение

Попытаюсь сразу не согласиться с легендарными советскими писателями о том что «радио есть, а счастья нет». Радио в современном представлении дало нам такие замечательные вещи как – Wi-Fi, сигнализация, рация, GSM, 2/3/4/5G и кучу других G-овно устройств :smile55:, которые в реальном времени вещают на разных частотах и, конечно же, подвержены всевозможным уязвимостям, что не может не делать нас чуточку счастливее.

В статье пойдет речь про всеми любимый протокол и «прародитель» сотовой связи – это, конечно, GSM.

Суть темы – уязвимость алгоритма шифрования A5/1 и её эксплуатация. Ходят слухи, что до сих пор используется практически всеми операторами сотовой связи даже в мегаполисах. У МТС изредка проскакивает A5/3. Сам я этого, конечно же, не проверял :smile25:, но доверюсь общедоступному мнению что так и есть, а значит все виды двухфакторной аутентификации(!), разговоры(!), трафик, - подвержены данной атаке.

Есть много информации в открытом доступе на данную тему, но когда начинаешь экспериментировать с нуля, возникает огромное количество вопросов и нестыковок. Еще бы - эти нестыковки начали появляться с самого 2009 года, когда Карстен Нол рассказал миру о проблеме. Стали появляться в сети испорченные билды программ, пропадать таблицы из общего доступа и вообще - «Ассоциация GSM описала планы Нола как незаконные и опровергла». Все дело в том, что для решения данного вопроса требуются нехилые вливания финансов, а операторы, особенно стран ближнего зарубежья и РФ «просвистели» все деньги вместо того что бы вливать их в инфраструктуру как оказалось, а тут еще Яровая со своими ЦОД-ами.

На написание данной статьи подтолкнул DefCon 21, Balint Seeber, Karsten Nohl и банальное любопытство :smile92:. Не буду размусоливать долго о работе протоколов, информация направлена на «максимально быстрое включение из коробки».

Минимальные знания для прочтения и усвоения статьи:

*IMSI - международный идентификатор мобильного абонента (индивидуальный номер абонента), ассоциированный с каждым пользователем мобильной связи стандарта , или . Во избежание перехвата, этот номер посылается через сеть настолько редко (только аутентификация пользователя), насколько это возможно — в тех случаях, когда это возможно, вместо него посылается случайно сгенерированный TMSI.

*TMSI - временный идентификатор мобильной станции GSM (мобильного телефона). TMSI назначается после успешной аутентификации и используется в процессе установки звонка, регистрации в сети и т. д. TMSI используется из соображений безопасности, для сокрытия других идентификаторов абонента, а именно, во избежание передачи через радиоэфир.

*MCC - мобильный в комбинации с является уникальным идентификатором оператора сетей , , , и , а также некоторых операторов .

*Кс - сеансовый ключ шифрации, который нам и нужно получить.

*ARFCN - В сетях абсолютный номер канала.

* - поточный шифр, наиболее распространенный на сегодня.

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

Перехват чужих переговоров и СМС являются нарушением закона!


Шаг 1. Подбор железа

На что ловим. Software-defined radio (SDR) Программно-определяемое радио - это система радиосвязи, в которой компоненты, которые традиционно применяются в аппаратном обеспечении (например, микшеры, фильтры, усилители, модуляторы / демодуляторы, детекторы и т.д.), вместо этого реализуются с помощью программного обеспечения на персональном компьютере или встроенной системы. Хотя концепция SDR не нова, быстро развивающиеся возможности цифровой электроники делают практическими многие процессы, которые когда-то были возможны только теоретически.

Необходимым программным обеспечением будет - Gnu-Radio. Это очень крутой открытый проект, возможности в котором ограничиваются только вашими знаниями.

Необходимым железом для перехвата пакетов будет любой SDR-комплект. От самого простейшего RTL-SDR «свистка» (~1000 рублей) :

f5f91b741700be6784b71.png


До лютейшего комплекса, который работает в режиме full-duplex - UmTRX Price: $950.00 (и который, кстати, подойдет для организации собственной тестовой сети:

ecea2a6d396df0a199825.jpg


Или готовая БС которой мне посчастливилось пользоваться UmDesk Price: $3,000 (на базе того же UmTRX):

5bd20ce4c565a43f812a0.jpg


«Таскать» такое с собой в кармане не получится, поэтому самым приемлемым портативным вариантом с более широкой полосой пропускания, чем у RTL-SDR будет HackRF One. Цена без кейса ~100$:

01d1ac06aca8cd659be88.jpg


Есть вот такое интересное решение для апгрейда. PortaPack 220$:

35b0d2495d61ed8aa1508.jpg


Как видим, кейс с дисплеем и регулятором для HackRF. Отлично подойдет для поиска «жучков» и просто как анализатор спектра частот :smile49:. Честно… open-source, но ценник чересчур не демократичный при наличии прямых рук можно сделать дисплей, регулятор, звук отдельно. Частично перекрывается Android смартфоном и SDR-софтом.

  • С полным списком SDR-устройств можно ознакомится на Википедии - .
  • Лучше взять сразу full-duplex, но и цена значительно разнится с простым приемником. Знакомство с SDR и Gnu-Radio однозначно только GSM не ограничится!
  • Для корректного приема потребуется антенна, которая уверенно принимает на 900Mhz. Часто комплектной достаточно на небольшие дистанции.
  • Обязательно потребуется наличие двух жестких дисков по 2TB каждый, - для расшифровки трафика программным комплексом Kraken.
  • Не слабый компьютер. При установки одного из важных пакетов уйдет не мало ресурсов, как и при записи трафика широкой полосой.

Шаг 2. Установка и конфигурация

  • Ставим Linux Ubuntu 16.04. Только на ней с коробки все корректно «заколосилось» и не было никаких претензий к работе Gnu-Radio и SDR. Экспериментируйте
  • Далее соблюдая очередность ставим необходимые пакеты:
Код:

sudo apt-get install git

git clone

cd pybombs

sudo python setup.py install

sudo pybombs recipes add gr-recipes git+

//грузим так называемые «рецепты»
sudo pybombs recipes add gr-etcetera git+

sudo pybombs prefix init /usr/local/ -a gr-gsm

// установка Gr-Gsm крайне долгая процедура ~4 часа. На i3 c 4Gb ОЗУ не установилось вообще. Работаю на i7.
sudo pybombs -p gr-gsm install gr-gsm

sudo ldconfig

  • Самое страшное и долгое - радужные таблицы с помощью которых идет подбор Kс ключа. По данной ссылке нужно скачать ~1600Gb таблиц (40 файлов по 40) - ). Оооооочень медленно, начните с этого
Клонируем и компилим git:

Код:

git clone

//есть вариации подбора ключа из радужных таблиц с помощью видеокарты, что происходит немного быстрее, но я делал под процессор
make noati

  • Далее нужно изменить файл конфигурации tables.conf в папке indexes (там должен быть файл с примером tables.conf.sample), в нем нужно указать на диск (именно на диск, а не раздел(!), так как Kraken будет переносить таблицы на чистую, без файловой системы).
  • После этого нужно запустить скрипт из папки indexes:
Код:

python ./Behemoth.py /path/to/a51/tables/

и указать ему в качестве параметра папку, со скачанными заранее таблицами.



Шаг 3. Запуск и анализ

Переходим в каталог с .grc файлами (GNU Radio Companion). Готовая блок схема для корректного получения трафика:

Код:

cd /usr/local/src/gr-gsm/apps
//и запускаем
sudo gnuradio-companion grgsm_livemon.grc

//далее запускаем Wireshark «натравленный» на GSM:
sudo wireshark -k -f udp -Y gsmtap -i lo

Тем самым мы можем видеть трафик в real-time.

Для работы в реальных сетях и потребуется любой калькулятор ARFCN, допустим -

В общем доступе есть списки принадлежности к тому или иному оператору ARFCN которые нужно сопоставить с вашей целью для анализа непосредственно этой частоты.

Как узнать к какому ARFCN подключен абонент? Подумать :smile87: Это не сложно.

Для iPhone 3001#12345#

Для Android ##4636## или ##197328640##

Необходимо выяснить TMSI цели. Самый простой способ – отправка СМС.


Шаг 4. Получение Kc

Данный пункт в текстовом варианте решил опустить по той причине, что есть информативное видео от Датских коллег. За исключением моментов:

  • GR-GSM мы уже установили.
  • Вы выяснили на каком канале сидит абон, далее записали эфир grgsm_capture.
  • Для декодирования и анализа в Wireshark gsm_decode.
И далее работа с голосом:



Ознакомьтесь со всеми возможностями GR-GSM:





Обратите внимание на нижние строки "Decode hopping channels". Этот пункт понадобиться для работы с речью. Во время звонка происходят прыжки между каналами, для улучшения качества связи. Для борьбы с этим пунктом требуется grgsm_channelize.


Заключение

Это только маленькая вершинка айсберга во всем потоке радиоволн. Есть еще дырявые автосигнализации, обычные сигнализации которые вещают в радио и gsm канале, всевозможные рации служб которые в открытом доступе транслируют персональные данные, наплевав на ФЗ о Защите персональных данных, спутники, RFID, пассивная сборка данных с Wi-Fi и многое другое что вы сможете изучить погрузившись в изучение SDR . Спасибо за внимание.

Данная статья не призывает к противоправным действиям, а написана в целях обеспечения личной безопастности и указания на очевидные дыры в организации сотовых сетей.
 
Радиохакинг - Часть 2 «FakeBTS»

Перехват трафика сотовой сети с помощью подменной Базовой Станции (FakeBTS), OpenBTS, YateBTS.

Ведение

Пока писал первую статью вспомнил про сложности реализации данной атаки и совершенно не полную картину происходящего и решил сразу же написать вторую часть. Так что за сложности? А дело в том, что в наших суровых реалиях, нужно будет находиться близко к цели и использовать Jammer (глушилку) что бы приглушить 2/3/4G и телефон упал в GSM сам для профита. Как минимум к оборудованию еще понадобятся яйца или группа лиц по предварительному сговору несколько человек.

У китайцев огромной популярностью пользуются подменные БС для рассылки SMS-спама, но как вы должны понимать, этим функции не ограничиваются.

Зато в свободной продаже всякие приколюшки связанные с GSM протоколом, по той простой причине, что вышки в Китае уже давно работают на 2G минимум.

… Так вот с БС все куда проще. Сотовая связь устроена так, что устройство будет подхватывать самый мощный сигнал вышки и, если приглушить на короткое время девайс, или вышку полностью (в реализации интереснее, не нужно быть очень близко), тогда абонент перейдет под ваш контроль с нужным вам шифрованием (A5/1) или вовсе без него (А5/0).

Информации опять же очень много в свободном доступе, но приходится «додумывать» на ходу, кто-то найдет для себя что-то новое. Опишу самый короткий путь реализации данной атаки.

Немного повторюсь:

*MCC/MNC - код страны. Список всех MNC можно посмотреть здесь:

*Cell ID - Идентификатор базовой станции.

*LAC (Location Area Code) — код географической зоны, которая обслуживается одним контроллером базовых станцией (BSC). Когда происходит входящий вызов, то оповещение одновременно получают все базовые станции данной зоны.

*ARFCN Absolute radio-frequency channel number — идентификатор, однозначно определяющий пару частот, используемых для приёма и передачи. Пример: за диапазоном 1800 закреплены номера 512 — 885. При этом частота передачи вычисляется по формуле 1710.2 + 0.2·(n−512), а частота приёма = частота передачи + 95.

* IMSI - международный идентификатор мобильного абонента (индивидуальный номер абонента), ассоциированный с каждым пользователем мобильной связи стандарта , или . Во избежание перехвата, этот номер посылается через сеть настолько редко (только аутентификация пользователя), насколько это возможно — в тех случаях, когда это возможно, вместо него посылается случайно сгенерированный TMSI.

*TMSI - временный идентификатор мобильной станции GSM (мобильного телефона). TMSI назначается после успешной аутентификации и используется в процессе установки звонка, регистрации в сети и т. д. TMSI используется из соображений безопасности, для сокрытия других идентификаторов абонента, а именно, во избежание передачи через радиоэфир.

Все действия необходимо проводить только в своей сети со своими абонентами!

Перехват чужих переговоров и СМС являются нарушением закона!

Подбор железа
Тут все не так однозначно как по цене, так и по сути работы SDR.

Необходим Full-Duplex по той простой причине что трубка обменивается данными аутентификации и регистрируется в БС (получает TMSI, соотносит с номером абонента и т.д. т.п.).

Устройства типа HackRF - Half-Duplex не подойдут. Они работают только в режиме приема, либо передачи.

Сам Майкл Осман (создатель) о переделке HackRF в полный дуплекс:

«If you were to try to redesign the RF section on HackRF One to support full-duplex, the main thing to focus on would be the MAX2837 (intermediate frequency transceiver). This part is half-duplex, so you would either need two of them or you would have to redesign the RF section to use something other than the MAX2837, likely resulting in a radically different design. If you used two MAX2837s you might be able to use one RFFC5071 instead of two RFFC5072s.»

Кратко - все в устройстве кроме питания (необходим дополнительный блок), программной части и трансивера MAX2837 поддерживают такой апгрейд. В твитере Османа есть схема full-duplex. Попробую обязательно напишу результат .

Самый простой и дешевый, очень популярный девайс - два телефона Motorola с123/с113/с118

В статье я упущу материал по установке и настройке сославшись на блог Pentestit на Хабре с полнейшим мануалом -

dfaa9c5fe10ce5a02987f.png


И покажу вам другу сторону данного телефона, это сканер-помощник поиска ARFCN. Отличная вещь!

55d04bbe05b06edd17868.jpg


И уже полноценный SDR, приемлемый по цене и функционалу – BladeRF (~400$)

8ca67822380861785a4dd.jpg


... замаскированный под принтер.

По качеству исполнения есть устройство превосходящее - LimeSDR (~40-60 т.р) Есть версия Mini, а есть и полноценная - два канала на прием и два на передачу. Шикарно то что выходит вообще за область бытия и просиживания задницы на стуле… из Lime возможно сделать, доплеровский радар. Вам однозначно не будет скучно c SDR.

5aff36707f2b25904149e.jpg


Полноценные по ширине канала от Fairwaves:

UmTRX Price: $950.00

Детище Ettus Research:

USRP B210 Price: $1216.00

USRP B200 Price: $745.00


Но у UmTRX есть преимущества:

  • все схемы платы и исходные коды софта доступны под open source лицензией
  • дешевле, чем аналогичная конфигурация на USRP
  • плата может работать с двумя независимыми каналами, в то время как USRP имеют только один канал
  • GPS для точной подстройки опорного генератора частоты уже встроен, а не закупается отдельно, как в USRP (плавающая частота генератора приводит в GSM к проблемам)
Или готовая БС - UmDesk Price: $3,000 (на базе того же UmTRX). Системный блок с платой UmTRX и предустановленной OpenBTS. Короче найдите куда потратить деньги лучше.


Установка, конфигурация, запуск

Опишу общие принципы работы, все остальное поковырять самому и прочесть предлагающиеся мануалы ниже. Подробно пошаговые инструкции по установке. Самое главное на что нужно обратить внимание:

  • Вы прописываете в конфигурационных файлах или напрямую в веб-интерфейсе такие параметры как - LAC / MCC / MNC предварительно «подглядев» их в открытых источниках.
  • Понижаете «сiphering mode» до A5/0.
  • Покупаете / подключаете IP телефонию с подменой CallerID и интеграцией с Asterisk (этих услуг более чем достаточно на просторах).
  • Цепляете абонента. Он получает внутренний номер. Исходя из настроек Asterisk'a получает CallerID при звонке.
Что то в духе того:

Код:

/etc/asterisk/iax.conf

[VoicePulse]
type=peer
host=server.example.voicepulse.com
username=SomeuSer
secret=PaSsWorD


Код:

/etc/asterisk/sip.conf

[sipuser]
type=peer
host=dynamic
username=allan
secret=1234
context=outgoing


Код:

[outgoing]
exten => _1NXXNXXXXXX,1,SetCallerID(2024561111)
exten => _1NXXNXXXXXX,n,Dial(IAX2/VoicePulse/${EXTEN})


Что использовать:

YateBTS

- полноценный мануал по установке.

- настройка, веб-морда(!), asterisk, sip-транки.

и приятно выглядит.

b7ade6103774eabda3a36.png

OpenBTS – онли консоль.





OsmoBTS – тут все еще жестче, но стабильнее всего.




Заключение

Про сотовую связь на этом все. Про SS7 упоминать не буду, так как лично не сталкивался. В следующий части мы опустимся на низкие частоты и поговорим про анализатор спектра, жучки и их поиск, рации спецслужб (псс и даже тех самых служб.

Данная статья ни призывает к противоправным действиям, а написана в целях обеспечения личной безопастности и указания на очевидные дыры в организации сотовых сетей.
 
Радиохакинг - Часть 3 «GPS» и не только

Подмена «GPS» с помощью SDR. Подмена любых передатчиков.

Введение

Статья приурочена к апрельскому АВИАХАКАТОНУ. Данная информация не руководство к действию злоумышленника, а скорее руководство для безопасников и привлечение внимания к данной проблеме. Все эксперименты опасны для вашей свободы!

Врядли вы узнаете что-то новое из этой статьи и неоднократно уже слышали (в году так аж 2013) с момента выхода Defcon 21 и доклада с коротким названием - AllYourRFzAreBelongtoMe:HackingtheWirelessWorldwithSoftwareDefinedRadio от Balint Seeber'a.



Так что изменилось за шесть лет, спросите вы? А ровным счетом ничего… Кроме того, что SDR значительно подешевели и позволить себе игрушку может каждый школяр и если некоторые индивидуумы думают, что ограничение продажи устройств что-то решит в этой стране, очень жаль Вас, вы некомпетентны. Протоколы безопасности не обновляются или не существуют вообще (например, свободное общение сотрудников и передача персональных данных граждан по рации ретранслятора, который есть в каждом городе, наплевав на все ФЗ, которыми нас начали тыкать последнее время), багов и лазеек все больше и больше с каждым днем.

Просто подмена сигнала

Методика подмены сигнала (практически любого) строится на трех китах и проста до безобразия. База, которая будет подменяться, глушилка (необходимо знать ТТХ твоего устройства перед применением и подбирать необходимый радиус), устройство для копирования и вещания сигнала, в нашем случае SDR. Рассмотрим одну простейшую ситуацию, а область применения широка, от диверсий и дезинформаций до взлома пультов охранных предприятий.

Пример - сигнализация типового объекта:

Код:

1) Изучаем спектр частот и находим нужный нам сигнал. Софт - SDRSharp, Gqrx, Gnu-Radio

2) Записываем кусок сигнала: hackrf_transfer -r NAME_FILE -f 473000000 -b 1750000 -s 16000000 -a 1

3) Воспроизводим сигнал: hackrf_transfer -t NAME_FILE -f 473000000 -b 1750000 -s 16000000 –a 1

Ключом -f задается частота в герцах, в этих же единицах указываются ширина записываемой полосы (-b) и частота дискретизации сигнала (-s). Ключ -a отвечает за использование встроенного усилителя. Ну, а про rx / tx вы уже должны знать к этому моменту.

d59f23310b9ea2d1df71e.jpg


Да, друг мой, все настолько просто. Сигнализация хоть и сработает, но об этом узнают слишком поздно.

Конечно же продуман скажет «Сейчас все на Симках и GSM протоколе, проводах бла бла бла» да, но это не панацея, такие сигнализации банально «залинкованы» с пультом управления и при глушении начинают «визжать» сначала по интернету, а если он не доступен СЛАТЬ СМС! О перехвате СМС и трафика есть информация в первой части

но вы определенно столкнетесь с внутренней алгоритмизацией таких сообщений даже прорвавшись через протокол связи и придется подумать (как правило отправка в течении 1-1.5 минуты на пульт).

Или упрощенная методика без глушилки – наш сигнал (помеха) должен быть сильнее источника, но это дополнительные риски.


GPS

e33d4c42381cf157a250f.jpg


Сейчас приемник спутниковой навигации есть не только в телефоне, но и — в промышленных установках, в датчиках телеметрии, в банкоматах. Такие приемники обеспечивают навигацию в автоматически управляемых системах, от городского транспорта до военных дронов. Системы глобального позиционирования проникли в нашу жизнь и большинство людей не задумываются насколько им можно доверять.

Почему АВИАХАКАТОН? Маленький стеб. На борту самолета находится более 7 датчиков и прогноз неутешителен… от банального перенаправления судна. Общение идет так же по открытым каналам.

Гражданские квадрокоптеры имеют программе запрещенные координаты, над которыми им нельзя летать, — например, аэропортов. Используя «навигационное Орудие», можно убедить квадрокоптер, что он оказался во Внуково, в результате чего он не сможет лететь дальше и сядет. Предполагается, что именно такой защитой от дронов объясняются сбои GPS вокруг Кремля. А можно и посадить в удобном месте.

Большую опасность представляет подделка сигнала спутников, в случае промышленных систем синхронизации — в энергетике или в добывающей промышленности. Для подсчета электроэнергии или для выбора схем энергоснабжения на различных участках используется синхронизация времени по данным той же системы GPS. Обман такой системы всего на несколько секунд приведет к тому, что система недосчитает мегаватты электроэнергии.

Есть яркий пример – история о немецких станках. Они были привязаны к заводу по координатам и их вынесли спокойно куда было нужно. Яхту за 80 миллионов $ направили в другое место.

Самые простые варианты - используют в угонах, дабы датчик не глушить и навести погоню на ложный след. Слышал про туристов… Поворот не туда смотрели фильм?

35d99e4694165406f9d30.jpg


Реализация.

Не забудьте про наличие TCXO на вашей RF-плате.

Предварительно установить необходимый набор стандартного софта (HackRF, Lime, USRP)

blog.goo.ne.jp/osqzss - учим Японский )


GNSS evaluation software for Windows



Линь, тут и информация по запуску и генерации файла с координатами -



Вы можете создать путь с помощью Google Планета Земля и сохранить путь в KML (язык разметки а-ля XML) Используя эту программу SatGen, вы можете загрузить KML, и он покажет вам некоторые опции, которыми вы можете манипулировать, а также приблизительную картину вашего пути. Подсовывать динамичные данные спутника следует в CSV файле, которые вы конвертируете из KML.

Код:

./nmea2um output_nmea_file user_motion.csv

3bfb8f4ac031f2446fc1d.jpg


Вынь, Инсталятор Gnu-Radio под -

Запустите Visual Studio.

Создайте пустой проект для консольного приложения.

Добавьте «gpssim.c» и «getopt.c» в папку «Souce Files».

Выберите «Release» в раскрывающемся списке « Configurations».

Build.

Сгенерировать статичный сигнал на тест таким образом:

gps-sdr-sim.exe -e brdc3540.14n -s 2500000 -l 30.296403,120.0526889,100 -b 8 -d 300 -v -o 123.bin

  • gps-sdr-sim.exe — это файл, который вы собрали студией.
  • brdc3540.14n — это файл с эфемеридами спутников.
  • 2500000 — это частота дискретизации
  • 30.296403, 120.0526889— координаты
  • 100 — высота
  • 8 — это разрядность чисел в выходном файле (один отсчет — это IQ, два числа).
  • 300 — это длительность в секундах.
  • -v — это чтобы побольше писало в лог
  • 123.bin — имя выходного файла.
Для общего развития:




Заключение

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

…кроме

 
Сверху Снизу