October 11, 2023

использовании беззвучных SMS-сообщений для отслеживания местоположения пользователей LTE.

Использование бесшумных SMS для локализации пользователей LTE

Доказательство реализации концепции

Опубликовано 21 сентября 2023 г.

В этом сообщении блога я расскажу об интригующей технике — использовании беззвучных SMS-сообщений для отслеживания местоположения пользователей LTE. Мы увидим, как злоумышленник может отправлять тихие SMS-сообщения по определенному шаблону и анализировать трафик LTE, чтобы проверить местоположение жертвы. Следующие инструменты в совокупности составляют арсенал для проверки концепции:

  • OnePlus2 (с root-доступом) — это устройство служит модемом, который злоумышленник использует для отправки беззвучных SMS-сообщений.
  • Мобильный телефон жертвы . Можно использовать любой телефон с действующей SIM-картой. Телефон Android может оказаться более удобным для использования таких приложений, как Network Signal Guru, для получения важной информации о eNodeB, к которому подключен телефон жертвы (да, мы немного нарушаем правила).
  • USRP B210 — программно-определяемая радиосвязь (SDR), используемая для перехвата трафика LTE в нисходящей линии связи.
  • LTESniffer — программное обеспечение с открытым исходным кодом, используемое совместно с USRP для перехвата трафика LTE.
  • Минимум две SIM-карты — необходимы для телефона жертвы и модема злоумышленника.
  • Ubuntu 20.04 — операционная система, используемая злоумышленником.

Но сначала давайте начнем с некоторой теории.

Примечание. Поскольку в этом посте использовались те же определения, которые описаны в 3GPP TS 23.0.40, приведенный ниже глоссарий такой же, как и в GSM. Например, термин «мобильная станция» (MS) является синонимом термина «пользовательское оборудование» (UE), определенного в UMTS и LTE.

Структура SMS TPDU

3GPP определил шесть типов сообщений, которыми можно обмениваться между мобильной станцией (MS) и SMS-центром (SC), и каждое из них имеет свой формат в зависимости от направления связи. В нашем случае нас интересует тип SMS-SUBMIT, определяющий структуру сообщения, отправляемого пользователем.

Согласно определению, SMS SUBMIT представляет собой блок данных протокола передачи короткого сообщения, содержащий пользовательские данные (короткое сообщение), отправляемый от MS к SC. Формат Transfer Protocol Data Uniti (TPDU) состоит из серии 8-битной закодированной информации, представленной строкой ASCII, состоящей из пар шестнадцатеричных цифр, каждая из которых представляет 8 бит. Схематическое представление TPDU выглядит следующим образом:

В спецификации сказано, что TP-Protocol-Identifier (TP-PID) состоит из одного октета. Среди различных конфигураций битов в этом октете мы читаем, что в случае, когда бит 7 равен 0, бит 6 равен 1 и все биты с 5 по 0 являются нулями, настраивается PDU SMS-SUBMIT типа «Короткое сообщение типа 0». .

Этот тип сообщения, как описано вскоре после этого в документе в разделе 9.2.3.9, гласит, что «ME должен подтвердить получение короткого сообщения, но должен отказаться от его содержимого». Это означает, что Мобильное Оборудование (МО) получит сообщение, но не сохранит его ни на SIM-карте, ни в памяти телефона и, что более интересно, не оповестит пользователя о получении сообщения уведомлениями или звуками.

Чтобы легко создать PDU, вы можете воспользоваться одним из онлайн-сервисов, как видно на фото ниже. Сервис сгенерирует стандартное сообщение. Чтобы не было шума, теперь, когда мы определили бит, отвечающий за эту конфигурацию, нам просто нужно следовать описанному выше сценарию, где TP-PID должен быть равен 01000000 (40 в шестнадцатеричном формате).

Отправка тихого СМС

Чтобы отправить молчаливое сообщение, я использовал AT-команды, используемые для управления функциями модема. В качестве устройства ME я использовал OnePlus2 с правами root. Подключаясь через ADB, я изначально отправлял команду echo -e "AT\r" > /dev/smd0на проверку готовности модема к подключению. Попутно я проверил ответы модема оболочкой, в которой выполнил cat /dev/sdm0. Остальные команды вместе с краткими пояснениями перечислены ниже.

AT+CMGF=0    //Set PDU mode          
AT+CMGS=19  //Send message, 19 octets (excluding the two initial zeros) 
> 0011000C919333143244650000FF05F4F29C1E02 //Actual message (fake number)
^Z

//^Z acts as an "enter"

Чтобы проверить прием беззвучного сообщения, я подключил целевой телефон к ПК и запустил QCsuper . Как вы можете видеть на изображении ниже, беззвучное сообщение было получено правильно!

Находим местонахождение жертвы

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

Давайте посмотрим, как это можно сделать. Прежде всего, злоумышленник может создать очень простой скрипт, подобный следующему:

 echo -e "AT\r" > /dev/smd0

 for i in {1..10}
 do
    echo -e "AT+CMGS=19\r" > /dev/smd0
    echo -e "0011000C919333143244650000FF05F4F29C1E02" > /dev/smd0
    echo -e "^Z" > /dev/smd0
    sleep 2
done

Этот скрипт отправит 10 сообщений, каждое с интервалом в 2 секунды между ними, создавая достаточно узнаваемый шаблон, как мы увидим позже. Конечно, в реальном сценарии с сотнями пользователей, подключенных к одной и той же базовой станции (BS), может потребоваться еще более отличительный шаблон.

На этом этапе все, что нужно сделать злоумышленнику, — это подключить свой собственный USRP B210 и использовать LTEsniffer для перехвата нисходящего трафика LTE от базовой станции. Как мы упоминали ранее, для этого упрощенного доказательства концепции злоумышленнику необходимо знать, где он ищет жертву. Это означает определение частоты базовой станции, покрывающей данную территорию (или, альтернативно, ее идентификатора). Чтобы решить эту проблему, можно использовать приложение для смартфона, такое как Network Signal Guru, в интересующей зоне, используя SIM-карту того же провайдера, что и жертва.

Гипотетический злоумышленник, прослушав передачи LTE с помощью LTEsniffer в течение достаточного времени, получит файл pcap, содержащий управляющую информацию нисходящего канала (DCI) и временные идентификаторы радиосети (RNTI) всех активных пользователей.

Анализируя эти передачи, они могут определить, присутствует ли жертва в контролируемой зоне. На изображении выше мы видим, что начиная с 17:20 жертва получала пакеты с двухсекундным интервалом (примерно с учетом всех задержек и помех) всего 10 подключений, точно так же, как и шаблон, реализованный скриптом. :Д.

Следует отметить, что полученный RNTI также может быть использован для дальнейших атак.

Следите за будущими работами. Спасибо!

Использованная литература:

https://www.slideshare.net/iazza/dcm-final-23052013полная цензура

https://portal.3gpp.org/desktopmodules/Specifications/SpecificationDetails.aspx?specificationId=747

https://www.ndss-symposium.org/wp-content/uploads/2018/02/ndss2018_02A-4_Hong_paper.pdf

Теги: телекоммуникационные компании SDR USRP LTEsniffer бесшумные SMS