Загрузчик извлекает полезную нагрузку из метаданных PNG
Фишинговое письмо с коммерческим предложением доставляло архив RAR с JavaScript-файлом LausivLoader. Цепочка заражения приводила к запуску загрузчика на базе .NET, который извлекал конечный полезный груз из метаданных PNG-файла. Исследователям не удалось восстановить изображение, поэтому конечный полезный груз и семейство ВПО остались неизвестны.
JavaScript был сильно обфусцирован: в нём использовались мусорные выражения и закодированные строки. При запуске скрипт создавал в %TEMP% каталог со случайным именем, записывал туда два фрагмента полезной нагрузки и задавал переменные окружения уровня процесса с путями к файлам. Затем он запускал скрытый PowerShell через conhost.exe. Дочерние процессы наследовали переменные окружения, поэтому PowerShell мог находить фрагменты без жёстко заданных путей.
Скрипт PowerShell объединял и декодировал фрагменты, а затем расшифровывал результат с помощью AES-128-CBC с выравниванием PKCS#7. Ключ и вектор инициализации были встроены в скрипт. JavaScript также пытался закрепиться в системе, создав задачу MicrosoftEdgeUpdateTaskCore для запуска при входе в систему. После использования скрипт удалял временные файлы с фрагментами.
Расшифрованное содержимое было загрузчиком на базе .NET. Он скачивал PNG-файл и искал в его структуре блок метаданных iTXt с конечным полезным грузом. Загрузчик мог распознавать управляемую сборку .NET и нативный исполняемый файл. Управляемый код загружался в память с помощью рефлексии .NET, а для нативного применялось внедрение в пустой процесс.
SHA-256 образца JavaScript: 408b2df6e81824fa5bdf4f0fbd185a7e6db06e2be98fbeebce416f66954b9fa9. SHA-256 второго загрузчика: be73e8b06c4356b5b4644d69b4f426bb3b32b4bf9f14cc5743f17532799f760b.
Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.
Ознакомиться подробнее с отчетом можно по ссылке.



