Поддержка
Круглосуточная поддержка

Позвоните

Бесплатно по России:
8-800-333-79-32

ЧаВо | Форум

Ваши запросы

  • Все: -
  • Незакрытые: -
  • Последний: -

Позвоните

Бесплатно по России:
8-800-333-79-32

Свяжитесь с нами Незакрытые запросы: 

Профиль

Профиль

Android.Phantom.2.origin

Добавлен в вирусную базу Dr.Web: 2025-10-18

Описание добавлено:

SHA1-хеши:

  • 3b9338986f0f7fc50d77a783f4245bc1625343f0 (com.yippo.ai version 1.3.5 «Creation Magic World»)
  • c8466dd1f57bb38a984b3adb7a7e6a7c9f20fba3 (com.yippo.ai version 1.3.6 «Creation Magic World»)

Описание

Некто от лица разработчика SHENZHEN RUIREN NETWORK CO., LTD выпустил несколько приложений. По геймплею все они являются клонами популярных мобильных игр:

  • Creation Magic World — песочница, напоминающая майнкрафт. Легко узнаваемый кубический мир со схожими механиками;
  • Cute Pet House — игра по принципу тамагочи, где требуется ухаживать за мультяшным питомцем;
  • Amazing Unicorn Party — тоже тамагочиподобная игра с единорогами;
  • Академия мечты Сакура — симулятор жизни школьников в аниме-стиле;
  • Theft Auto Mafia — имитация серии GTA, симулятор жизни криминальных элементов;
  • Open World Gangsters — как и пример выше, песочница с преступниками всех мастей.

В первоначальных версиях вредоносного ПО не было. 28/29 сентября в игры встраивают Android.Phantom.2.origin. 15/16 октября после обновлений появляется Android.Phantom.5. Пример типичного инжекта для приложений на примере Creation Magic World:

#drweb

Android.Phantom.2.origin активизируется при запуске приложения, в тот момент, когда владелец устройства кликает по иконке. Сначала Android.Phantom.2.origin создает задачу java.util.TimerTask для выполнения регулярных запросов к управляющему серверу hxxps[:]//playstations[.]click. Эта задача выполняется параллельно с приложением, в остальное время она неактивна.

Передача данных между троянцем и сервером дополнительно защищена при помощи шифрования AES в режиме ECB. Ключ к шифру в формате base64 выглядит так: ZDgyNjEhKDk1RjBjYzExZUVAODE5XzUyNDA4QmEyNWI=.

Затем Android.Phantom.2.origin проверяет возможность использовать WebRTC. В троян встроена возможность действовать использовать два сценария: signaling и phantom. Данная проверка покажет, как троян будет действовать дальше. Программа проверяет ряд характеристик смартфона на соответствие требованиям:

  • минимум 4х ядерный процессор;
  • версия ОС Android 13 или новее;
  • доступен класс org.webrtc.PeerConnectionFactory:
  • выполняется одно из следующих условий:
    • класс org.webrtc.EglBase, доступен метод create;
    • класс org.webrtc.EglBase$-CC, доступен метод create;
    • класс org.webrtc.EglBase$CC, доступен метод create.

Указанные выше классы не являются частью стандартного набора инструментов и библиотек, входящих в Android SDK. В играх из магазина приложений GetApps этих классов нет. Поэтому трояну необходимо загрузить недостающую для работы с WebRTC библиотеку другим путем. Например, через троянца Android.Phantom.5, который также встроен в исследуемое приложение.

Если устройство отвечает этим требования, то Android.Phantom.2.origin отправляет POST-запрос на адрес hxxps[:]//dllpgd[.]click/api/signaling/check-plugin-start. Параметры запроса на сервер:

JSON объект, параметр atom:

Параметр Тип Описание
deviceId String ID устройства
deviceInfo DeviceInfo Информация об устройстве
version long Версия
appPackageName String Имя пакета приложения
appVersion String Версия приложения
gaId String Google Analytics ID
sessionId String ID сессии
appChannel String Канал приложения
pluginInfos Array Список информации о плагинах
isGeneratedBySubProcess Boolean Флаг генерации подпроцессом

DeviceInfo:

Параметр Тип Описание
timezone String Часовой пояс устройства
locale String Локаль устройства
phoneTimestamp long Метка времени телефона
phoneModel String Модель телефона
androidVersion String Версия Android

