Обнаружение уязвимостей ProxyLogon в MS Exchange. Часть 2

Обнаружение уязвимостей ProxyLogon в MS Exchange. Часть 2

Life-Hack [Жизнь-Взлом]/Хакинг

#Обучение

Успешная эксплуатация уязвимости CVE-2021-27065 позволяет использовать интерфейс ECP для загрузки вредоносного файла на сервер Exchange, который затем будет использоваться в качестве веб-оболочки. Для эксплуатации этой уязвимости требуется предварительная аутентификация, которую можно пройти с помощью CVE-2021-26855. Давайте подробнее рассмотрим, как работает CVE-2021-27065. 

Сначала войдем в интерфейс ECP и перейдем в раздел Серверы → Виртуальные каталоги. Редактирование виртуальных каталогов позволяет переносить приложения Exchange, изменяя текущий каталог приложения на IIS

Перейдя к редактированию OAB (Default Web Site) в поле External URL, можно прописать код веб-шелла, например China Chopper:

Изменение параметров виртуальной директории для OAB (Default Web Site)

После установки новых параметров конфигурации виртуальной директории в журнале MSExchange Management мы можем увидеть следующее событие:

Установка новых параметров виртуальной директории OAB (журнал MSExchange Management)

На данную активность можно написать следующее правило: 

  • event_log_source:('PowershellAudit' OR 'MSExchangeCMDExec') AND event_id:('1' OR ’800’ OR '4104') AND (Message contains ‘Set-’ AND Message contains ‘VirtualDirectory AND Message contains ‘-ExternalUrl’ AND Message contains ‘script’) 

На следующем этапе настройки виртуального каталога сбрасываются. В появившемся интерфейсе мы видим, что перед сбросом нам предлагается сохранить текущие настройки виртуального каталога в выбранный файл:

Интерфейс сброса виртуальной директории OAB

После сброса настроек виртуального каталога в журнале управления MSExchange мы видим два события с EventID 1, используя сначала команду Remove-OabVirtualDirectory, а затем следующее событие New-OabVirtualDirectory. Эти события могут использоваться как дополнительные индикаторы при срабатывании описанного выше правила. 

Сохраним конфигурацию как файл test.aspx по пути C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\ecp\auth. В событиях IIS ECP можно увидеть событие, говорящее нам о том, что настройки для виртуальной директории приложения были сброшены. Пример события: 

2021-03-10 08:16:52 10.3.132.20  POST /ecp/DDI/DDIService.svc/SetObject  ActivityCorrelationID=d874fdcd-bd9d-9545-af02-677d356f1aa9&schema=ResetOABVirtualDirectory
&msExchEcpCanary=xkdU4icLzEazuIzEhSZaYgDLNVmW49gIjMvzJCs7TmzJoNU9rXLN15tkY5JGHwEOROWXGGq9_NM.&ActID=113cbd79-1e40-4635-8bae-8c8af6731267
444 LAB\dadmin 192.168.1.20 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/89.0.4389.82+Safari/537.36
https://exchange/ecp/VDirMgmt/ResetVirtualDirectory.aspx?pwmcid=6&ReturnObjectType=1&id=7a466ca6-419b-4445-9cc8-ae66a6bff719&schema=ResetOABVirtualDirectory  200  0 0 7 

Правило на сброс настроек для виртуальных директорий по событиям журнала IIS будет иметь вид: 

  • event_log_source:’IIS’ AND http_method:’POST’ AND http_code:'200' AND url_path:'/ecp/DDI/DDIService.svc/SetObject' AND (Message contains 'schema=Reset' AND Message contains 'VirtualDirectory') 

Когда эта уязвимость используется с CVE-2021-26858, используется атака SSRF для манипулирования виртуальными каталогами. По этой причине поле Username будет содержать учетную запись компьютера, в нашем случае lab.local \ EXCHANGE $, поскольку запрос был инициирован самим сервером Exchange. Учитывая этот факт, можно реализовать еще одно правило: 

  • event_log_source:’IIS’ AND http_method:’POST’ AND http_code:'200' AND url_path:'/ecp/DDI/DDIService.svc/SetObject' AND (Message contains 'schema=Reset' AND Message contains 'VirtualDirectory') AND Username contains '$' 

Содержимое конфигурационного файла test.aspx можно увидеть на скриншоте ниже, где в параметре ExternalUrl содержится заданный нами China Chopper.

Содержимое файла test.aspx

Попробуем запустить команду с загруженной веб-оболочкой. С помощью Burp Suite мы указываем интересующую нас команду в параметре POST a. Результат команды добавляется к ответу сервера, за которым следует содержимое файла конфигурации.

Выполнение команд с помощью загруженного веб-шелла.

