Перехват «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 - временный идентификатор мобильной станции GSM (мобильного телефона). TMSI назначается после успешной аутентификации и используется в процессе установки звонка, регистрации в сети и т. д. TMSI используется из соображений безопасности, для сокрытия других идентификаторов абонента, а именно, во избежание передачи
*MCC - мобильный
*Кс - сеансовый ключ шифрации, который нам и нужно получить.
*ARFCN - В сетях
*
Все действия необходимо проводить только в тестовой сети, о которой могу рассказать по желанию форумчан т.к. информации в клирнете более чем предостаточно, но материал будет слишком перенасыщен. Кроме того, подменная БС (базовая станция) является не менее интересным вектором атаки в данном направлении.
Перехват чужих переговоров и СМС являются нарушением закона!
Шаг 1. Подбор железа
На что ловим. Software-defined radio (SDR) Программно-определяемое радио - это система радиосвязи, в которой компоненты, которые традиционно применяются в аппаратном обеспечении (например, микшеры, фильтры, усилители, модуляторы / демодуляторы, детекторы и т.д.), вместо этого реализуются с помощью программного обеспечения на персональном компьютере или встроенной системы. Хотя концепция SDR не нова, быстро развивающиеся возможности цифровой электроники делают практическими многие процессы, которые когда-то были возможны только теоретически.
Необходимым программным обеспечением будет - Gnu-Radio. Это очень крутой открытый проект, возможности в котором ограничиваются только вашими знаниями.
Необходимым железом для перехвата пакетов будет любой SDR-комплект. От самого простейшего RTL-SDR «свистка» (~1000 рублей) :
До лютейшего комплекса, который работает в режиме full-duplex - UmTRX Price: $950.00 (и который, кстати, подойдет для организации собственной тестовой сети:
Или готовая БС которой мне посчастливилось пользоваться UmDesk Price: $3,000 (на базе того же UmTRX):
«Таскать» такое с собой в кармане не получится, поэтому самым приемлемым портативным вариантом с более широкой полосой пропускания, чем у RTL-SDR будет HackRF One. Цена без кейса ~100$:
Есть вот такое интересное решение для апгрейда. PortaPack 220$:
Как видим, кейс с дисплеем и регулятором для HackRF. Отлично подойдет для поиска «жучков» и просто как анализатор спектра частот :smile49:. Честно… open-source, но ценник чересчур не демократичный при наличии прямых рук можно сделать дисплей, регулятор, звук отдельно. Частично перекрывается Android смартфоном и SDR-софтом.
Шаг 2. Установка и конфигурация
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
Код:
git clone
//есть вариации подбора ключа из радужных таблиц с помощью видеокарты, что происходит немного быстрее, но я делал под процессор
make noati
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:
Обратите внимание на нижние строки "Decode hopping channels". Этот пункт понадобиться для работы с речью. Во время звонка происходят прыжки между каналами, для улучшения качества связи. Для борьбы с этим пунктом требуется grgsm_channelize.
Заключение
Это только маленькая вершинка айсберга во всем потоке радиоволн. Есть еще дырявые автосигнализации, обычные сигнализации которые вещают в радио и gsm канале, всевозможные рации служб которые в открытом доступе транслируют персональные данные, наплевав на ФЗ о Защите персональных данных, спутники, RFID, пассивная сборка данных с Wi-Fi и многое другое что вы сможете изучить погрузившись в изучение SDR . Спасибо за внимание.
Данная статья не призывает к противоправным действиям, а написана в целях обеспечения личной безопастности и указания на очевидные дыры в организации сотовых сетей.
Введение
Попытаюсь сразу не согласиться с легендарными советскими писателями о том что «радио есть, а счастья нет». Радио в современном представлении дало нам такие замечательные вещи как – 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 рублей) :
До лютейшего комплекса, который работает в режиме full-duplex - UmTRX Price: $950.00 (и который, кстати, подойдет для организации собственной тестовой сети:
Или готовая БС которой мне посчастливилось пользоваться UmDesk Price: $3,000 (на базе того же UmTRX):
«Таскать» такое с собой в кармане не получится, поэтому самым приемлемым портативным вариантом с более широкой полосой пропускания, чем у RTL-SDR будет HackRF One. Цена без кейса ~100$:
Есть вот такое интересное решение для апгрейда. PortaPack 220$:
Как видим, кейс с дисплеем и регулятором для 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 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 . Спасибо за внимание.
Данная статья не призывает к противоправным действиям, а написана в целях обеспечения личной безопастности и указания на очевидные дыры в организации сотовых сетей.