Ответ сервера определяет сценарий дальнейшего заражения:

  • SDK signaling будет применен, если троян получит ответ с параметром run: true в JSON объекте.
  • SDK phantom используется, если устройство технически не соответствует варианту signaling, или от сервера не получен положительный ответ.

Оба SDK имеют общий принцип действия. Они загружают заданные злоумышленниками сайты в WebView вместе с JavaScript кодом для симуляции действий пользователя. Также троян добавляет JavaScriptInterface «apicmob». Он дает следующие возможности коду, выполняемому в WebView:

  • screenshot()— скриншот сайта в base64, использует виртуальный экран;
  • scroll(px, py, p2x, p2y, duration) — скролл с заданной скоростью;
  • setConfig(s, s1) — сохранить JSON строку s в памяти;
  • getConfig()— получить сохраненный JSON;
  • getGAID()— получить рекламный ID;
  • isSignaling()— используется ли signaling sdk;
  • setTime(t) — сохранить timestamp;
  • touch(x, y) — симуляция кликов по экрану;
  • updateSignalStatus(s) — статус выполнения задачи;
  • upload_event(s) — загрузить информацию о событии на сервер;
  • upload_log(s) — отправить лог на сервер.

Signaling way

#drweb

Задачи для этого сценария действий Android.Phantom.2.origin получает по адресу hxxps[:]//playstations[.]click/h5/get_job_by_offer. Signaling SDK подключается к серверу сигнализации WebRTC по протоколу WebSockets wss[:]//dllpgd[.]click/signaling_ws. Для установления соединения между узлами WebRTC использует данные ICE сервера:

  • turn:101.36.120[.]3:3478 user:wumitech pass:wumitech.com@123
  • turn:106.75.153[.]105:3478 user:wumitech pass:wumitech.com@123

Затем Android.Phantom.2.origin транслирует злоумышленникам видео с виртуального экрана, на котором размещает WebView с загруженным сайтом. Вместе с целевым сайтом в WebView загружается JavaScript с адреса hxxps[:]//playstations[.]click/h5/js_file_for_signaling. Для удаленного управления загруженным в WebView контентом, по DataChannel WebRTC приходят команды в формате JSON:

  • «click» — кликнуть,
  • «close» — отключить трансляцию,
  • «drag» — перетащить из точки 1 в 2,
  • «dragEnd» — перетащить из точки 1,
  • «dragStart» — перетащить в точку 2,
  • «goBack» — перейти назад в WebView,
  • «keyInput» — ввод с клавиатуры,
  • «paste» — вставить текст в поле для ввода с помощью JS.

Если при выполнении какой-либо из этих команд происходит ошибка, троян отправляет отчет об ошибке в DataChannel WebRTC. Это позволяет отслеживать ошибки и реагировать на возникновение проблем.

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

Phantom way

Если смартфон не отвечает условиям проверки, или в приложении нет необходимой библиотеки для связи по стандарту WebRTC, или сервер не дал команду работать в режиме signaling, то Android.Phantom.2.origin использует по умолчанию режим работы phantom SDK. Задачи троянец получает с сервера hxxps[:]//playstations[.]click/phantom/task. Троян загружает модель для фреймворка TensorFlowJS по ссылкам:

  • hxxps[:]//app-download[.]cn-wlcb[.]ufileos[.]com/dllpgd_plugin/ai_model/js_v3/model[.]json,
  • hxxps[:]//app-download[.]cn-wlcb[.]ufileos[.]com/dllpgd_plugin/ai_model/js_v3/group1-shard1of2[.]bin,
  • hxxps[:]//app-download[.]cn-wlcb[.]ufileos[.]com/dllpgd_plugin/ai_model/js_v3/group1-shard2of2[.]bin,

в директорию jv3 в файлах приложения.

Троянец содержит специальный WebViewClient, который дает возможность JavaScript коду загружать файлы из директории jv3 приложения. Пример ссылки для загрузки модели, которая может быть использована в JavaScript коде: /apicmob_tf_model/model.json.

