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.
- Определите текущую версию и билд вашего Exchange Server.
- Скачайте и установите соответствующее обновление безопасности (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