CVE-2022-41082

Microsoft Exchange Server

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2022-09-30

Официальное описание

Microsoft Exchange Server contains an unspecified vulnerability that allows for authenticated remote code execution. Dubbed "ProxyNotShell," this vulnerability is chainable with CVE-2022-41040 which allows for the remote code execution.

🛡️
Технический анализ и план устранения

Суть уязвимости

CVE-2022-41082 — это уязвимость удаленного выполнения кода (RCE), возникающая при обработке метаданных в компоненте PowerShell Remoting на сервере Microsoft Exchange. Она является частью цепочки атак, известной как "ProxyNotShell".

Злоумышленник, прошедший проверку подлинности (даже с низкими привилегиями), может использовать CVE-2022-41040 (SSRF) для обхода ограничений доступа и обращения к бэкенд-сервису PowerShell. Это позволяет выполнить произвольные команды в контексте системы (SYSTEM), что ведет к полному захвату сервера.

Как исправить

Основным и рекомендуемым способом устранения является установка актуальных обновлений безопасности (Security Updates) от Microsoft.

  1. Определите текущую версию и билд вашего Exchange Server.
  2. Скачайте и установите соответствующее обновление безопасности (Cumulative Update и Security Update), выпущенное в ноябре 2022 года или позже.

Для автоматизации процесса проверки и установки рекомендуется использовать скрипт Microsoft Exchange Health Checker.

.\ExchangeHealthChecker.ps1

Временные меры

Если немедленная установка патчей невозможна, необходимо применить меры по снижению рисков (Mitigation), которые блокируют вектор атаки через IIS Rewrite Module и ограничивают доступ к PowerShell.

1. Блокировка известных паттернов атаки через URL Rewrite

Установите модуль "URL Rewrite" в IIS и создайте правило для блокировки запросов, содержащих признаки эксплойта.

Import-Module WebAdministration
$ruleName = "Block ProxyNotShell"
$siteName = "Default Web Site"
Add-WebConfigurationProperty -PSPath "IIS:\Sites\$siteName" -Filter "system.webServer/rewrite/rules" -Name "." -Value @{name=$ruleName; patternSyntax='Regular Expressions'; stopProcessing='True'}
Set-WebConfigurationProperty -PSPath "IIS:\Sites\$siteName" -Filter "system.webServer/rewrite/rules/rule[@name='$ruleName']/match" -Name "url" -Value ".*"
Add-WebConfigurationProperty -PSPath "IIS:\Sites\$siteName" -Filter "system.webServer/rewrite/rules/rule[@name='$ruleName']/conditions" -Name "." -Value @{input='{REQUEST_URI}'; pattern='.*autodiscover\.json.*powershell.*'}

2. Отключение удаленного доступа к PowerShell для пользователей без прав администратора

Это наиболее эффективная временная мера для предотвращения выполнения кода.

Get-User -ResultSize Unlimited | Set-User -RemotePowerShellEnabled $false

3. Использование скрипта EOMTv2

Microsoft предоставляет скрипт Exchange On-premises Mitigation Tool v2, который автоматически применяет необходимые правила URL Rewrite.

.\EOMTv2.ps1