11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом - QubStore

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Привет, хабр. Если вы состоите в более-менее крупных ТГ сообществах, то наверняка замечали, как время от времени в чатах мелькают боты с предложением установить сомнительный APK. Обычно их мгновенно банит антиспам или админ, и на этом всё заканчивается. Правда, пока сообщение ещё висит, взгляд успевает за него зацепиться, и в голове проскакивает «это очевидно скам, но как оно работает?». У меня эта мысль проскочила в дождливый вечер прошлой пятницы, и вот, неделю спустя, я всё ещё смотрю на четыре домена, куда уходят перехваченные банковские коды, и ожидаю хоть каких-до действий от уполномоченных компаний, которые были уведомлены об атаке почти неделю назад.

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

Часть 1: Механизм работы

Началась атака вечером прошлой пятницы — 22го августа. Тогда, практически одномоментно, в кучу бесед стали сыпаться сообщения одинаковой формы, предлагающие установить бесплатный супер VPN

Качаем его, запускаем jadx, иии… Видим, что это лишь первый слой, в котором куча мусорных классов чтобы обойти антивирус, packageInstaller для настоящего вируса, а также обрывки base64, которые разбросаны по всему проекту

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

А также обнаруживаем класс, который поднимает VPN туннель, заворачивает туда соединения определенных приложений, и ставит будильник на ~4 минуты, после чего отключается

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Декодируем Base64, и получаем следующие значения:

com.android.vending, com.google.android.gms, com.kaspersky.android.antivirus, com.kms.free, com.samsung.android.sm, com.samsung.android.sm.policy, com.samsung.android.securitylogagent, com.miui.securitycenter, com.miui.guardprovider

То есть троян отключает сеть всем антивирусам на устройстве, заворачивая их трафик внутрь туннеля, который ведет в никуда.

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

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Декодированные HTML

Из них следует, что приложение «обновляется», просит дать ему доступ к специальным возможностям, затем говорит «Приложение несовместимо с устройством», и якобы удаляется с устройства.

Осталось только понять, что именно оно устанавливает. Натравливаем LLM, чтобы она расковыряла обфусцированные ресурсы, и она возвращается с таким скриптом:

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Отсюда понимаем, ресурсы в assets зашифрованы AES-256 и носят безобидные имена вроде .db, .idx, .cache, .bin, а ключи лежат в .dex файлах, и, по классике, в base64. Открываем config.json, и находим ссылку

https://o3-rc3.akave.xyz/omni/2bb01ddbf2344fc7.bin?X-Amz-Algorithm=AWS4-HMAC-SHA256…

Это и есть основной payload трояна. Можно заметить, что у файла расширение .bin, чтобы вызвать меньше подозрения у компании-владельца бакета. По-сути это просто наивно переименованный .apk. В дальнейших вариациях вирус начнет лучше мимикрировать — под .mp4 файл с реальными байтами mp4-бокса в начале файла.

Приводим этот файл к .apk формату, запускаем jadx, иии… Снова куча обфусцированного кода. Однако злоумышленник допустил ошибку, и зачем-то зашил дебажную сборку в ассеты самого первого приложения, и благодаря этому у нас появилась возможность взглянуть на кишки вируса:

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Из этого мы можем узнать список возможностей:

Кража SMS и звонков банка

  1. становится приложением по умолчанию для SMS (DefaultSmsActivity), читает и отправляет сообщения незаметно (HeadlessSmsSendService, SmsReceiver, MmsReceiver)

  2. команды MSG_SMS_*: список переписок, чтение, отправка, массовая рассылка

  3. перехват одноразовых кодов из банковских SMS

Слежка за экраном и вводом

  1. трансляция экрана в реальном времени: через MediaProjection и через спецвозможности (MSG_VNC_*, MediaProjectionService)

  2. удалённое управление вводом (MSG_VNC_INPUT)

  3. кейлоггер (KeylogService, MSG_KEYLOG_EVENT)

  4. перехват PIN и графического ключа (MSG_SET_PRIORITY_PIN)

Прослушка и съёмка

  1. микрофон (MSG_MIC_*)

  2. камера (MSG_CAMERA_*)

