Спутниковая система Iridium, состоящая из 66 низкоорбитальных спутников, обеспечивает связь даже в самых удаленных уголках планеты, но, как и любая технология, она подвержена уязвимостям. Этой публикацией мы начинаем серию статей на тему взлома спутниковых систем. В статье покажу, как с помощью доступного оборудования и ПО перехватить и взломать сигналы Iridium, что позволит получить доступ к передаваемым данным, включая голосовые и текстовые сообщения.
Еще по теме: Перехват GSM трафика
Спутниковая сеть Iridium
В современном мире спутники играют важнейшую роль в предоставлении множества услуг, таких как: GPS, спутниковая телефонная связь телевизионное и радиовещание, метеорологические данные и многое другое.
Сеть Iridium была разработана компанией Motorola в 1990-х годах и введена в эксплуатацию в 1998 году. Она предоставляет возможность совершать звонки из любой точки мира, включая полюса, отдаленные районы и горные вершины, где напрочь отсутствует мобильная связь. Этот сервис оказалася бесценным для военных, путешественников, экологов и других организаций, работающих в удаленных уголках планеты.
В отличие от «старых» геостационарных спутников, находящихся на высокой орбите около 322000 километров 66 спутников Iridium двигаются по орбитам с севера на юг на низких высотах около 35500 километров. Преимущество таких низких орбит заключается в низкой задержке связи, тогда как недостаток — это небольшой охват каждого спутника, что требует большего их количества для полного покрытия планеты.
Сервис Iridium включает голосовую связь, пейджинг и SMS-подобные сообщения. Все эти типы связи можно перехватывать с использованием недорогого SDR-оборудования и программного обеспечения.
Оборудование для перехвата
Для перехвата и взлома спутниковых данных, нужно иметь недорогое железо:
- Компьютер.
- Операционная система DragonOS (см. Установка и использование DragonOS).
- Спутниковая антенна (например, плоская антенна с сайта rtlsdr.com, примерно 60$, или с алика в разы дешевле).
- Приемник SDR (RTL-SDR или HackRF).
Извлечение данных из захваченного сигнала
Чтобы извлечь данные Iridium из спутниковых сигналов, первым делом необходимо настроить конфигурационный файл.
В DragonOS перейдите в директорию gr-iridium:
1 |
dragon > cd /usr/src/gr-iridium |
Затем в директорию с примерами. Там вы найдете конфигурационные файлы для различных SDR-устройств. Мы будем использовать самое доступное оборудование, поэтому нас интересует файл rtl-sdr.config.
Теперь откройте конфигурационный файл для RTL-SDR в любом текстовом редакторе (я использовал featherpad).
Найдите строку device_args='rtl=0, bias=1' и уберите символ # перед ней, чтобы разкоментировать ее. Это позволит задействовать RTL-SDR и активирует питание антенны ( bias=1).
В конце сохраните файл.
Захват сигнала Iridium
На этом этапе мы будем захватывать сырые сигналы со спутника.
Для захвата данных, воспользуемся извлекателем сигналов Iridium:
1 |
dragon > iridium-extractor -D rtl-sdr.conf > iridium_output.txt |
Чтобы захватить достаточное количество данных для извлечения голосовых и текстовых сообщений, дайте команде поработать в течение нескольких часов или даже оставьте на ночь.
Декодирование захваченных данных
Теперь, когда мы захватили сырые данные с помощью нашего RTL-SDR и антенны и сохранили их в файл с именем iridium_output.txt, нужно декодировать эти данные. Для этого мы используем скрипт iridium-parser.py (парсинг означает разбиение на части и анализ ключевых компонентов). Результаты парсинга будут сохранены в файл с именем iridium_parsed.
1 |
dragon > python3 iridium-parser.py -p iridium_output.txt > iridium_parsed |
Для удобства, нужно добавить директорию iridium-toolkit в переменную PATH.
1 |
dragon > PATH=$PATH:/usr/src/iridium-toolkit |
Теперь можно расшифровать голосовые данные из этого парсированного вывода с помощью скрипта stats-voc.py, который является частью набора инструментов Iridium.
1 |
dragon > ./stats-voc.py iridium_parsed |
После выполнения этой команды откроется окно, как показано ниже. Красные точки представляют собой потенциальные захваты голосовых данных (чем больше данных вы захватите, тем больше будет красных точек).
Теперь выберите одну из красных точек, щелкнув на ней левой кнопкой мыши, затем правой кнопкой. Если в захвате есть голосовые данные, они будут воспроизведены, и вы их услышите. Не все захваченные данные будут содержать голосовую информация, поэтому попробуйте разные.
Повторная сборка других данных
Данные Iridium включают в себя голосовые сообщения, пейджинг и текстовые сообщения. Давайте посмотрим, сможем ли мы найти что-либо из этого в наших захваченных данных.
Первым шагом будет повторная сборка этих данных. В наборе инструментов iridium_toolkit есть инструмент с именем resassembler.py, который можно использовать для повторной сборки данных в другие форматы. У resassembler.py есть 3 опции:
- ida — сообщения уровня 3 Um, обычно в шестнадцатеричном формате, некоторые — в ASCII.
- lap — сообщения уровня 3 GSM в формате pcap.
- msg — сообщения пейджера.
Попробуем использовать опцию ida.
1 |
dragon > sudo ./reassembler.py -i iridium_parsed -m ida |
Вы можете увидеть результат ниже.
Обратите внимание, что почти все сообщения представлены в шестнадцатеричном формате, но некоторые из них в ASCII и легко читаемы. Шестнадцатеричные сообщения можно перевести в ASCII с помощью любого онлайн конвертера hex-to-ascii.
Во многих случаях спутниковые системы не имеют надлежащей защиты, поэтому любой, имея недорогое оборудование и определенные навыки, может перехватить и прослушать или прочитать эти сообщения.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Подмена местоположения на Kali Linux с HackRF One
- Как перехватить IMSI используя HackRF на Kali Linux
- Перехват рации с помощью HackRF One и SDRSharp