Затем Android.Phantom.2.origin обращается по адресу hxxps[:]//playstations[.]click/phantom/file. Отсюда скачивается файл JavaScript, который содержит все необходимые функции для работы модели и взаимодействия с веб-страницей: фреймворк TensorFlowJS, логику загрузки файлов модели, логику выполнения кликов и других действий на сайте. SHA-1 дешифрованного файла: sha1:654b3dd6f39cfd1bd7bcd34dc41bfa6e4b55a696. Этот файл JavaScript загружается одновременно с другим контентом целевого сайта, что позволяет JS выполнять действия на страницах. Интерфейс apicmob позволяет делать скриншоты, которые скрипт анализирует через TensorFlowJS в сценариях, когда необходимо найти кнопку закрытия всплывающей рекламы Vignette Ad. Например, троян запускает этот анализ когда не может обнаружить объект для клика другими методами.

#drweb

Фрагмент кода с вызовом функции, использующей TensorFlowJS

#drweb

Пример перехваченной задачи для phantom way:


task  Expand source 
{ad_page_bounce_rate: 0.211,
anchor_close_ctr: 0.0897,
content_type: "game",
cookie_confirm_xpaths: ["//div[text()='Privacy Information']/following-sibling::div/*",
"//button[contains(translate(text,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'accept all cookies')]",
"//*[contains(translate(@aria-label,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'cookie')]//*[contains(translate(@aria-label,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'close')]",
"//div[contains(@class,'ecomsend__Modal__CloseButton')]",
"//div[@class='fc-consent-root']//button[contains(@class, 'fc-button') and (contains(@class, 'fc-cta-do-not-consent') or contains(@class, 'fc-cta-consent'))]",
"//*[@id='userAgree']",
"//*[contains(@class,'cookie-notification-bar__accept') or contains(@id,'banner-accept')]",
"//div[contains(@class,'needsclick')]//button[@aria-label='Close dialog']",
"//*[contains(@aria-labelledby,'cookie')]//*[contains(text(),'Agree')]",
"//*[@data-cookie-set='accept']",
"//button[contains(translate(text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'allow all cookies')]",
"//*[contains(@class,'cookie') or contains(@class,'consent') or contains(@id,'cookie') or contains(@id,'consent')]//*[contains(@class,'accept') or contains(@id,'accept')]",
"//*[contains(@*,'acceptCookies')]",
"//div[@id='questions-interstitial']//span[@data-bs-dismiss='modal']",
"//*[contains(text(),'cookie')]/..//*[text()='OK']",
"//*[text()='We Value Your Privacy']/..//*[text()='Accept']",
"//*[contains(@class, 'cookie-confirm')]//*[contains(@id, 'confirm')] | //*[@aria-label='Aceptar']",
"//*[@id='onetrust-accept-btn-handler']",
"//div[@aria-label='privacy banner']//button[@aria-label='Accept All']",
"//div[@id='CookieDialog']//span[text()='Got it']",
"//*[contains(@id,'Cookie')]//*[text()='Allow all']",
"//*[contains(@id,'cookies')]//*[contains(@class,'accept')]",
"//*[contains(text(),'cookie')]/..//*[@id='truste-consent-button']",
"//button[@id='accept-cookies']",
"//div[@id='hcpModal']//a[text()='YES']",
"//*[@class='cky-consent-bar']//*[translate(@aria-label,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='close']",
"//button[@data-cookiedays]",
"//div[@class='bx-wrap']//button[@data-click='close']",
"//button[contains(text(),'Accept') or contains(text(),'Aceptar')]",
"//div[contains(@id,'newsletter-popup')]//div[@class='modal__centered']//button[contains(@class,'modal__close')]",
"//*[@id='onetrust-close-btn-container']",
"//div[@id='entryModal']//*[text()='OK']/..",
"//*[contains(@class,'tm-cookie-banner')]//*[contains(@class,'js-accept')]",
"//*[translate(@*,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='close cookie policy']"
],
fast_bounce: false,
offer: {job_id: "XXXXXXXXXX",
offer_id: "apico[.]top",
site_url: hxxps://www[.]apico[.]top
},
pages: [{ads: [{ctr: 0.035,
format: "interstitial",
name: "top_inter"
}
],
pattern: "^hxxps://(www.)?apico[.]top.*#google_vignette"
},
{ads: [{ctr: 0.035,
name: "top_top"
},
{ctr: 0.024,
format: "lazy_banner",
name: "top_sidebar"
},
{ctr: 0.02,
format: "lazy_banner",
name: "top_bottom"
},
{ctr: 0.034,
format: "anchor_banner",
name: "top_anchor"
}
],
pattern: "^hxxps://(www.)?apico[.]top/(game|category)",
xpath: "//a[contains(@href, '/category/')] | //div[contains(@class, 'item-grid')]//a"
},
{ads: [{ctr: 0.035,
name: "top_top"
},
{ctr: 0.024,
format: "lazy_banner",
name: "top_sidebar"
},
{ctr: 0.02,
format: "lazy_banner",
name: "top_bottom"
},
{ctr: 0.034,
format: "anchor_banner",
name: "top_anchor"
}
],
pattern: "^hxxps://(www.)?apico[.]top",
xpath: "//a[contains(@href, '/game/')]"
}
],
pv: 2,
random_swipe: true,
random_swipe_level: "high",
region: "RU",
type: "web_adx"
}

