Нашёл на просторах интернета интересную статью: Трояны и бэкдоры в кнопочных мобильных телефонах российской розницы. Интересных и полезных моментов масса...
Немалое количество простых кнопочных телефонов, присутствующих в российских магазинах, содержат нежелательные недокументированные функции. Они могут совершать автоматическую отправку СМС-сообщений или выходить в интернет для передачи факта покупки и использования телефона (передавая IMEI телефона и IMSI SIM-карт). Встречаются модели со встроенным трояном, отправляющим платные СМС-сообщения на короткие номера, текст которого загружается с сервера, также бывают устройства с настоящим бэкдором, пересылающим входящие СМС-сообщения на сервер злоумышленников.
Статья описывает детали вредоносных функций и способы их обнаружения.
Введение Исследование мобильных телефонов началось с простой идеи: можно ли использовать эти дешевые и доступные в любом магазине трубки для приёма СМС-сообщений на компьютер? Телефоны гораздо дешевле распространённых USB GSM-модемов, к тому же большинство моделей поддерживают 2 SIM-карты, а некоторые и до четырёх.
В силу почти полного отсутствия информации о наличии и возможностях AT-порта в современных телефонах, я решил купить несколько максимально разных устройств для проверки их функциональности.
Но как выбрать по-настоящему разные телефоны?
Три кита мобильных SoC
Существует три основных производителя систем-на-чипе для кнопочных звонилок:
Каждый производитель чипов предоставляет свой SDK для разработки прошивок на его основе. SDK разных производителей разительно отличаются и, как правило, пишутся под конкретную линейку чипов и задачу. Функции конечного устройства также зависят от операционной системы: SDK может быть интегрирован в ОС реального времени через HAL.
Не обязательно покупать десятки и сотни телефонов для проведения полноценного тестирования: достаточно купить несколько моделей разных производителей SoC и с разными операционными системами.
Что я купил и что получил
Были куплены почти случайные телефоны, ориентируясь по визуальной составляющей интерфейса на фотографиях и в видеообзорах и немногочисленной информации о SoC в интернете:
Inoi 101 (RDA8826/SC6533, 600₽)
DEXP SD2810 (SC6531E, 699₽)
Itel it2160 (MT6261, 799₽)
Irbis SF63 (SC6531DA, 750₽)
F+ Flip 3 (SC6531DA, 1499₽)
Довольно быстро я осознал, что с телефонами что-то не так…
Классификация нежелательных функций Вредоносную активность телефонов можно разделить на три категории:
1. Отправка СМС и выход в интернет для «отслеживания продаж»
Наиболее безобидная функция, не наносящая значительный материальный урон мобильному счёту. Устройство без ведома пользователя отправляет СМС (на обычный российский номер) или выходит в интернет, передавая IMEI-номер телефона и IMSI SIM-карты неустановленной организации или частному лицу. Передача данных осуществляется либо один раз до сброса устройства в заводское состояние, либо после каждого извлечения аккумулятора.
2. Троян, отправляющий СМС на платные (короткие) номера, предварительно загрузив текст и номер с сервера через интернет
Функция, систематически списывающая средства со счёта мобильного номера. Помимо частого автоматического и скрытного выхода в интернет (что само по себе расходует деньги на не-пакетных тарифах), мобильное устройство отправляет отдельно тарифицируемые СМС-сообщения на короткие номера, перехватывает подтверждающую СМС и отправляет текст подтверждения в ответ.
3. Бэкдор, перехватывающий входящие СМС-сообщения и отправляющий их на сервер
Позволяет злоумышленникам использовать ваш номер телефона для регистраций на сервисах, требующих подтверждения через СМС. Телефон периодически выходит в интернет и получает команды с сервера, результат выполнения которых отправляется обратно на сервер.
Методы обнаружения и анализа вредоносной активности
Проверка детализации мобильного оператора — способ, доступный любому человеку. Достаточно вставить рабочую SIM в телефон, включить его и оставить лежать полные сутки, после чего запросить детализацию в виде файла через онлайн-кабинет мобильного оператора. Данный метод позволяет выявить факт выхода в интернет (без адресов хостов и передаваемого содержимого), факт отправки СМС-сообщения и номер получателя, точное время совершенных действий.
Детализация помогает легко понять, содержится ли в телефоне нежелательная функциональность, без подробностей.
Анализ прошивки телефона — затратный метод, требующий глубоких познаний в устройстве телефона и способах обратной разработки ПО, зато позволяющий детально проанализировать вредоносные функции прошивки, а также избавиться от них.
Анализ прошивки состоит из трёх этапов:
1. Получение дампа из телефона или поиска и скачивания прошивки в интернете
2. Распаковки сжатых частей прошивки при необходимости
3. Исследования кода прошивки вручную
Самый простой и универсальный, но затратный или опасный способ дампа прошивки — использование так называемых «боксов» — аппаратно-программных комплексов от сторонних разработчиков для прошивки и восстановления широкого модельного ряда телефонов. Лет 15 назад боксы были распространены и востребованы, т.к. у каждого производителя телефонов был свой кабель, свой метод подключения к компьютеру в режиме сервисного обслуживания, часто требовалось подключение к контактным панелям (падам) в аккумуляторном отсеке. Современным телефонам такое, как правило, не нужно, и актуальные «боксы» представляют собой лишь особое ПО, способное производить все действия через USB-подключение.
Для снятия прошивки я воспользовался взломанной версией Miracle Box. Чтобы модификации, сделанные крякерами, нельзя было легко посмотреть путём сравнения оригинального и измененного файла, на взломанную версию навешан Enigma Protector, прямо поверх VMProtect, который используется в оригинальном ПО. Из-за этого программа запускается около минуты и тормозит на отрисовке кнопок и компонентов при переключении вкладок.
Взломщики не озаботились отключением интернет-функций программы, что позволило авторам выявлять использование взломанной версии и, по всей видимости, выполнять произвольный код на компьютере пользователя: в окне лога появляются устрашающие надписи о сборе и отправке всех сохранённых паролей на сервер.
Преимущество подобного ПО в полной автоматизации процесса: программа сама определит конкретную модель процессора, адрес флеш-памяти и её размер. Некоторые боксы содержат встроенные эксплоиты для обхода Secure Boot и других подобных защит.
Существуют и альтернативные варианты получения дампов. Для чипов Mediatek можно воспользоваться официальной программой MTK Flash Tool, в которой есть функция чтения произвольного адреса памяти, а для RDA можно воспользоваться готовым скриптом, позволяющим прочитать в т.ч. оперативную память. Официального ПО для Spreadtrum найти не удалось.
Камни не исполняют желаний. Их исполняем мы сами, четко следуя однажды выбранному пути. - майор Кальтер - Свинцовый закат
Для распаковки прошивки основного раздела ALICE чипов Mediatek можно воспользоваться сторонней разработкой unalice, разжимающий файл: https://github.com/donnm/mtk_fw_tools/
Про работу с прошивками RDA я уже писал в статье «Мелкая доработка прошивки кнопочного телефона на платформе RDA8826 (SC6533, MIPS): отключаем Funbox, взламываем игры». Самый простой способ — дать распаковать всё самому телефону, после чего извлечь распакованные данные из оперативной памяти прямо во время работы телефона.
На Spreadtrum основная часть прошивки сжата модифицированным LZMA, распаковщик к которому отсутствует в публичном доступе. Для распаковки необходимо модифицировать несжатый код таким образом, чтобы он выполнил распаковку аппаратным устройством и передал распакованный код на компьютер, но на моём единственном устройстве порт UART был настроен на DSP, а не основной процессор, и переключить мне его не удалось. Можно было задействовать другие методы вывода (например, воспользовавшись динамиком или фонариком в качестве транспорта), но я не стал этого делать.
Базовая станция 2G — удобный и лёгкий в настройке метод массового практического анализа вредоносной активности без предварительной подготовки каждого устройства, однако требующий значительных капитальных затрат на покупку SDR-оборудования. Метод даёт доступ ко всему сетевому трафику GSM/GPRS, с возможностью его просмотра и модификации на лету.
Моя конфигурация:
bladeRF x115 ($650)
Raspberry Pi 400 ($100)
Открытое и бесплатное ПО базовой станции YateBTS
Wireshark для анализа GSM и интернет-трафика
BladeRF питается от USB и не требует никакой дополнительной обвязки. Достаточно обычной дипольной антенны для начала работы. YateBTS автономно реализует все компоненты GSM-стека, благодаря чему устанавливается и настраивается буквально за 30 минут. Отлично подходит для подобных исследований!
Телефоны
Первое и самое «чистое» купленное устройство — Inoi 101, о котором я уже писал отдельную заметку
Этот телефон не содержит вредоносных функций. Присутствуют типичные нежелательные вещи вроде меню СМС-подписок и платные игры, но устройство не выполняет какие-либо действия самовольно или скрытно.
Itel — китайский производитель, выпускающий устройства для развивающихся стран. Входит в холдинг Transsion, объединяющий бренды Tecno, itel, Infinix, Spice.
Модель Itel it2160 сообщает «о продаже» через интернет, без предупреждения.
На домене asv.transsion.com была найдена панель, содержащая информацию о проданных устройствах, которую они сами присылают на сервер:
IMEI
Страна
Модель
Версия прошивки
Язык
Время активации
Идентификатор базовой станции (LAC/TAC)
Идентификатор базовой станции позволяет определить местоположение телефона с точностью до ≈5 километров.
Адрес панели: asv.transsion.com:8080/openinfo/open/index
Flip 3 российского OEM-поставщика F+ сообщает «о факте продажи» через СМС на номер +79584971255, отсылая IMEI и IMSI в теле сообщения. Не содержит браузера, не выходит в интернет.
Отправка сообщения с IMEI и IMSI на номер 79584971255
Декомпиляция прошивки выявляет наличие других номеров телефонов для ряда стран: +92313568243 для Пакистана (PLMN 410), +8804445600006 для Бангладеша (PLMN 470), 18049479956 для Азербайджана и Казахстана (PLMN 400, 401), +9156767215 для Индии (PLMN 404, 405).
Код
_BYTE *__fastcall gmb_sms_sales_get_phone_number(int *plmn, int number_, int text_) { int text; // r2 char *number; // r1
MEMORY[0x10041098](number_, text_); if ( plmn == (int *)410 ) { text = text_; number = "+92313568243"; } else if ( (int)plmn > 410 ) { if ( (int)plmn - 410 <= 50 || plmn != (int *)470 ) goto LABEL_17; text = text_; number = "+8804445600006"; } else { if ( plmn == (int *)400 ) { LABEL_17: text = text_; number = "18049479956"; return sub_10324500(number_, (unsigned __int8 *)number, text); } if ( (int)plmn > 400 ) { if ( plmn == (int *)401 || plmn != (int *)404 && plmn != (int *)405 ) goto LABEL_17; text = text_; number = "+9156767215"; } else { if ( plmn != (int *)250 ) goto LABEL_17; text = text_; number = "+79584971255"; } } return sub_10324500(number_, (unsigned __int8 *)number, text); }
В тексте СМС помимо IMEI и IMSI передаются три константы, по всей видимости означающие модель телефона и номер партии (дату производства):
После включения, аппарат отправил некое СМС на номер 9584971255. Скорее всего, верну аппарат обратно в магазин.
Подтверждаю. Телефон сам отправил смс на этот номер +79584971255. Списалось 2 рубля, сотовый оператор у меня МТС. В телефоне по умолчанию не сохраняются СМС, если это не настроить. Увидел списание в детализации счета. После сброса к заводским настройкам телефон опять отправил смс на этот номер, списалось ещё 2 рубля. Пришёл ответ от поддержки, что они о таком в первый раз слышат. Несмотря на то, что я указал о таком же случае у другого владельца, отправив их сюда прочитать отзыв. Они не захотели разбираться, предположив, что я сам случайно отправил смс или это отправилось смс предыдущего человека, который смотрел телефон.
На 4pda были обнаружены архивы прошивок от нескольких моделей фирмы BQ, которые очень похожи на прошивки F+. Судя по всему, это не перепакованный архив прошивки от OEM-производителя, содержащий помимо самой прошивки еще и файлы, необходимые для её отладки. В частности, в архивах содержится прошивка в виде .elf-файла, без сжатых секций, с отладочными символами.
Открыв .elf-файл в IDA, мы можем увидеть оригинальные названия функций и переменных.
Функция отправки СМС называется gmb_sms_sales_send_sms_ext, где gmb — вероятно, gmobi — поставщик сервиса смс-подписок.
Я попытался получить подробности об этой функциональности у производителя. С компанией F+ состоялся следующий диалог:
Кнопочный телефон F+ Flip 3 в автоматическом режиме и незаметно для пользователя отправляет СМС-сообщения на номер +79584971255 при установке в него российских SIM-карт, причём отправленное СМС-сообщение не сохраняется в памяти телефона. Сообщения содержат IMEI-номер устройства, IMSI-номер SIM-карты, и три фиксированных значения. … Полный формат сообщения следующий: #IMSI#IMEI#250124#64#1# Где IMSI — IMSI-номер SIM-карты, IMEI — IMEI-номер телефона.
С какой целью данная функциональность внедрена в устройства F+? >>> Нет информации.
Почему о ней не заявляется на официальном сайте, коробке или инструкции устройства? >>> Потому что этот функционал внедрён не нашими инженерами.
Как обрабатываются полученные данные? >>> Нет информации.
Какому юридическому или физическому лицу принадлежит номер +79584971255? >>> Нет информации.
03.06.2021: Мы занимаемся решением данной проблемы. На новых ревизиях с новой прошивкой такой проблемы нет. Однако новая прошивка несовместима со старой ревизией телефонов. Как только в сервисе появится новая прошивка для старых ревизий я Вам сообщу.
15.06.2021: В сервисный центр поступила прошивка SW06 в которой решена эта проблема, обратитесь в ближайший сервисный центр из списка по ссылке https://fplusmobile.ru/support/ для перепрошивки Вашего телефона.
На просьбу выложить обновлённую версию прошивки в открытый доступ получил отказ и игнорирование дальнейших вопросов.
От BQ, прошивки которых я проанализировал и нашел подобную функциональность (отправка СМС на +79629511090), получил только совет обратиться в сервисный центр, с игнорированием дальнейших вопросов.
Камни не исполняют желаний. Их исполняем мы сами, четко следуя однажды выбранному пути. - майор Кальтер - Свинцовый закат
DEXP SD2810 от российского бренда сети магазинов DNS. Опасный телефон, расходующий деньги мобильного счёта.
• Не содержит браузера, но подключается к GPRS • Сообщает «о продаже» через интернет, без предупреждения • Передаёт IMEI, IMSI • Обращается к CnC в интернете и выполняет его команды • Отправляет платные СМС на короткие номера с текстом, полученным с сервера
Телефон периодически отправляет POST-запросы по незашифрованному HTTP-соединению на домен www.mgs123.com, выполняет ответы сервера на отправку СМС-сообщений.
<?xml version="1.0"?> <smtinfo> <BCMD>GetFeeConfig</BCMD> <FNUM>4169</FNUM> <CREP>2</CREP> <INTV>6000</INTV> <FMON>-1</FMON> <CTAG>1</CTAG> <INFO>null</INFO> <FAUTO>0</FAUTO> <FMONEY>50.0RUB</FMONEY> <KCON>Оплата услуги на 4169%7C88001000633</KCON> <FTAG>sms</FTAG> <GRABSMS>2</GRABSMS> <FMAX>0</FMAX> <CCON>Отправьте 2 в ответ на данное</CCON> <BSCO>1</BSCO> <FPRICE>50.0</FPRICE> <FNXT>45</FNXT> <FSHD>1</FSHD> <FINT>171</FINT> <ISTWO>0</ISTWO> <DATE>20210815</DATE> <FFOC>1</FFOC> <FCON>gooo mgs</FCON> </smtinfo>
Сервер сообщает, на какой номер отправить СМС (директива FNUM, номер 4169), содержание или префикс сообщения (директива FCON, сообщение gooo mgs), а также, помимо всего прочего, ожидаемый ответный текст (CCON, "Отправьте 2 в ответ на данное") и текст ответной СМС (GRABSMS, "2").
Домен www.mgs123.com зарегистрирован в Китае, хостинг тоже находится в этой стране:
$ whois 121.201.57.203 | grep descr descr: Guangdong RuiJiang Science and Tech Ltd. descr: Room 404 ,No.100, Lingnan Avenue North, descr: Lingnan Building, Foshan, GuangDong, descr: CNC Group CHINA169 Guangdong Province Network descr: Addresses from CNNIC(HUANDAO)
Выдержка из новости "Новокузнечанин купил телефон со встроенной «функцией разорения счёта»":
02.01.2019, мы приобрели телефон Dexp SD2810 [...] в день покупки мы вставили сим-карты и спустя 2 часа со счёта произошло списание денежных в размере 50 рублей. По детализации я увидел, что была отправка смс на номер 4446 и заказан какой-то развлекательный контент [...]
15.01.2019 и 02.02.2019 также были отправлены смс на этот же номер 4446 и списано по 50 р. за каждую.
DEXP не ответил на запрос о вредоносной функциональности.
Модель SF63 от российского OEM-поставщика Irbis. Опасный телефон, использующий номер вашего телефона в коммерческих целях, для регистрации сторонних лиц в интернет-сервисах.
• Не содержит браузера, но подключается к GPRS • Сообщает «о продаже» через интернет, без предупреждения • Передаёт зашифрованные данные на сервер • Обращается к CnC в интернете и выполняет его команды
Этот «бабушкофон» шёл из магазина с «чистой», обновлённой прошивкой. В интернете для этой модели была найдена одна единственная версия "IRBIS_SF63_GC9106_CTC_V05_GSM_FM_20181010.pac", которая и была установлена на устройство. Она оказалась с бекдором.
Телефон, как и в случае с DEXP, отправляет POST-запросы по HTTP, но эта модель шифрует передаваемые данные собственным алгоритмом с, по всей видимости, фиксированным ключом — шифрованные параметры большую часть времени одинаковы, а если меняются, то незначительно.
Выдержка из заметки "Бабушкофон ворующий смс и телеграм-аккаунты"
Началось все 24 октября 2020 года. [...] телефон радостно прислал мне уведомление, что новый контакт зарегистрировался в телеграм. Сон как рукой сняло ибо в телеграме зарегистрировалась бабушка моей девушки.
Выдержка из заметки "Как получить доступ к смс любого номера или Билайн пробивает дно"
Сегодня приходит сообщение в телеграмме, что моя бабушка теперь в Telegram! Я сильно удивился, ведь бабушке уже больше 80 лет, телефон кнопочный, без доступа в интернет. Позвонил ей, уточнил, говорит, что недавно приходил смс-код от номера Telegram.
Скриншот диалога с зарегистрированным в Telegram номером телефона. На том конце сообщают, что номер куплен на сайте numbersell.com
Результаты 4 из 5 телефонов содержат незадекларированную функциональность, из них:
• 2 модели расходуют деньги со счёта (отправляют данные после покупки через СМС/интернет); • 1 модель выходит в интернет и отправляет платные СМС-сообщения на короткие номера; • 1 модель пересылает входящие сообщения через интернет.
Кто виноват?
Прежде всего виноват бренд, под которым продаются телефоны. Бренд заказывает разработку самого устройства и прошивки для него у OEM-производителя, но не проверяет конечное устройство на наличие незадекларированных возможностей. По какой-то причине, многие бренды не выкладывают прошивку на сайт, а отправляют обновлять устройство в сервисный центр в случае проблем.
Бренды F+ и BQ отрицают проблему или умалчивают о ней.
OEM-производитель готов внедрить любой каприз бренда или производителя сторонних модулей, за ваши же деньги.
Отсутствие в России специализированного министерства, которое бы занималось подобными проблемами. Минцифры (бывший Минсвязи) проверяют только сертификацию продукции на соответствие мировым и российским стандартам связи, но не функциональность конечного устройства.
Минцифры порекомендовало обращаться в Роспотребнадзор, перенеся проблему в плоскость продавец-покупатель.
Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации [...] рассмотрело Ваше обращение о производителе оборудования ООО «Ф-Плюс Мобайл» и сообщает следующее.
Согласно Положению, Минцифры России осуществляет функции по выработке и реализации государственной политики и нормативно-правовому регулированию в сфере связи [...]
Информируем, что средства связи, указанные в Вашем первоначальном обращении, прошли процедуру обязательного подтверждения соответствия Правилам применения оборудования радиодоступа. [...]
Следует отметить, что в соответствии с Правилами при декларировании телефонных аппаратов для сетей подвижной радиотелефонной связи проверка наличия или отсутствия отправки коротких сообщений в автоматическом режиме не предусмотрена.
Федеральный государственный надзор в области защиты прав потребителей осуществляется уполномоченным федеральным органом исполнительной власти – Федеральной службой по надзору в сфере защиты прав потребителей и благополучия человека (Роспотребнадзор).
Что делать?
Мобильных телефонов огромное количество, проверить их все невозможно.
Покупайте только проверенные мировые бренды: телефоны Nokia не содержат вредоносной функциональности, но и стоят в 2-4 раза дороже «отечественных» аналогов;
Читайте отзывы перед покупкой: лучше купить проверенную модель, давно присутствующую на рынке, с безупречной репутацией, чем рисковать с новинками;
Отслеживайте поведение нового телефона после покупки в течение суток, по детализации оператора;
Пишите в Роспотребнадзор, ФСБ (?) и производителю, если обнаружили непонятную активность.
…а что с приёмом СМС?
Ни один из купленных телефонов не предоставляет полноценный AT-порт через USB или Bluetooth. Чтение SMS-сообщений с компьютера не реализовано нигде.
Источник - habr.com/ru/post/575626/
Камни не исполняют желаний. Их исполняем мы сами, четко следуя однажды выбранному пути. - майор Кальтер - Свинцовый закат
Приветствую тебя гость! Что-бы иметь более широкий доступ на сайте и скачивать файлы, советуем вам зарегистрироваться, или войти на сайт как пользователь это займет менее двух минут.Авторизация на сайте