В последние месяцы появляется все больше вредоносных рекламных кампаний с использованием Google Ads для распространения и доставки вредоносного ПО. По меньшей мере два разных зловреда для кражи данных, RedLine и относительно новый Rhadamanthys, доставляются на компьютеры пользователей таким образом. Для их распространения, по всей видимости, используется один и тот же способ имитации сайтов, связанных с популярным программным обеспечением (например, Notepad++ и Blender 3D).
Злоумышленники регистрируют доменные имена, применяя тайпсквоттинг (использование в доменных именах названий популярных брендов и компаний с опечатками) и комбосквоттинг (использование в доменных именах названий популярных брендов и компаний в сочетании с произвольными словами). Такие веб-сайты, в доменах которых содержится название оригинальной программы или ее поставщика, вызывают доверие у конечных пользователей. Их внешний вид и содержание с первого взгляда не отличаются от настоящих. Злоумышленники оплачивают их продвижение, чтобы они появлялись на верхних строчках поисковой выдачи. Эта деятельность называется «вредоносной рекламой» (malvertising).
Наши наблюдения
На скриншотах ниже — примеры рекламы поддельных страниц для скачивания драйверов AMD и приложения Blender 3D в поисковой выдаче Google. Если внимательнее присмотреться к их URL-адресам, можно увидеть, что доменные имена содержат названия программного обеспечения, но не имеют никакого отношения к настоящим поставщикам AMD или Blender 3D. Кроме того, для регистрации доменов, очень похожих на оригинальные, злоумышленники используют менее популярные доменные зоны. Такие ссылки выглядят более правдоподобно, чем случайные домены, зарегистрированные в популярной доменной зоне (например, COM), поэтому потенциальные жертвы чаще переходят по ним.
Поддельные веб-сайты для скачивания AMD и Blender 3D в результатах поиска
Мы проанализировали некоторые сайты, продвигаемые подобным образом, и вредоносную нагрузку, которую они доставляли. В этой статье мы рассмотрим в первую очередь поддельные веб-сайты для скачивания Blender 3D.
Поддельные веб-сайты для скачивания Blender 3D
При нажатии на кнопку для скачивания загружается архив blender-3.4.1-windows-x64.zip (E0BDF36E4A7CF1B332DC42FD8914BA8B). Размер архива составляет 269 МБ, почти как у настоящего установочного файла Blender. При этом на поддельной странице указан размер в 257 МБ, что соответствует оригинальному установочному файлу Blender 3D, но не совпадает с реальным размером загружаемого файла.
Извлеченный из архива файл (BBA8AA93FCDDA5AC7663E90C0EEFA2E7) весит 657 МБ. При запуске он помещает два файла в каталог Temp:
- оригинальный MSI-установщик Blender 3D (на скриншоте ниже отмечен зеленым), размер которого тоже составляет 657 МБ;
- вредоносный PE-файл (отмечен красным), служащий загрузчиком следующего этапа, такого же размера.
Сохраненные дроппером файлы: оригинальный MSI-установщик Blender 3D и вредоносный загрузчик
Размер вредоносного загрузчика такой большой, потому что создаваемый PE-файл заполняется мусорными байтами. Если их убрать, размер загрузчика составит всего 330 КБ.
Мусорные байты, увеличивающие размер загрузчика
Сохранив указанные файлы, установщик первого этапа использует команду cmd.exe /c [имя файла], чтобы запустить вредоносный PE-файл в скрытом режиме. Кроме того, он запускает настоящий MSI-установщик приложения Blender 3D, чтобы пользователь убедился, что скачал то, что хотел.
Так, создав «предустановщик», который загружает на целевой компьютер и вредоносную, и легитимную программу, злоумышленники маскируют доставку зловреда установкой нужного пользователю ПО.
Установщик Blender 3D, запущенный «предустановщиком»
На скриншоте выше можно видеть установщик легитимного ПО. Но если присмотреться к процессам, мы обнаружим подпроцесс (cmd.exe /c -> SetupFileProgram), возникающий на короткий промежуток времени и выполняемый «предустановщиком». Он-то и загружает вредоносное ПО.
Загрузчик
Загрузчик представляет собой .NET-файл, защищенный незарегистрированной версией NET Reactor. Он, по всей вероятности, использует антиотладочные техники, чтобы не допустить выполнение и динамический анализ файла отладчиком. Если описывать функциональность загрузчика в общих чертах, то он запускает новый процесс powershell.exe и заставляет его выполнить несколько команд PowerShell, которые дают процессу указание обратиться к стороннему URL-адресу для скачивания полезной нагрузки. Эта полезная нагрузка представляет собой бесфайловый двоичный код, закодированный по методу Base64 и зашифрованный по алгоритму AES. Последующие команды используются для декодирования и расшифровки кода, а затем выполнение его в памяти внутри процесса aspnet_compiler.exe — это легитимное средство компиляции в Windows .NET Framework, — который запускается с этой целью.
Мы наблюдаем два метода обхода обнаружения во время выполнения загрузчика.
- Бесфайловый метод — получение полезной нагрузки из онлайн-источника и загрузка напрямую в память процесса.
- Использование легитимных инструментов и скриптов (LOLBAS) для запуска вредоносного двоичного объекта — в данном случае это средство компиляции .NET.
Ниже мы более подробно опишем цепочку выполнения загрузчика. После того как мы обошли антиотладочные техники, мы увидели, что загрузчик запускает процесс PowerShell. Чтобы понаблюдать за его поведением, мы добавили точку останова в вызов WinAPI CreateProcessW.
Вызов CreateProcessW для создания процесса PowerShell
Мы не увидели никаких команд, переданных процессу PowerShell после инициализации через вызов CreateProcessW. Мы сделали вывод, что это произойдет позже, и добавили точку останова в вызов WinAPI WriteFile, чтобы увидеть отправку команд в процесс powershell.exe и просмотреть эти команды.
После того как процесс был запущен и достиг точки останова, мы проверили результаты, которые вернула вызванная функция. Первой в процесс powershell.exe была отправлена команда #Start-Sleep -seconds 30;.
Наблюдение за отправленными командами
Мы проверили раздел памяти, в котором находится эта команда, и попробовали найти в нем другие команды, которые могут храниться там для дальнейшего использования загрузчиком.
Адрес раздела памяти, в котором хранятся отправляемые команды PowerShell
После извлечения данных из этого раздела памяти мы увидели все команды, передаваемые в процесс powershell.exe через вызов WinAPI WriteFile.
Команды PowerShell
Прочитав все команды, мы смогли определить дальнейшие действия процесса powershell.exe.
- Загрузить строковые данные, которые содержатся в следующем URL-адресе, точнее, в имени файла: http[:]//45.93.201[.]114/docs/[RandomChars].txt. Загруженные данные — это строка в кодировке Base64, которая после декодирования преобразуется в зашифрованные данные.
- Подготовить метод расшифровки. Как мы видим на скриншоте выше, используется алгоритм шифрования AES в режиме CBC. Также можно заметить и декодировать ключ в кодировке Base64 и вектор инициализации (IV), используемые командой PowerShell для расшифровки.
- Расшифровать данные и получить Gzip-архив с двоичным объектом.
- Разархивировать двоичный объект.
- Вызвать двоичный объект для выполнения.
Расшифрованный двоичный объект
Извлеченный двоичный объект (стилер RedLine)
Двоичный объект, который запускает загрузчик, — это дроппер известного стилера RedLine. В полученной нами версии вредоносная полезная нагрузка скрыта с помощью интересного приема: она закодирована в младшем значащем бите изображений, содержащихся в разделе ресурсов дроппера, вместе с ключом и IV-байтами для ее расшифровки при помощи алгоритма AES.
Встроенные изображения с вредоносной полезной нагрузкой
Расшифровка полезной нагрузки
После расшифровки полезной нагрузки дроппер запускает легитимный процесс aspnet_compiler.exe, который относится к Microsoft .NET Framework, и внедряет в него стилер.
Внедрение полезной нагрузки
Инфраструктура
Для размещения страниц-приманок злоумышленники регистрируют доменные имена, вводящие пользователей в заблуждение: blender3d-software[.]net, blender3d-software[.]org и др. Мы нашли более 50 похожих доменов, размещенных на одном IP-адресе (91.229.23[.]200). Среди них есть и домены, имитирующие имена веб-сайтов для распространения другого программного обеспечения, например afterburner-software[.]org, tradingviews-software[.]org, unity-download[.]com.
Вредоносная нагрузка может храниться на поддельном сайте (например, hxxps[://]blahder3dsoft[.]store/Blender[.]rar) или в публичном сервисе, который можно использовать как файлообменник (MediaFire или GitHub).
Заключение
Мы наблюдаем рост числа случаев распространения вредоносного ПО через Google Ads, а именно через рекламу в поисковой выдаче. Злоумышленники создают поддельные страницы, маскирующиеся под легитимные сайты поставщиков программного обеспечения, и продвигают их с помощью платной рекламы, чтобы привлекать жертв. При создании доменов они используют тайпсквоттинг и комбосквоттинг — в последние месяцы эти приемы получили большое распространение. В некоторых случаях, подобных описанному в этой статье, злоумышленники устанавливают нужное пользователям программное обеспечение одновременно со своей вредоносной нагрузкой.
В недавних кампаниях в основном распространялись стилеры (программы для кражи данных), такие как RedLine и нашумевший Rhadamanthys. Их операторы тоже используют вредоносную рекламу для привлечения жертв и кражи данных со скомпрометированных компьютеров.
Исходя из метода распространения, мы можем сделать вывод, что злоумышленники атакуют организации и отдельных пользователей по всему миру.
Вредоносная реклама в поисковиках