
CVE-2020-0688 PoC
Эта концептуальная проверка для CVE-2020-0688 включает функции для сканирования и эксплуатации уязвимого локального экземпляра Exchange.
scan — укажите учетные данные и информацию о цели для получения файлов cookie, необходимых для эксплуатации, и сохраняет их в 'cookies.txt'. Также проверяет доступность службы панели управления Exchange (ECP) для целевого сервера Exchange, пытается аутентифицироваться в этой службе и проверяет совпадение соответствующего значения VIEWSTATEGENERATOR. Если аутентификация успешна, будет выведено значение сессионного cookie для создания сериализованной полезной нагрузки.
generate — укажите значение сессионного cookie, полученное из функции 'scan', а также команду для выполнения кода. Это отформатирует ваш ввод для ysoserial.net для генерации сериализованной полезной нагрузки для выполнения кода. Сохраните вывод ysoserial в файл, например 'payload.txt'.
exploit — принимает ввод вашего файла cookies, полученного при использовании функции 'scan' с успешной аутентификацией, и URL-кодирует содержимое вашего файла полезной нагрузки. Эксплойт выполняет соответствующий аутентифицированный запрос для запуска выполнения кода на уязвимых локальных экземплярах Exchange.
$./ecp_slap
scan - Scan an Exchange host and obtain cookies needed for exploitation:
./ecp_slap scan -t 10.1.1.5 -d corp.local -u admin -p badpassword
./ecp_slap scan -t mail.corp.com -d CORP -u admin -p badpassword
generate - Generate the ysoserial.net command for payload creation:
./ecp_slap generate -s [ASP.NET_SessionId] -c [COMMAND]
./ecp_slap generate -s 81c35474-6a73-4a1c-af45-b3985e7d7ad1 -c "echo test > C:/temp/test.txt"
exploit - Exploitation of a vulnerable Exchange server:
./ecp_slap exploit -t 192.168.5.22 -c cookies.txt -p payload.txt
./ecp_slap exploit -t mail.corp.com -c cookies.txt -p payload.txt
Если вы проверили, что версия локального Exchange, которую вы пытаетесь эксплуатировать:
но вы все еще не можете проверить успешное выполнение кода, подумайте о выполнении простых команд для оценки, работает ли выполнение кода, например:
Начните с рекомендации MSRC по безопасности, которая будет содержать подробности об исправлениях и уязвимых версиях локального Exchange. Сопоставление исправлений с номерами сборок Exchange от Microsoft поможет определить уязвимость. Чтобы вручную воспроизвести эксплуатацию этой уязвимости, следуйте невероятной статье ZDI.
Если вы решите скомпилировать этот проект из исходного кода, вместо того чтобы скачать скомпилированный релиз, настройка вашей среды Go часто так же проста, как установка GoLang и установка соответствующей переменной окружения. Шаги для этого описаны здесь.