Пароли в открытом виде, хранение данных в JSON вместо полноценной базы и студент из Краснодара: как 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. Инфраструктура также использовала домен kpmail[.]su, известный по индикаторам компрометации DCRAT.
По оценке исследователей, инфраструктура включала около 100 IP-адресов C2-серверов. К декабрю 2025 года все известные командные серверы стали недоступны. История ClayRat была короткой: проект привлёк внимание в октябре 2025 года и уже к декабрю утратил все серверы управления.
Позже в открытых источниках сообщалось о задержании студента из Краснодара, подозреваемого в разработке вредоноса. Вероятно, после этого активность ClayRat прекратилась.
В итоге ClayRat представлял собой функциональный, но слабый технически проект. Несмотря на широкий набор возможностей, наблюдались открытое хранение паролей, дебаг-строки в сборке сервера, примитивная обфускация и хранение данных в JSON вместо базы. На этом фоне быстрый спад активности проекта выглядит закономерным.