PowerLoader 64-bit обновлен новыми LPE-эксплойтами

в 5:48, , рубрики: CVE-2013-3660, powerloader, Блог компании ESET NOD32, Вирусы (и антивирусы), метки: ,

Несколько месяцев назад мы писали о PowerLoader. Этот вредоносный код использует интересный метод повышения привилегий в контексте explorer.exe. Исходные тексты PowerLoader, которые оказались доступными для общественности, используются и в других семействах вредоносных программ. Например, дропперы буткита Win32/Gapz основаны на этом коде PowerLoader. В августе мы обнаружили новую модификацию PowerLoader для 64-битных ОС (обнаруживается ESET как Win64/Vabushky.A). Эта модификация использует три эксплойта для поднятия своих привилегий в системе (Local Privelege Escalation): MS13-053 (CVE-2013-3660), MS12-041 (CVE-2012-1864), и MS12-042 (CVE-2012-0217). Использование таких эксплойтов ранее не наблюдалось в семплах PowerLoader или родственных ему семействах. Александр Матросов выполнил анализ этого вредоносного ПО.

Вредоносный код Win64/Vabushky является хорошим примером того, как быстро злоумышленники обновляют свои проекты с использованием исходных текстов Carberp. Два 64-битных эксплойта (CVE-2012-1864 и CVE-2012-0217) из нового PowerLoader основаны на исходных текстах Carberp. Стоит так же отметить, что код PowerLoader, который стал доступен для общественности в апреле 2013, спровоцировал новую волну распространения дропперов, основанных на нем.

Дропперы Win64/Vabushky упакованы с использованием MPRESS, поскольку этот упаковщик один из немногих свободно распространяемых продуктов, который поддерживает 64-битные файлы формата PE32+. После распаковки дроппер извлекает оригинальный PE32+ заголовок с временем компиляции как указано ниже.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Все файлы включают в себя полезную нагрузку, скомпилированную в начале августа. В таблице экспорта этой версии PowerLoader можно увидеть изменения по сравнению с более старой версией.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

После внедрения кода в explorer.exe, PowerLoader пытается исполнить следующие эксплойты в контексте доверенных процессов.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Подобный набор эксплойтов может быть использован для обхода некоторых типов песочниц (sandbox), которые используются в security-продуктах, поскольку эти эксплойты используют прямое манипулирование объектами ядра из пользовательского режима с использованием легальных Win32 API.

CVE-2013-3660

В марте исследователь из Google Security Team Tavis Ormandy (@taviso) обнаружил уязвимость CVE-2013-3660, которая была закрыта июльским бюллетенем MS13-053. Мы не наблюдали 64-битную версию этого эксплойта до появления новой модификации PowerLoader, в то время как PoC x86 версии является доступным для общественности.

Перед непосредственно эксплуатацией, код эксплойта создает второй объект рабочего стола (user32!CreateDesktopA) для сокрытия факта работы с GDI объектами.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Основной код эксплуатации приведен ниже на рисунке.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Шелл-код, который исполняется с помощью nt!NtQueryIntervalProfile, выглядит следующим образом.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Данный код эксплуатации не работает в 64-битной Windows 8, посольку не способен обойти аппаратную технологию Intel SMEP (Supervisor Mode Execution Protection), которую программно поддерживает новая ОС. SMEP блокирует исполнение страниц кода пользовательского адресного пространства в режиме ядра и в 64-битной версии Windows 8 может быть обойден с использованием ROP. Однако Intel уже анонсировали другую защитную технологию SMAP (Supervisor Mode Access Prevention), которая вводит дополнительные ограничения на доступ к страницам памяти. Обе этих технологии SMAP и SMEP разработаны для предотвращения эксплуатации уязвимости типа NULL pointer dereference в режиме ядра, но SMAP еще не поддерживается в Windows.

CVE-2012-0217 и CVE-2012-1864

