Исследование

Разбор эксплойта для СVE-2017-11826

Последний «вторник патчей» (17 октября) от Microsoft принес исправления для 62 уязвимостей, в том числе и патч, закрывающий критическую уязвимость «нулевого дня» СVE-2017-11826 во всех версиях Microsoft Office, которая эксплуатировалась в таргетированных атаках.

Эксплойт для этой уязвимости представляет собой RTF-документ, содержащий документ DOCX, который эксплуатирует СVE-2017-11826 в парсере Office Open XML.

Сам эксплойт находится в word/document.xml следующего содержания:

Согласно стандарту ECMA-376 для Office Open XML File Formats, валидный элемент font, описывающий используемые в документе шрифты, должен выглядеть следующим образом:

В теле эксплойта закрывающий тег </w:font> полностью отсутствует, а после открывающего <w:font> следует object-элемент <o:idmap/>, вызывающий type confusion в парсере OOXML. Для успешной эксплуатации уязвимости может использоваться любой object-элемент. Для прохождения одной из предшествующих эксплуатации проверок перед тегом <w:font> должен присутствовать элемент OLEObject, а длина содержимого атрибута name должна быть не менее 32 байт после конвертирования из UTF-8 в Unicode.

После конвертации из UTF-8 в Unicode E8 A3 AC E0 A2 80 преобразуется в EC 88 88 08.

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

Для контроля содержимого памяти по адресу 0x088888EC атакующие применяют популярную технику Heap spraying с использованием компонентов ActiveX:

Эксплойт обходит ASLR и DEP с использованием ROP и гаджетов из msvbvm60.dll. Модуль msvbvm60.dll загружается из RTF-документа посредством CLSID, ассоциированного с этой библиотекой:


Первая часть ROP устанавливает значение регистра ESP:

Вторая часть ROP пропускается, она использовалась для установки регистра EIP на 0x088883EC. Последний «pop eax; retn» гаджет переместит адрес 0x729410D0 в EAX. Это адрес на указатель VirtualProtect в области импортов msvbvm60.dll из Kernel32.dll:

Указатель VirtualProtect используется в следующем ROP гаджете для вызова функции VirtualProtect(0x8888C90, 0x201, 0x40, 0x72A4C045), после чего управление передается в шеллкод по адресу 0x8888F70, который осуществляет расшифровку и выполнение DLL-файла:

Защитные решения «Лаборатории Касперского» детектируют эксплойты для СVE-2017-11826 как:

  • Exploit.MSWord.Agent.ix;
  • Exploit.MSOffice.CVE-2017-11826.a;
  • HEUR:Exploit.MSOffice.Generic.

IOC

cb3429e608144909ef25df2605c24ec253b10b6e99cbb6657afa6b92e9f32fb5

Разбор эксплойта для СVE-2017-11826

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике