+38/044/257-2444
+38/067/502-3306
+38/050/370-3627
Новости

ESET обнаружила 0-day уязвимости в Adobe Reader и Microsoft Windows

ESET обнаружила 0-day уязвимости в Adobe Reader и Microsoft Windows

Специалисты ESET обнаружили необычный вредоносный PDF-файл. Выяснилось, что в образце используются две ранее неизвестные уязвимости: уязвимость удаленного выполнения кода (RCE) в Adobe Reader и уязвимость повышения привилегий (LPE) в Microsoft Windows.

Комбинация двух 0-day довольно опасна, поскольку открывает атакующим возможность выполнять произвольный код в целевой системе с максимальными привилегиями и минимальным участием пользователя. АРТ-группы нередко используют подобные сочетания инструментов – например, в кампании Sednit в прошлом году.

Обнаружив вредоносный PDF, специалисты ESET связались с Microsoft Security Response Center, командами Windows Defender ATP и Adobe Product Security Incident Response Team для закрытия уязвимостей.

Патчи и рекомендации Adobe и Microsoft доступны по следующим ссылкам:

• APSB18-09 https://helpx.adobe.com/security/products/acrobat/apsb18-09.html
• CVE-2018-8120 https://portal.msrc.microsoft.com/en-us/security-guidance/advisory/CVE-2018-8120

Уязвимостям подвержены следующие продукты:

• Acrobat DC (2018.011.20038 и более ранние версии)
• Acrobat Reader DC (2018.011.20038 и более ранние версии)
• Acrobat 2017 (011.30079 и более ранние версии)
• Acrobat Reader DC 2017 (2017.011.30079 и более ранние версии)
• Acrobat DC (Classic 2015) (2015.006.30417 и более ранние версии)
• Acrobat Reader DC (Classic 2015) (2015.006.30417 и более ранние версии)
• Windows 7 for 32-bit Systems Service Pack 1
• Windows 7 for x64-based Systems Service Pack 1
• Windows Server 2008 for 32-bit Systems Service Pack 2
• Windows Server 2008 for Itanium-Based Systems Service Pack 2
• Windows Server 2008 for x64-based Systems Service Pack 2
• Windows Server 2008 R2 for Itanium-Based Systems Service Pack 1
• Windows Server 2008 R2 for x64-based Systems Service Pack 1

Техническое описание вредоносного образца и уязвимостей. 

Файлы PDF нередко используются для доставки вредоносного ПО на целевой компьютер. Для выполнения вредоносного кода атакующим приходится искать и использовать уязвимости в ПО для просмотра PDF. Одна из наиболее популярных подобных программ – Adobe Reader.

В Adobe Reader внедрена технология изолированного выполнения, более известная как песочница – Protected Mode. Ее детальное описание опубликовано в блоге Adobe. Песочница усложняет реализацию атаки: даже если вредоносный код выполнен, злоумышленнику придется обойти защиту песочницы, чтобы скомпрометировать компьютер с запущенным Adobe Reader. Как правило, для обхода песочницы используются уязвимости в самой операционной системе.

Редкий случай, когда злоумышленникам удалось найти уязвимости и написать эксплойты и для Adobe Reader, и для операционной системы.

CVE-2018-4990 – RCE-уязвимость в Adobe Reader

Во вредоносный PDF встроен JavaScript-код, управляющий процессом эксплуатации. Код выполняется после открытия PDF-файла.

В начале процесса эксплуатации JavaScript-код манипулирует объектом Button1. Объект содержит специально созданное изображение JPEG2000, которое запускает двойную уязвимость.

JavaScript использует технику heap-spraying, чтобы нарушить внутренние структуры данных. После этих манипуляций атакующие достигают главной цели – доступ к памяти с правами на чтение и запись.

Используя два примитива, атакующие находит адрес памяти плагина EScript.api, являющийся движком Adobe JavaScript. Используя ROP гаджеты из этого модуля, вредоносный JavaScript устанавливает ROP цепочку, которая приведет к выполнению нативного шеллкода.
В качестве последнего шага, шеллкод инициализирует PE файл, встроенный в PDF, и передает ему выполнение.

CVE-2018-8120 – повышение привилегий в Microsoft Windows

После эксплуатации уязвимости Adobe Reader злоумышленнику необходимо избавиться от песочницы. Это и есть задача второго эксплойта.

В основе этой ранее неизвестной уязвимости – функция NtUserSetImeInfoEx компонента ядра Windows win32k. В частности, SetImeInfoEx, подпрограмма NtUserSetImeInfoEx, не проверяет указатель данных, позволяя разыменовать нулевой (NULL) указатель.

функция SetImeInfoEx ожидает указатель на инициализированный объект WINDOWSTATION в качестве первого аргумента. SpklList может быть равен нулю, если атакующий создает новый объект WS и присваивает его текущему процессу в пользовательском режиме. Таким образом, маппинг нулевой страницы и установка указателя на смещение (offset) 0x2C позволяет злоумышленникам использовать уязвимость для записи на произвольный адрес в пространстве ядра. Стоит отметить, что, начиная с Windows 8, пользовательский процесс не может преобразовать данные нулевой страницы.

Поскольку у атакующих есть произвольный пишущий примитив, они могут использовать различные техники. Но в нашем случае злоумышленники выбирают технику, описанную Ivanlef0u, а также Mateusz «j00ru» Jurczyk и Gynvael Coldwin. Они устанавливают шлюз вызова в Ring 0, перезаписав глобальную таблицу дескрипторов (GDT). Для этого злоумышленники получают адрес исходной GDT, используя инструкции по сборке SGDT, создают собственную таблицу и затем перезаписывают оригинал с использованием упомянутой уязвимости.

Затем эксплойт использует команду CALL FAR для вызова уровня привилегий.

Когда код выполняется в режиме ядра, эксплойт заменяет токен текущего процесса системным токеном.

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

Другие новости