
PoC-код эксплойта для CVE-2021-26855
Эксплойт PoC для CVE-2021-26855.
Оригинальный код разработан https://github.com/GreyOrder.
CVE-2021-26855 ssrf простое использование упражнений golang Затронутые версии
Exchange Server 2013 меньше CU23
Exchange Server 2016 меньше CU18
Exchange Server 2019 меньше CU7
Условия использования
Эта уязвимость отличается от предыдущих уязвимостей Exchange. Для данной уязвимости не требуется учетная запись пользователя, который может войти в систему. Она позволяет получать внутренние ресурсы пользователя без авторизации. Может использоваться вместе с CVE-2021-27065 для удаленного выполнения команд.
Требования для срабатывания уязвимости
Наличие уязвимости на целевом сервере
Целевой сервер Exchange должен быть сервером балансировки нагрузки, то есть одновременно используются два или более серверов
Целевой адрес электронной почты. Обратите внимание, что адрес должен быть адресом электронной почты в домене, а не просто адресом электронной почты. Между ними есть разница. После тестирования оказалось, что это не так, достаточно правильного адреса электронной почты, за исключением особых случаев
Атакующий также должен определить полное доменное имя (FQDN) внутреннего сервера Exchange. На самом деле требуется только имя хоста сервера, так как имя хоста может быть разрешено в домене.
Из четырех пунктов выше, FQDN может быть получен из сообщения NTLM type2; адреса электронной почты могут быть перечислены напрямую. Дополнительное пояснение по FQDN: поскольку я использую только NTLM type2 для захвата информации о системе, FQDN, получаемый инструментом по умолчанию, является текущей доступной машиной, поэтому уязвимость не может быть непосредственно использована. Вам нужно вручную определить на основе имени FQDN и использовать -n для замены имени хоста другого сервера Exchange. Инструкция по использованию
Для эксплуатации этой уязвимости удобнее использовать скриптовые языки, такие как Ruby или Python. Инструмент написан на Golang для изучения Golang, поэтому его можно рассматривать только как полуфабрикат, который будет обновляться при наличии времени.
В настоящее время инструмент поддерживает следующие функции:
Обнаружение уязвимости (просто проверяет, возможно ли попадание, и не может использоваться для детектирования)
Перечисление пользователей
Простое чтение ID и темы письма
Загрузка почты (обновлено, теперь стандартный файл eml)
Чтение сохраненных контактов пользователя (обратите внимание, что не глобальные, только контакты, сохраненные целевым пользователем)
Указание папки, не произвольное, подробнее см. https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/distinguishedfolderid
Для других целей измените содержимое xml самостоятельно.
Использование:
go run CVE-2021-26855-PoC.go -h <целевой IP>
-h string обязательно, целевой адрес или доменное имя
-U string опционально, необходимо перечислить список пользователей
-d опционально, загрузить почту
-l опционально, вывести список рассылки
-n string опционально, необходимо указать FQND для заполнения
-t string опционально, задержка запроса (по умолчанию "1")
-u string опционально, указать цель (по умолчанию "administrator")
-c опционально, прочитать сохраненные контакты текущего пользователя, не все
-f string опционально, указать папку для просмотра (по умолчанию "inbox")