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

akok

Команда форума
Администратор
Сообщения
15,624
Симпатии
12,669
Баллы
2,203
#1
Последний «вторник патчей» (17 октября) от Microsoft принес исправления для 62 уязвимостей, в том числе и патч, закрывающий критическую уязвимость «нулевого дня» СVE-2017-11826 во всех версиях Microsoft Office, которая эксплуатировалась в таргетированных атаках.

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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-1.png&hash=31c3bd9fda90c7da803d88ef8a820437


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-2.png&hash=bb3ffd42af8612b081a383a63b6b20bb


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-3.png&hash=3cc273909ec06c251b3e6c685e0b6c16


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-4.png&hash=e3a23e577de8517e6dd9ab876e7bd1e1


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-5.png&hash=81cd99a408786025abf1849720c0d731


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-6.png&hash=d54192330b297f9343f18923614f036d


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-7.png&hash=62d718a849ee70bbe68cd8850584bc60


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-8.png&hash=cdcc29589743873499ca18bf75d78f26

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-9.png&hash=b6295c761c3acc2c947e347e0f443318


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-10.png&hash=c398b5808f2e2c4263bac344b6c25bbc


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-11.png&hash=4a6499d18c43e269e5be23700bd75f2d


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

proxy.php?image=https%3A%2F%2Fcdn.securelist.ru%2Ffiles%2F2017%2F10%2F171024-cve-exploit-12.png&hash=9691b85629ced8d1c06acbe5b6fc694e


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

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

cb3429e608144909ef25df2605c24ec253b10b6e99cbb6657afa6b92e9f32fb5

Securelist - Russian - Russia - securelist.ru
 
Сверху Снизу