CVE-2022-41040
Microsoft Exchange Server
2022-09-30
Microsoft Exchange Server allows for server-side request forgery. Dubbed "ProxyNotShell," this vulnerability is chainable with CVE-2022-41082 which allows for remote code execution.
Технический анализ и план устранения
Суть уязвимости
CVE-2022-41040 — это критическая уязвимость класса Server-Side Request Forgery (SSRF) в Microsoft Exchange Server. Она получила известность под названием "ProxyNotShell". Уязвимость позволяет аутентифицированному злоумышленнику удаленно инициировать запросы от имени сервера Exchange.
Основная опасность заключается в возможности связки (chaining) этой уязвимости с CVE-2022-41082. В такой комбинации атакующий может получить доступ к PowerShell-ресурсам бэкенда и выполнить произвольный код (RCE) в контексте системы, что ведет к полному компрометации почтового сервера и инфраструктуры Active Directory.
Как исправить
Единственным надежным способом устранения уязвимости является установка официальных обновлений безопасности (Security Updates), выпущенных Microsoft.
- Определите текущую версию и Build Number вашего Exchange Server.
- Скачайте и установите соответствующее накопительное обновление (CU) и последующее обновление безопасности (SU) от ноября 2022 года или более позднее.
Для автоматизации процесса проверки обновлений используйте скрипт Microsoft Exchange Server Health Checker:
.\ExchangeHealthChecker.ps1
После установки обновлений убедитесь, что версия билда соответствует исправленной версии (например, для Exchange Server 2019 это CU12 SU3 или выше).
Временные меры
Если немедленная установка патчей невозможна, необходимо применить меры по смягчению последствий (Mitigation) через модуль IIS URL Rewrite.
1. Блокировка паттернов атаки через IIS Manager:
Создайте правило фильтрации для блокировки запросов, содержащих вредоносный путь.
Import-Module WebAdministration
$siteName = "Default Web Site"
$ruleName = "ProxyNotShell-Mitigation"
$filterPattern = ".*autodiscover\.json.*Powershell.*"
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 @{url='.*'}
Add-WebConfigurationProperty -pspath "IIS:\Sites\$siteName" -filter "system.webServer/rewrite/rules/rule[@name='$ruleName']/conditions" -name "." -value @{input='{REQUEST_URI}';pattern=$filterPattern}
Set-WebConfigurationProperty -pspath "IIS:\Sites\$siteName" -filter "system.webServer/rewrite/rules/rule[@name='$ruleName']/action" -name "type" -value "CustomResponse"
Set-WebConfigurationProperty -pspath "IIS:\Sites\$siteName" -filter "system.webServer/rewrite/rules/rule[@name='$ruleName']/action" -name "statusCode" -value 403
2. Отключение удаленного управления через PowerShell для пользователей без прав администратора:
Ограничение доступа к PowerShell минимизирует риск эксплуатации CVE-2022-41082.
Get-User -ResultSize Unlimited | Set-User -RemotePowerShellEnabled $false
3. Использование скрипта EOMTv2:
Microsoft предоставляет скрипт Exchange On-premises Mitigation Tool v2, который автоматически применяет правила URL Rewrite.
.\EOMTv2.ps1