Код эксплойтов этих уязвимостей основан на утекших исходных текстах Carberp. Мы не наблюдали 64-битные версии CVE-2012-1864 ITW до того, как тексты Carberp стали доступны общественности. Код эксплуатации CVE-2012-0217, который доступен общественности, не работает стабильно на 64-битных версиях ОС. После инспекции исполняемых файлов эксплойтов в текстах Carberp было установлено, что в них указан один и тот же путь к build-директориям.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Это свидетельствует о том, что эксплойты разрабатывались на одной системе и, возможно, одним человеком. Код эксплойта CVE-2012-0217 значительно отличается от публично доступного PoC, который демонстрирует возможности эксплуатации. Версия эксплойта из текстов Carberp является более стабильной и поддерживает 64-битные ОС. Ниже показаны совпадения в блоках кода этих версий эксплойта для CVE-2012-0217 (слева указан код из PowerLoader).

PowerLoader 64 bit обновлен новыми LPE эксплойтами

На первый взгляд они кажутся очень похожими. Основные отличия встречаются только в дополнительном debug-коде, который не включен в модификацию PowerLoader. Кроме этого, в нем существуют несколько методов для того, чтобы сделать эксплуатацию более стабильной.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Этот код обеспечивает модификацию nt!HalDispatchTable для того, чтобы избежать стопроцентной загрузки CPU несколькими потоками во время эксплуатации.

Эксплойт для CVE-2012-1864 так же не был доступен публично до появления новой модификации PowerLoader. Сама уязвимость была обнаружена Tarjei Mandt (aka @kernelpool) из Azimuth Security. Детали уязвимости были обнародованы в его докладе «Smashing the Atom» на конференции RECon в июне 2012, но код эксплуатации не был опубликован для общественности. Код эксплойта из PowerLoader выглядит более оптимизированным и не содержит какой-либо отладочной информации. Ниже показаны различия в различных версиях этого эксплойта, на втором скриншоте версия из PowerLoader, в которой отсутствует вывод отладочной информации.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Оба этих эксплойта для CVE-2012-0217 и CVE-2012-1864 уязвимостей являются хорошими примерами обхода режима sandbox в security-продуктах. Эксплойты умеют манипулировать объектами режима ядра из пользовательского режима с использованием стандартных WinAPI. Хорошее описание способов обхода песочниц с использованием таких типов уязвимостей представлено в презентации «Application Sandboxes: A Pen-Tester’s Perspective».

Полезная нагрузка

После успешного исполнения кода PowerLoader и повышения привилегий, на компьютер пользователя загружается вымогатель (ransomware) Win64/Vabushky.A. Файл вымогателя исполняется после того, как загрузчик поднял текущие привилегии до максимальных, т. е. SYSTEM. Дроппер Win64/Vabushky использует трюк с легитимным self-generated certificate и его последующей установкой в локальное хранилище как коревой ЦА, т. е. ROOT CA и TrustedPublisher. Следующий код демонстрирует эту технику.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Этот трюк не является новым и уже упоминался в анализе Mandiant «The “Hikit” Rootkit: Advanced and Persistent Attack». Кроме этого, во время процесса установки, вредоносный код модифицирует данные Boot Configuration Data (BCD) для активации режима test-signing, который позволяет загружать неподписанные драйверы. На следующем рисунке представлены разделы реестра, в которые производится инсталляция драйвера.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Следующим шагом является установка в систему вредоносного драйвера для блокирования системы и демонстрация экрана с определенной обложкой, которая скачивается с одного из URL-адресов, жестко зашитых в самом коде.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

После всех действий вредоносной программы пользователь получает заблокированный рабочий стол.

PowerLoader 64 bit обновлен новыми LPE эксплойтами

Win64/Vabushky осуществляет шифрование файлов пользователя с использованием Microsoft CryptoAPI. После шифрования к файлу дописывается расширение .crypted. Код драйвера использует стандартные приемы блокировки крана и не заслуживает детального обсуждения.

Заключение

Дроппер Win64/Vabushky использует интересную модификацию кода PowerLoader. В нем используются LPE-эксплойты для 64-битных ОС из исходных текстов Carberp. Все модули и компоненты, извлекаемые Win64/Vabushky используются именно для 64-битной версии ОС Windows. Кроме этого, CVE-2013-3660 может эксплуатировать 32-битную версию Windows 8, что делает его универсальным. В то же время, в силу ограничений Intel SMEP и его поддержки в Windows 8, код эксплуатации не может работать для 64-битной версии ОС. Таким образом усилия Microsoft по обеспечению дополнительных security-механизмов в Windows 8 действительно оправдываются в случае защиты пользователя от действий эксплойтов.

Автор: esetnod32

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js