Formbook, он же XLoader, идёт в европейские компании под видом деловых бумаг. Приманки - заказы, счета, прайс-листы и запросы от поставщиков. Один архив выдавал себя за документ о новом заказе и вёз JavaScript-файл с тем же именем. Открытие такого файла в итоге оборачивается кражей данных, сохранённых в браузере. Цепочка запуска растянута на несколько стадий, и каждая следующая прячет предыдущую.
Описание
Незаметным первый шаг не назвать. JavaScript-загрузчик декодирует встроенную PowerShell-нагрузку и создаёт рабочий каталог во временной папке. Там появляется скрипт со случайным именем, привязанным к метке времени. Затем PowerShell стартует скрыто: без окна, без загрузки профиля и с обходом политики выполнения. Присматривает за ним сам загрузчик через WMI. Если процесс живёт дольше 50 секунд, загрузчик его завершает - сессия намеренно короткая.
По данным ANY.RUN, дальше работает AES-загрузчик. Ключ и вектор инициализации лежали в том же скрипте, что и зашифрованная нагрузка. Расшифровка идёт по схеме AES-256-CBC, результат исполняется в памяти. Сразу после запуска загрузчик чистит карту ресурсов и вызывает сборку мусора. На диске остаётся меньше следов, чем обычно оставляет загрузчик в файле.
Расшифрованная стадия несёт.NET-инжектор GHOST.dll и саму полезную нагрузку. Инжектор закрыт обфускатором ConfuserEx и применяет process hollowing - подмену содержимого чужого процесса. Носителем выбран aspnet_compiler.exe, штатный компилятор.NET. Его работа не выглядит чужой на сервере, где крутится веб-приложение. Рядом работает сторож Operate-Beacon. Каждые пять секунд он проверяет процесс и при необходимости внедряет GHOST.dll заново, так что снятие нагрузки не даёт результата.
Сама нагрузка перебирается в rekeywiz.exe - служебный процесс, связанный с шифрованием. Оттуда Formbook запускает Firefox, создаёт случайный файл во временной папке и читает базы браузера. Запуск браузера силами вредоносного ПО выглядит как действие человека, а не скрипта. Предположительно, это нужно, чтобы обращение к профилю не выбивалось из обычной картины. Что именно уходит на сторону, в отчёте не раскрыто.
Закрепление построено вокруг имён вида SystemUpdate_ps_*. Появляется значение в ветке автозапуска текущего пользователя и попытка записи в общесистемную ветку. Плюс ярлык с тем же именем в папке автозагрузки. Он маскируется под System Update Service и запускает PowerShell скрыто. Набор точек входа - ставка на то, что хотя бы одна переживёт чистку.
Связь с командным сервером идёт по HTTP через 80-й порт. В отчёте названы два домена. В запросах стоит строка клиента, выдающая себя за Android, хотя трафик идёт с Windows-хоста. Расхождение между заявленной платформой и реальной - самый устойчивый признак в этой картине, но сам по себе он ничего не доказывает. Сколько компаний затронуто и кто стоит за кампанией, не сообщается. Хеши всех перечисленных артефактов в отчёте есть, атрибуции нет. Для поиска полезно проверить родительские процессы wscript.exe и powershell.exe, а также необычные обращения к доменам C2 с Android User-Agent. Это помогает отличить Formbook от обычной активности офисных приложений, особенно на машинах, где открывали архивы из почты.