Фишинговое письмо со вложенным архивом открывает цепочку заражения. Её конечная цель - пароли, файлы cookie, история посещений и данные криптовалютных кошельков с компьютеров под управлением Windows. Внутри архива лежит файл JavaScript со специально запутанным кодом - сценарий на языке, который выполняется прямо в системе. Пользователь открывает вложение двойным щелчком и запускает программу, хотя никаких окон на экране не появляется. Расчёт здесь на сотрудников компаний: корпоративная почта чаще содержит вложения, которым доверяют. Архив нередко приходит от знакомого адресата, поэтому получатель не ждёт подвоха.
Описание
Больше половины содержимого файла занимает набор бессмысленных символов. Эта часть кода ни на что не влияет и служит только для запутывания. Разобрать образец вручную мешает именно она. Атаку относят к целевому фишингу со ссылкой. Такой приём числится в базе MITRE ATT&CK - перечне известных тактик и приёмов атакующих. После запуска сценарий незаметно обращается к внешнему серверу и получает оттуда обычный текстовый файл с новой порцией кода. Тот выполняется с небольшой задержкой, чтобы обойти автоматические системы, которые следят за поведением программы в первые секунды.
Второй этап опирается на PowerShell - штатный инструмент Windows для выполнения команд и сценариев. Код обращается к WMI, интерфейсу Windows для управления процессами и службами, и запускает командную строку в скрытом окне. По данным анализа, команда собирается на ходу. Читаемого текста в ней нет, только закодированный блок, который расшифровывается в момент запуска. Такой приём затрудняет поиск по известным строкам и мешает защитным средствам узнавать вредоносный код заранее. Окно консоли на экране не появляется.
Дальше сценарий скачивает с популярного сервиса доставки контента обычное изображение в формате JPG. Выбор площадки не случаен: обращения к крупному сервису не выглядят подозрительно и редко блокируются. Файл действительно открывается в просмотрщике и выглядит как картинка. Внутри него лежит блок данных, ограниченный специальными метками. Программа находит метки, вырезает содержимое и превращает его в сборку .NET - готовый к исполнению код для платформы Microsoft .NET, на которой работают многие корпоративные приложения. Аргументы для запуска идут отдельно и тоже в закодированном виде. Каждый следующий файл скачивается только после успешного выполнения предыдущего, поэтому остановить цепочку можно на любом шаге.
Загруженный код оказывается загрузчиком Mandark. Он применяет подмену процесса: запускает доверенную программу в приостановленном состоянии, стирает её содержимое в памяти и подставляет туда вредоносную нагрузку. Затем работа процесса возобновляется. Для пользователя и для большинства защитных средств всё выглядит как обычное приложение, а вредоносный код ни разу не появляется на диске в готовом виде. Подмена процесса остаётся распространённым приёмом: она помогает обойти проверки, которые оценивают только имя запущенного файла. Загрузчик получает от программы длинную строку, разворачивает её и извлекает адрес очередного текстового файла, откуда скачивает финальную нагрузку. Как показало исследование, имя Mandark встречается в открытом репозитории на GitHub, где речь идёт о 64-разрядном инструменте на C# для подмены процессов.
Перед сбором информации программа проводит десять проверок на признаки лабораторной среды. Она сверяет видеокарту со списком виртуальных адаптеров. Затем просматривает запущенные процессы и службы на предмет инструментов мониторинга. Дальше проверяет внешний сетевой адрес, имя компьютера и имя пользователя, а также сравнивает системный идентификатор с известными образцами. Скорость срабатывания задержек измеряется отдельно. Если хотя бы один признак совпадает, программа завершает работу и удаляет собственные файлы. Проверки охватывают и облачные площадки, поэтому запуск на арендованном сервере тоже приводит к самоудалению. Такая осторожность объясняет, почему подобные образцы редко проявляют себя в песочницах - изолированных средах для анализа.
Основная задача Phantom Stealer - сбор данных. Среди его модулей кража сохранённых паролей, файлов cookie и данных автозаполнения из браузеров на движках Chromium и Gecko. Ещё один модуль извлекает содержимое криптовалютных кошельков и расширений для них. Третий перехватывает нажатия клавиш, а четвёртый делает снимки экрана. Отдельные компоненты собирают список беспроводных сетей с сохранёнными паролями и данные клиентов Telegram, Discord, Outlook, FoxMail, FileZilla и WinSCP. Модуль для работы с буфером обмена подменяет адреса криптовалютных кошельков на чужие. Ещё один ищет по диску файлы нужных форматов. Самым опасным для компаний остаётся доступ к сессиям: украденные файлы cookie позволяют войти в почту и рабочие сервисы без пароля и без второго фактора.
Собранное программа упаковывает в архив с паролем и отправляет на серверы злоумышленников. Внутри неё настройки лежат в зашифрованном виде, и от них зависит, каким каналом уйдут данные. В изученном образце активным оказался SMTP, протокол отправки электронной почты. В других случаях тот же вредонос умеет выгружать данные через Telegram, Discord и FTP - протокол передачи файлов. Закрепление в системе обеспечивают записи в автозагрузке, планировщик заданий и службы Windows, поэтому после перезагрузки программа возвращается к работе. Проверка автозагрузки, запрет на запуск вложений из писем, обновление систем и двухфакторная аутентификация усложняют реализацию такой цепочки. Оценка 61 из 71 в сервисе VirusTotal показывает, что на одну антивирусную проверку вложения полагаться не стоит.