
Código de exploit PoC para CVE-2021-26855
Código de exploit PoC para CVE-2021-26855.
El código original fue desarrollado por https://github.com/GreyOrder.
CVE-2021-26855 ssrf uso simple de ejercicios golang Versión afectada
Exchange Server 2013 es menor que CU23
Exchange Server 2016 es menor que CU18
Exchange Server 2019 es menor que CU7
Condiciones de uso
Esta vulnerabilidad es diferente de vulnerabilidades anteriores de Exchange. Esta vulnerabilidad no requiere una identidad de usuario que pueda iniciar sesión. Puede obtener recursos internos de usuarios sin autorización. Se puede usar junto con CVE-2021-27065 para implementar ejecución remota de comandos.
Requisitos de activación de la vulnerabilidad
Vulnerabilidad en el servidor objetivo
El servidor Exchange objetivo debe ser un servidor de balanceo de carga, es decir, dos o más servidores se usan al mismo tiempo
La dirección de correo electrónico objetivo. Tenga en cuenta que la dirección debe ser una dirección de correo electrónico en el dominio en lugar de una dirección de correo electrónico. Hay una diferencia entre ambas. Después de las pruebas, no es así, siempre que sea la dirección de correo electrónico correcta, excepto en circunstancias especiales
El atacante también debe identificar el Nombre de Dominio Completo (FQDN) del servidor Exchange interno. De hecho, solo se requiere el nombre de host del servidor, porque el nombre de host se puede resolver dentro del dominio.
De los cuatro elementos anteriores, el FQDN puede ser capturado por el mensaje tipo2 de ntlm; las direcciones de correo electrónico pueden enumerarse directamente. Una explicación adicional para el FQDN, porque solo uso el tipo2 ntlm para capturar información del sistema, el FQDN obtenido por la herramienta por defecto es la máquina actualmente accedida, por lo que la vulnerabilidad no se puede activar directamente. Debe juzgar manualmente basándose en el nombre FQDN y usar -n para reemplazar el nombre de host de otro servidor Exchange. Instrucciones de uso
Para explotar esta vulnerabilidad, es más conveniente usar un lenguaje de scripting como ruby o python. Está escrito en golang para aprender golang, por lo que esta pequeña herramienta solo puede considerarse un producto semiacabado y se actualizará cuando haya tiempo.
Esta herramienta actualmente soporta las siguientes funciones:
Detección de vulnerabilidad (solo comprueba si se puede impactar, y no se puede usar para detección)
Enumeración de usuarios
Lectura simple de id de correo y asunto
Descarga de correo (mejorado, ahora es un archivo eml estándar)
Leer los contactos guardados por el usuario (tenga en cuenta que no es global, solo los contactos guardados por el objetivo)
Carpeta especificada, no arbitraria, consulte https://docs.microsoft.com/en-us/exchange/client-developer/web-service-reference/distinguishedfolderid para más detalles
Para otros usos, modifique usted mismo el contenido xml.
Uso:
go run CVE-2021-26855-PoC.go -h
-h string obligatorio, dirección objetivo o nombre de dominio
-U string opcional, lista de usuarios a enumerar
-d opcional, descargar correo
-l opcional, listar la lista de correos
-n string opcional, necesita especificar FQND para completar
-t string opcional, tiempo de retardo de solicitud (por defecto "1")
-u string opcional, especificar el objetivo (por defecto "administrator")
-c opcional, leer los contactos guardados por el usuario actual, no todos
-f string opcional, especificar la carpeta a ver (por defecto "inbox")