Stadia расширила StealC до программы удалённого доступа с шестью модулями

remote access Trojan

16 октября продавец похитителя учётных данных StealC выставил на продажу Stadia, программу удалённого доступа с шестью модулями. Похититель данных из StealC вошёл в неё как один из шести модулей. Остальные пять дают скрытый рабочий стол, командную оболочку, файловый менеджер, управление процессами и исполнение файлов из памяти. Объявление появилось через четыре месяца после того, как в июне инфраструктуру StealC закрыли в ходе операции Endgame.

Описание

В июне международные правоохранительные органы изъяли 326 серверов и 142 домена и вернули более 25 млн украденных учётных данных с 385 тыс. заражённых машин. Код при этом уцелел, поэтому перестраивать пришлось только инфраструктуру. Прежней осталась начинка и клиентская база, новыми стали имя, серверы и панель управления. На скриншотах демонстрационной панели из объявления видны 596 хостов и 496 архивов украденных данных, а заражения на карте сосредоточены в Южной и Юго-Восточной Азии, Африке и Латинской Америке.

По данным Varonis Threat Labs, специалисты получили сборку вскоре после публикации объявления и разобрали её. Разбор шёл в двух плоскостях: статический анализ файла и наблюдение за панелью, развёрнутой против одного собственного тестового хоста. Файл оказался 32-битным приложением Windows размером 560 128 байт, собранным нативно в Microsoft Visual C++ без упаковщика и без цифровой подписи. Родство с StealC подтверждено на уровне байтов: вспомогательный компонент для обхода защиты браузерных хранилищ размером 26 112 байт побайтово совпал с таким же блоком в сборках StealC 3.5 для 32- и 64-битных систем. Расшифровка строк дала 542 записи: словарь команд, список целей для кражи и конфигурацию серверов.

Набор модулей ближе к средству удалённого администрирования, чем к похитителю. Скрытый рабочий стол, он же HVNC, действует в двух режимах, общем и невидимом для пользователя; продавец называет его собственной разработкой, не основанной на публичных источниках. Похититель собирает данные более чем из 50 браузеров, свыше 120 криптовалютных расширений и более 50 десктопных кошельков, а также из мессенджеров, игровых клиентов и почтовых программ. Подписка стоит от 300 до 900 долларов в месяц: базовый уровень включает загрузчик и похититель с одной сборкой, командный - до пяти сборок и пяти учётных записей, профессиональный - все шесть модулей без ограничений. Через минуту после объявления продавец добавил второе сообщение с бесплатным месяцем профессионального уровня для всех бывших клиентов StealC.

Установка начинается с проверки языка системы: при русском, украинском, белорусском, казахском и узбекском агент завершает работу. Далее он проверяет, лежит ли собственный файл в служебном каталоге ProgramData, и при необходимости ставится туда, в каталог со случайным именем из 12 символов. Имя файла берётся из списка девяти названий легитимных обновляторов и системных процессов, а при повышенных правах каталогу добавляется исключение в Microsoft Defender. Скрытая задача планировщика срабатывает при входе в систему и далее каждые 15 минут в течение 3 650 дней. Регистрируется она через COM-интерфейс, поэтому правило на базе schtasks.exe её не увидит.

С сервером агент общается по обычному HTTP на 80-м порту, перебирая три зашифрованных адреса в фиксированном порядке. При каждом переподключении перебор начинается с первого адреса, а проверка идёт служебным сообщением с пустым идентификатором хоста и ожиданием ответа до восьми секунд. Если не ответил ни один из трёх, пауза составляет 300 секунд. Тело запроса заявлено как JSON, хотя на деле это зашифрованные и закодированные данные. Адреса, ключ и токен доступа меняются в каждой сборке, поэтому перекрытие конкретных адресов закрывает только один файл.

На хосте заметнее всего работа с браузерными хранилищами: неподписанный процесс из служебного каталога запускает подлинный Chrome, Edge или Brave в приостановленном состоянии и записывает в него блок кода размером 26 КБ. Затем в том же каталоге появляется и через несколько секунд исчезает текстовый файл со случайным именем и 64-символьной шестнадцатеричной строкой внутри. Динамический запуск в лаборатории не дал результата: образец стартовал с пониженными правами вне служебного каталога, не смог создать каталог и завершился без сообщений. Этот исход отражает условия стенда и ничего не говорит о работоспособности образца, а описанные признаки могут давать ложные срабатывания на похожие действия другого ПО. StealC забирал данные и прекращал работу, Stadia остаётся на машине, показывает экран, выполняет команды и загружает следующее.

Индикаторы компрометации

Комментарии: 0