«Гражданин, обновитесь»: анализ вредоносной кампании Falcon
(репост с хабра, статьи Алексея Колесника из отдела экспертизы PT Sandbox)
«Обновите приложение». Для большинства пользователей это привычное сообщение, а для хакеров - один из самых надежных и эффективных способ получить контроль над устройством. В этой статье разберем вредоносную кампанию, начавшуюся с apk, замаскированного под российский сервис. То, что сначала выглядело как очередная вариация банковского трояна, при ближайшем рассмотрении оказалось гораздо интереснее.
В огромном потоке файлов очень легко пропустить интересные семплы, но в данном случае мне повезло и глаз зацепился за, казалось, ничем не примечательную, картинку:
Что полезного на ней можно увидеть?
Сработала метка «Формат подделан» и вердикт по ней «apk.tampered». Рекомендую ознакомиться с отличной статьей, которая подробно раскрывает эту вредоносную технику: Beware of BadPack: One Weird Trick Being Used Against Android Devices;
Сохраняются непонятные файлы с расширением .png (файловые дропы);
Загрузка кода в память (dex-дампы);
Название «mir-pay.apk».
Перед тем как начать изучать файл, было выдвинуто предположение, что это еще одна скучная вариация вредоноса Mamont, поскольку имя намекает на известную систему платежей, которая часто встречалась в этом семействе.
Stage 1 - загрузчик
Рассмотрим подробнее образец - 4409052221924df581fb271d27acd7338c0efb5aea593ac811f4ffdb0abed7a6
При просмотре AndroidManifest.xml в jadx виден класс io.immense.gesture.Ipperfluid, который будет запущен перед основным кодом приложения.
Обычно при запуске происходит следующее:
Ставятся обработчики на глобальные исключения, чтобы эксперты могли определять, что пошло не так, и делать исправления;
Проводятся иные подготовительные действия;
Распаковывается код полезной нагрузки.
Полезная нагрузка
В коде данного класса присутствует множество математических вычислений и код сильно отличается от реального кода стандартных приложений. Все это намекает на то, что в этом классе будет происходить распаковка полезной нагрузки.
Также приложение практически не содержит реальных классов. Это точно свидетельствует, что полезная нагрузка была упакована, чтобы сбить обнаружение статическими средствами анализа, а значит нужно ее достать.
Анализировать каждый упаковщик и разбираться в его логике задача очень трудоемкая и скучная, поэтому для распаковки приложения воспользуемся поведенческим анализом в PT Sandbox:
Анализ загрузчика
Первое, что бросается в глаза при анализе – обилие захардкоженных русских слов. Причем самое интересное, что они встречаются не просто в тексте, а в логах.
Есть функционал, который создает уведомление об успешном обновлении приложения, после установки полезной нагрузки:
Внутри одного из Java-классов содержатся ссылки, которые ведут не просто на случайный управляющий сервер, а на вполне популярные и легитимные сервисы:
С таск-трекера Trello скачивается html-файл, который просит обновить приложение при запуске. И вот тут каждому пользователю стоит задумать о том, что за приложение он установил. Подход с фейковым обновлением очень любим во вредоносах под Android по двум причинам.
Он позволяет скрыть реальную вредоносную активность от антивирусных средств;
У пользователя на телефоне появится сразу два приложения, одно из которых часто будет скрыто и не отображено в лаунчере. А значит, пользователь о нем забудет. Как часто вы заходили в настройки телефона и проверяли список установленных приложений, м?
Фишинговая страница с обновлением
А через переадресацию с Яндекс.Метрики на другой таск-трекер скачивается следующая стадия полезной нагрузки:
Забавно, что нагрузки хостятся на сервисах для управления проектами. Управлять малварью действительно тяжело :)
Stage 2 - бэкдор
Рассмотрим apk, которое скачивается на предыдущем шаге.
Можно сразу выделить элементы, которые мы видели на первоначальном разборе:
Непонятные png-файлы (файловые дропы);
Динамически загружаемый код (dex-дамп);
Можно предположить, что используется аналогичная техника для упаковки приложения.
Распаковка полезной нагрузки
Рассмотрим AndroidManifest.xml, видим аналогичный рисунок, как в первой стадии:
По коду класса biz.require.casual.Jsliceturkey можно подтвердить, что используется похожий тип обфускации:
Для экономии времени (и нервов) снова воспользуемся песочницей и скачаем распакованный дамп.
Анализ бэкдора
При открытии распакованной нагрузки сразу видна приятная картинка с красивыми именами, по которым можно выделить основной функционал ВПО. Почему «красивыми»? Да просто глаз ревёрсера обычно радуется при виде отладочных символов, которые легко можно прочитать:
Код нагрузки содержит в себе классический набор техник, который встречается буквально в каждом ВПО под Android в различных комбинациях, поэтому останавливаться детально на каждом классе мы не будем, а подсветим лишь интересные места.
Любопытно, что уже в самой полезной нагрузке присутствует перевод на три языка: английский, русский и украинский.
Сетевое взаимодействие
В интерфейсе продукта можно без глубокого анализа увидеть, что:
определяется информация об IP жертвы;
скачивается файл random_val.txt с dropbox;
отправляются данные на cold-apple[.]com.
При открытии трафика, полученного из песочницы, в Wireshark видна и полезная нагрузка, которая отправляется на управляющий сервер:
Значение api_code захардкоженно, вероятно, по нему сервер понимает, какой RC4-ключ использовать для шифрования или расшифровки отправляемых и получаемых данных:
При расшифке видно, какая конкретно информация отправляется на управляющий сервер:
Trello в качестве хостинга вредоносного ПО
Изучим файлы в Trello, поскольку именно с него скачивалась полезная нагрузка. Не часто встретишь его во вредоносных кампаниях, поэтому исследуем поглубже.
По ссылке из вложения можно получить ссылку на доску:
Обзор карточек
Поглядим, что нам откроется по ссылке.
Открываем карточку «vtb drop» и видим, что полезная нагрузка в ней была создана 28.11.2024 и обновлена 23.03.2025. Это говорит не только о том, что на Trello очень эффективно хостить фишинговые html‑файлы, но и то, что авторы обновляют эти файлы.
Также можно найти две почти похожие версии html‑страниц с фейковым обновлением. Слева на рисунке ниже — html‑файл, который был в исследуемом образце, справа — целенаправленный фишинг на банковское приложение.
Не менее интересна карточка «injects». Судя по списку приложений в названии файлов на скриншоте ниже, становится ясно, что мы имеем дело с таргетированной атакой на пользователей из России (полный список доступен в секции с IOC).
Все фишинговые окна построены схожим образом и нацелены на то, чтобы ничего не подозревающий пользователь передал свои данные злоумышленникам:
Внутри каждого html-файла содержится похожий код, который через webview передается в код приложения и отправляется через бота:
Помимо прочего в html-файлах встречается фишинг, направленный на то, чтобы пользователь дал все необходимые разрешения для «работы» приложения:
Данное разрешение опасно тем, что немногие пользователи знают, что выдача доступа к «Специальным возможностям» фактически предоставляет полный доступ к пользовательской системе. Злоумышленник может полностью считывать информацию с экрана телефона (СМС, звонки, банковские данные и так далее), а также не давать удалить приложение, перехватывая управление.
Поэтому после выдачи этого разрешения обычному пользователю будет очень трудно избавиться от вредоносного приложения со своего телефона.
Активность на доске
Trello позволяет увидеть, кому принадлежит публичная доска, а также посмотреть активность владельца:
Активность пользователя alexsentov говорит о том, что автор(ы) вредоноса регулярно обновляют нагрузки и ведут активность на доске.
Архивные записи
По архивным записям мы увидели, что примерно с 21.02.2025 по 11.08.2025 полезные нагрузки активно загружались на доску таск-трекера:
Вероятно позже злоумышленники решили использовать связку из Яндекс.Метрика и (surprise!) еще одного таск-трекера, YouGile (может, Trello стал удалять образцы, поскольку в них стало обнаруживаться вредоносное ПО), которую и видно в исследуемом образце.
Атрибуция
На данном этапе у нас была уверенность, что мы имеем дело с новой кампанией, но не тут-то было!
Поиск по найденным IOCам приводит к двум упоминаниям похожих образцов от 2022 года из вредоносной кампании Falcon:
Образцы: 2022 vs. 2026
Индикаторы компрометации (IOCs):
4a9851b10361d4efc9657233aedfa3b0a0040ee016cc9891252d838b4e9ce0f2
6f475db05055d2ff4c12568b09bca5d272eaf157edde90fd7755c04d87b4f215
Обфускация
В образцах 2022 года используется тип обфускации, которая отличается от образцов 2026 года.
Cпособ загрузки распакованного кода образца 2026 года также отличается. С помощью Java-рефлексии вредоносный код подменяет системные поля JVM (Java Virtual Machine) для загрузки в память распакованной нагрузки.
Полезная нагрузка: сравнение версий
Отличается набор возможностей, который представлен в прошлой и новой версиях:
Спустя четыре года малварь обросла новыми возможностями:
ActivityRequestVnc - запись экрана пользователя;
ActivityStartMainService - постоянный перезапуск себя, чтобы приложение не было убито в фоне;
AllServiceFaApp - создание скрытого канала уведомлений и перезапуск через alarm;
CallReceiverFaApp - обработка входящих звонков;
DropperReceiverFaApp - запуск фонового сервиса, чтобы приложение не было убито в фоне;
MyMessagingService - обработка входящих СМС;
MyServiceReceiver - постоянный ping сервера с отправкой информации;
OpenRedirectActivity - сбор введенных пользователем данных через JavaScript-интерфейс и их отправка на C&C;
ScreenCaptureServiceFaApp - возможность создавать скриншоты экрана;
WhiteActivity - «окирпичивание» телефона посредством открытия произвольной HTML-страницы поверх экрана блокировки.
Как видите, со временем функционала у малвари стало больше и, что самое важное, он стал опаснее для конечного пользователя, так как теперь злоумышленники могут в любой момент получить полную информацию с телефона жертвы, а при необходимости забрать полное управление над устройством посредством «Специальных возможностей».
Помимо прочего, коллеги из Cyble упоминают URL вида /api/api.php?get_lend=, который сохранился в версии 2026 года:
Совокупность вышеперечисленных факторов позволяет нам атрибутировать найденные образцы к Falcon: начиная с характерной цепочки атаки и заканчивая индикаторами компрометации. И как видим, хищник из расследования четырёхлетней давности становится всё более грозным и опасным.
Work In Progress
В процессе изучения этой кампании нам удалось получить свежие вариации этого семейства.
В мае этого года злоумышленники стали использовать в качестве хостинга полезной нагрузки уже другой отечественный сервис управления проектами.
По данным с Virustotal, файлы были загружены недавно (на момент написания этого материала). Примечательно, что имя скачиваемого вредоносного файла содержит названия популярных банков, поэтому в файловом менеджере пользователь может не заметить ничего необычного.
В свежих образцах используется новый вариант обфускации, который ранее не встречался в этом семействе.
При анализе полезной нагрузки, видна уже доработанная нагрузка с новыми классами PatternActivity и PinActivity:
Оба класса практически идентичны, создают фейковые экраны ввода PIN-кода или графического пароля, которые затем сохраняются локально на устройстве.
Помимо прочего, перед скачиванием нагрузки видно, что авторы стали использовать трекер от Mail.ru, вместо AppMetrica, как это было раньше:
Лето хакеров не останавливает и в июне авторы вредоноса продолжают активно его дорабатывать, расширяя функционал и экспериментируя с новыми видами фишинговых страниц. Появились новые фишинговые страницы, новые версии окон с вводом PIN-кода, графического пароля.
Также в новых версиях загрузчиков появилось шифрования строк, чтобы обойти детектирование антивирусными средствами:
А на Trello появилось больше карточек с расширенным набором артефактов:
Думаю, впереди нас ждет много интересного, и мы с коллегами продолжаем наблюдать. А ведь всё началось с того, что некий сомнительный образец просто попал в нашу песочницу...
Заключение
Все чаще обнаруживаются атаки, которые направлены конкретно на российских пользователей: Mamont, АИ-95 с вредоносной присадкой.
Общие рекомендации пользователям:
Не скачивать приложения с недоверенных ресурсов: случайные сайты, мессенджеры и т.п. лучше обходить стороной;
Даже если ресурс «легитимный» не стоит доверять на 100% тому, что было скачано с него, на них тоже могут располагаться вредоносные файлы;
Лучше перестраховаться и удалить приложение, которое сразу после установки запрашивает множество разрешений и требует обновиться для якобы корректной работы;
Ни в коем случае не выдавайте разрешение для доступа к «Специальным возможностям» устройства, это самая вкусная часть, за которой охотятся злоумышленники.
Иногда именно одно необдуманное нажатие кнопки «Обновить» становится первым шагом к полной компрометации устройства.

















