Цель этой задачи – увеличить количество целевых кликов на рекламные объявления на сайте hxxps[:]//www[.]apico[.]top. Из другой задачи мы узнали аналогичный сайт hxxps[:]//qaz[.]baouy[.]top. На них размещены различные браузерные игры со множеством рекламных объявлений.

Также обнаружили что троян Android.Phantom.2.origin распространяется через:

  • сайты с модами spotify:
    • hxxps[:]//spotipro[.]top/
    • hxxps[:]//spotipro[.]top/
    • hxxps[:]//spotiplus[.]xyz/
  • сайты с модами:
    • hxxps[:]//apkmody[.]mobi
    • hxxps[:]//moddroid[.]com
  • telegram-каналы:
    • hxxps[:]//t[.]me/spoti_pro/
    • hxxps[:]//t[.]me/moddroid_co_OF
    • hxxps[:]//t[.]me/spotify_premium_channel
    • hxxps[:]//t[.]me/apkmodyOF
  • discord-сервера:
    • hxxps[:]//discord[.]com/invite/aybQHENK4B
    • hxxps[:]//discord[.]gg/TXxc5cqQ6a
    • hxxps[:]//discord[.]gg/6Um7CV8nPg

Матрица MITRE

Этап Техника
Первоначальный доступ

Управление версиями приложений (T1661)

Выполнение

Интерпретаторы командной строки и сценариев (T1623)

Предотвращение обнаружения

Управление версиями приложений (T1661)

Загрузка нового кода во время выполнения (T1407)

Инъекция ввода (T1516)

Обфускация файлов или информации (T1406)

Обход виртуализации или песочницы (T1633) Системные проверки (T1633.001)

Обнаружение

Получение информации о системе (T1426)

Получение конфигурации сети системы (T1422)

Сбор данных

Захват экрана (T1513)

Организация управления

Протокол прикладного уровня (T1437)

Зашифрованный канал (T1521) Симметричное шифрование (T1521.001)

Передача инструментов из внешней сети (T1544)

ПО для удаленного доступа (T1663)

Деструктивное воздействие

Генерация трафика с устройства жертвы (T1643)

Инъекция ввода(T1516)

Новость о трояне

Рекомендации по лечению


Android

  1. Если мобильное устройство функционирует в штатном режиме, загрузите и установите на него бесплатный антивирусный продукт Dr.Web для Android Light. Выполните полную проверку системы и используйте рекомендации по нейтрализации обнаруженных угроз.
  2. Если мобильное устройство заблокировано троянцем-вымогателем семейства Android.Locker (на экране отображается обвинение в нарушении закона, требование выплаты определенной денежной суммы или иное сообщение, мешающее нормальной работе с устройством), выполните следующие действия:
    • загрузите свой смартфон или планшет в безопасном режиме (в зависимости от версии операционной системы и особенностей конкретного мобильного устройства эта процедура может быть выполнена различными способами; обратитесь за уточнением к инструкции, поставляемой вместе с приобретенным аппаратом, или напрямую к его производителю);
    • после активации безопасного режима установите на зараженное устройство бесплатный антивирусный продукт Dr.Web для Android Light и произведите полную проверку системы, выполнив рекомендации по нейтрализации обнаруженных угроз;
    • выключите устройство и включите его в обычном режиме.

Подробнее о Dr.Web для Android

Демо бесплатно на 14 дней

Выдаётся при установке