сли мы посмотрим на события запуска процесса, мы увидим, что наша команда выполняется в рабочем процессе IIS, который запускает интерпретатор командной строки cmd.exe с соответствующими аргументами. 

Добавив условие для интерпретатора PowerShell, на подобную активность можно написать следующее правило: 

  • event_log_source:'Security' AND event_id:'4688' AND proc_parent_file_path end with:'\w3wp.exe' AND proc_file_path end with:('\cmd.exe' OR '\powershell.exe')
Активность веб-шелла в событиях журнала Security

На практике данная CVE использовалась как полезная нагрузка после обхода аутентификации с помощью уязвимости CVE-2021-26855. 

Уязвимость CVE-2021-26858 также позволяет записать произвольный файл на сервер Exchange, но для правильного использования требуется предварительная аутентификация. Эта уязвимость также может использоваться в сочетании с SSRF (CVE-2021-26858). 

Нет общедоступных PoC или других источников с подробным описанием операции. Однако Microsoft посоветовал, как обнаружить эту активность. Для этого реализуем следующее правило, используя служебные события OAB Generator: 

  • event_log_source:'OABGenerator' AND Message contains 'Download failed and temporary file' 

Файлы должны быть загружены только в директорию %PROGRAMFILES%\Microsoft\Exchange Server\V15\ClientAccess\OAB\Temp, запись файла в любые другие директории считается нелегитимной. 

Эксплуатация CVE-2021-26857 

CVE-2021-26857 — уязвимость небезопасной десериализации в сервисе единой системы обмена сообщениями Unified Messaging. 

Единая система обмена сообщениями позволяет использовать голосовую почту и другие функции, включая голосовой доступ к Outlook и правила ответа на вызовы. Для корректной работы этого сервиса необходимо его заранее настроить, и он используется редко. По этой причине в реальных атаках киберпреступники часто используют CVE-2021-27065.

Проблема содержится в методе Base64Deserialize класса CommonUtil, а сам класс — в пространстве имен Microsoft.Exchange.UM.UMCommon библиотеки Microsoft.Exchange.UM.UMCommon.dl

Код метода Base64Deserialize

Данный метод вызывается в основной библиотеке сервиса Unified Messaging — Microsoft.Exchange.UM.UMCore.dll, а именно в методе FromHeaderFile класса PipelineContext пространства имен Microsoft.Exchange.UM.UMCore. Таким образом, атакующий может сформировать свой сериализованный объект, например с помощью утилиты ysoserial.net, и удаленно выполнить свой код на сервере Exchange в контексте SYSTEM.

Фрагмент метода FromHeaderFile

В новой версии библиотеки Microsoft.Exchange.UM.UMCore.dll (после установки обновления) перед процессом их десериализации добавлено множество проверок типов входящих объектов. Как видно на скриншоте ниже, библиотека загружается в процесс UMWorkerProcess.exe. Следовательно, в случае использования уязвимости этим процессом будет инициирована аномальная активность.

Использование библиотеки Microsoft.Exchange.UM.UMCore.dll

Правило для обнаружения запуска подозрительных дочерних процессов процессом UMWorkerProcess.exe (старт cmd/powershell, по событиям журналов Security и Sysmon): 

  • event_log_source:'Security' AND event_id:'4688' AND proc_parent_file_path end with:'\UMWorkerProcess.exe' AND proc_file_path end with:('\cmd.exe' OR '\powershell.exe') 

В качестве полезной нагрузки в файловой системе может быть создан вредоносный файл, например реверс-шелл в каталоге автозагрузки или веб-шелл в одной из директорий IIS. Для детектирования данной активности можно реализовать следующее правило: 

  • event_log_source:’Sysmon’ AND event_id:'11' AND proc_file_path end with:'\UMWorkerProcess.exe' AND file_name end with:(*.asp OR *.aspx) AND file_path contains:("\ClientAccess\Owa\" OR "\HttpProxy\Owa\" OR "\inetpub\wwwroot\" OR "\www\")

Заключение 

По данным Microsoft, в настоящий момент на серверах MS Exchange находятся около 92% серверов, которые были обновлены и больше не уязвим для ProxyLogon. В любом случае, если вы еще не установили патчи, то вам необходимо это сделать как можно скорее.

Если сервера уже были обновлены, стоит проверить работоспособность ProxyLogon и устранить последствия. Это можно сделать с помощью встроенного журнала событий ОС и сервера Exchange.

Задержка с обнаружением новой бреши в Exchange Server и новых нападок – это вопрос времени, поэтому важно не просто обеспечить защиту своих почтовых серверов, но и заранее провести запись и мониторинг важных событий безопасности.

Источник



Report Page