Solar вскрыл изнанку Android-шпиона ClayRat.

Solar выпустил исследование о ClayRat, Android-вредоносе для скрытого наблюдения и удаленного управления устройством. На старте семейство выглядело как быстро растущий проект, но разбор серверной части показал совсем другую картину: необфусцированный бэкенд, хранение данных в JSON-файлах вместо СУБД, пароли в открытом виде и другие просчеты, которые хорошо объясняют, почему история ClayRat закончилась так быстро.
ClayRat относится к классу Spyware/RAT для Android. Вредонос перехватывал SMS и журнал вызовов, получал доступ к контактам, мог делать фотографии, записывать экран и выполнять команды с управляющего сервера. Распространение шло через фишинговые сайты и приложения, замаскированные под легитимный софт.
Авторы исследования сосредоточились не столько на мобильной части, сколько на серверной инфраструктуре. В открытом доступе обнаружился архив server.zip, внутри которого лежали исполняемый файл панели, утилиты для сборки и подписи APK, а также шаблон приложения для генерации новых вредоносных пакетов.
Главный бинарник webpanel_linux_amd64 оказался необфусцированным веб-приложением под Linux, написанным на Go 1.24. Сборка сохранила дебаг-строки, а внутри исполняемого файла через библиотеку embed хранились HTML-шаблоны и JavaScript-файлы панели. По данным исследователей, в открытых коллекциях можно найти и другие дропперы, которые, предположительно, связаны с тем же автором.
Фронтенд панели написан без фреймворков и разбит на отдельные модули, среди которых есть части для дашборда, страницы устройства, интерфейсных утилит, работы с экраном и WebSocket-клиента. После входа оператор попадал в панель с тремя основными вкладками: устройства, билдер и настройки. В разделе устройств можно было просматривать зараженные смартфоны, получать сведения об устройстве, открывать экран, делать скриншоты, запрашивать журнал звонков, SMS и список приложений.
Для SMS в серверной части был предусмотрен отдельный обработчик, который анализировал сообщения по регулярным выражениям и ключевым словам. Панель искала упоминания банков, маркетплейсов и номера банковских карт. Во вкладке журнала звонков также присутствовала функция исходящего вызова с зараженного устройства на заданный номер без перехвата аудиопотока.
Такой механизм, как считают исследователи, мог использоваться в мошеннических схемах, включая звонки родственникам или знакомым жертвы с последующим общением уже через текст. При первом запуске веб-панель создавала JSON-файлы конфигурации, списки аккаунтов операторов, списки устройств и папку для сборок. База данных не использовалась: вся логика хранения была завязана на .json-файлы.
В конфигурации лежали логин и пароль администратора, токены Telegram и SMS-сервисов, а также другие чувствительные параметры. Опция enable_2fa в конфигурации присутствовала, но в исследованной версии панели не использовалась. Пользователи тоже хранились в виде JSON-объектов, причем пароли лежали в user_accounts.json в незашифрованном виде.
Отдельно исследователи отмечают странную логику прав доступа: роли admin, operator и viewer формально существовали, но реальный доступ к разделам панели определялся через объект permissions. По сути, поле role почти не влияло на авторизацию.
Вкладка билдера позволяла собирать вредоносный APK с заданными параметрами. Оператор мог указать идентификатор воркера, контакт в Telegram, URL веб-панели, отображаемое имя приложения, ссылку WebView и иконку. После подстановки параметров бэкенд собирал APK из шаблона с помощью apktool.
Внутри шаблона уже лежали smali-классы, а попытка обфускации сводилась к добавлению бесполезных классов со случайными именами. В коде по умолчанию фигурировали домен clay.kpmail.su и версия clayrat 1.0.0. Инфраструктура ClayRat также связывалась с доменом kpmail[.]su, который встречался и в индикаторах компрометации DCRAT.
По оценке авторов, инфраструктура включала массив C2-серверов примерно из 100 IP-адресов. К декабрю 2025 года все известные командные серверы стали недоступны. История проекта развивалась быстро и закончилась так же быстро: ClayRat привлек широкое внимание в октябре 2025 года, а уже к декабрю потерял все командные серверы.
Позже в открытых источниках появилась информация о задержании в Краснодаре студента, которого подозревают в разработке вредоноса. По оценке исследователей, после этого активность ClayRat, вероятно, прекратилась.
В итоге ClayRat выглядел функциональным, но технически слабым проектом. За широким набором возможностей скрывались открытое хранение паролей, дебаг-строки в серверной сборке, примитивная обфускация и файловая схема хранения данных вместо СУБД. На таком фоне быстрый спад активности выглядит вполне закономерно.