Чтение устройства

  1. контакты (MSG_CONTACTS_*)

  2. файлы: список, скачивание, удаление, превью (MSG_FILE_*)

  3. список и запуск приложений, удаление (MSG_APP_*)

  4. сведения об устройстве (DeviceInfo)

Уведомления

  1. чтение всех уведомлений (NotificationCaptureService)

  2. фейковые уведомления и пуш-события (MSG_FAKE_NOTIFICATION, MSG_PUSH_EVENT)

Скрытность и удержание

  1. прячется из меню приложений, скрытный режим (MSG_STEALTH_MODE_*)

  2. сопротивление удалению (anti_uninstall)

  3. сам выдаёт себе разрешения через спецвозможности (AutoPermissionService)

  4. управление экраном: разблокировка, сон, пробуждение (MSG_SCREEN_UNLOCK/SLEEP/WAKE), чтобы работать, пока жертва не видит

Общается вирус по сокету через свой бинарный протокол, и по возможности может загрузить для себя дополнительные модули:

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Итак, имея всю эту информацию, осталась последняя часть загадки: куда стекаются украденные данные?

Часть 2: Сетевая инфраструктура

Рецепт тот же — берем LLM, даем вилку, и просим почистить обфусцированные исходники и зашифрованные ассеты. На выходе получаем такой скрипт:

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Что ведет нас к очередному конфигу с адресами злоумышленника

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Отсюда мы получаем эндпоинт

/api/v2/device/sync

И список доменов

rocketsmm.ru
cloudmetric.ru
медиатека-ру.рф
облакоплюс.рф

Дергаем whois на каждый из доменов, и получаем

nserver:       ns1.reg.ru.

nserver:       ns2.reg.ru.

state:         REGISTERED, DELEGATED, UNVERIFIED

person:        Private Person

registrar:     REGRU-RU

admin-contact: http://www.reg.ru/whois/admin_contact

created:       2026-08-06T17:47:11Z

paid-till:     2027-08-06T17:47:11Z

free-date:     2027-09-06

source:        TCI

Затем дергаем dig +short A, и получаем адрес VPS, куда утекают данные.

Итого, в атаке задействованы 3 независимых звена:

  1. s3 с основным вирусом

  2. домены, куда отправляются запросы

  3. VPS

Часть 3: Обращения и реакции

Я попытался связаться со всеми тремя звеньями, чтобы остановить атаку. У американских и европейских компаний, чьи хранилища и сервера были задействованы, в среднем занимало несколько часов на расследование, обнуление роутингов и удаление аккаунтов.

В отдельных случаях от письма до удаления проходили буквально минуты:

11 минут у Backblaze, и неделя бездействия у reg.ru: как компании обрубают инфраструктуру трояна в России и за рубежом

Однако злоумышленник поднимал новые хранилища и VPS за считанные часы, и по-сути все это превратилось в кошки-мышки: делается новая сборка смотрящая на новую инфраструктуру, запускается очередная рассылка ботами, атака продолжается.

За это время я разобрал уже 4 разных apk, у которых одна и та же подпись, и которые смотрят на одни и те же домены. И эту атаку не остановить, пока домены, принадлежащие reg.ru активны. Инфраструктура просто пересобирается, а данные новых и ранее зараженных пользователей продолжают утекать. Даже команда телеги, известная свой медлительностью, успела снести канал за несколько дней.

Прошла почти неделя с тех пор, как были отправлены письма в abuse@reg.ru, response@f6.ru, cert@kaspersky.com и incident@cert.gov.ru. Но ответ пришел только от reg.ru:

Согласно законодательству Российской Федерации, регистратор не является лицом, уполномоченным выявлять и квалифицировать акты мошенничества (и иные правонарушения), а также разрешать споры между другими лицами и брать на себя иные полномочия судебных и правоохранительных органов.  Администратор домена самостоятельно осуществляет управление доменом, несёт полную ответственность за материалы, размещённые на его ресурсе, и все связанные с ним действия.Как аккредитованный регистратор мы обязательно примем меры к администратору домена на основании вступившего в законную силу судебного решения или официального запроса организации, уполномоченной Координационным центром национального домена сети Интернет.

Никто, конечно же, ничего в итоге не сделал.

И сюда напрашивается довольно закономерное заключение: европейским и американским компаниям есть дело до утекающих данных россиян, а российским компаниям — нет.

ТГК автора

Ссылка на основную публикацию