No había pasado ni un mes antes de que decidiéramos que era hora de escribir artículos basados en los resultados de nuestras actuaciones en OFFZONE-2018. El primer artículo se ejecutará en función del informe de FastTrack "Ataque de MS Exchange Relay sin sms ni registro".
Cuando se lleva a cabo RedTeam, el uso del phishing es obligatorio: puede crear una excelente protección en el perímetro, pero algunos usuarios conducirán al phishing y le darán a un atacante la oportunidad de estar inmediatamente dentro de la red. Todos saben que para el phishing utilizan principalmente enlaces a sitios de terceros en los que el usuario debe hacer clic o un documento con una macro. Los servicios de seguridad bajo la amenaza de sanciones "entrenan" a los usuarios, diciendo que en ningún caso debe hacer clic en el botón "habilitar contenido". Y, en principio, hay éxito: los usuarios en este tipo de correo son cada vez menos. Pero los atacantes tampoco se quedan quietos: el phishing se está volviendo cada vez más interesante. Los clientes también requieren algunos correos de phishing interesantes de nuestra parte. Y nosotros mismos estamos interesados en el hecho de que los empleados del Cliente son llevados a la suplantación de identidad, y podríamos explicarles qué buscar al recibir una carta.
¿Por qué exactamente estos métodos de phishing?
Muchas compañías usan MS Exchange como un servidor de correo corporativo. Esto es conveniente para la empresa, pero también conveniente para el atacante. Un atacante está interesado en enviar mensajes desde el correo de la víctima, así como en descargar cualquier carta. Nosotros, como RedTeam, queremos imitar completamente las acciones de un atacante y estamos interesados en hacer las mismas acciones con el correo. Naturalmente, en nuestro caso, la descarga de correo no está completa y el Cliente recibe una notificación previa al respecto. Para información confidencial, todas las cosas.
Para llevar a cabo este tipo de acción, necesitamos una sesión de correo de usuario. Lo primero que debe pensar es cómo interceptar una sesión de este tipo. Decidimos usar el viejo y bueno NTLM Relay (ya que la mayoría de las compañías todavía usan NTLM). Sí, en el caso de Kerberos no funcionará; puede cerrar el artículo y no leer más.
NTLM Relay se conoce desde hace mucho tiempo y hay suficientes implementaciones del mismo. Tampoco inventamos una bicicleta, y tomamos una de las implementaciones con GitHub de Arno0x0x. Sin embargo, no todo fue tan simple y tuve que agregar un poco. A saber:
- hacer que todo funcione con todas las versiones modernas del sistema operativo Windows (no funciona en win10 y win server2016);
- haz que funcione con el último Impacket;
- agregue un conveniente sistema de registro.
Se puede encontrar una versión modificada en nuestro
github .
Los documentos de Microsoft Office se eligieron como el contenedor para la entrega, ya que generalmente se envían por correo corporativo y los usuarios los abren. Además, se decidió utilizar documentos adjuntos (SubDocument), porque es una operación legal con un documento, y ningún antivirus responderá a dicho archivo. Como enlace anidado, puede incluir recursos smb y http. Los detalles se discutirán más adelante.
¿Cómo crear un documento de phishing?
Como ejemplo, considere el documento completamente "limpio" mydoc3.docx, que es el documento de Microsoft Word más común.

Cualquier documento de Microsoft Office es un archivo zip que consta de xml, que finalmente forma su hermoso documento. Para hacer un documento adjunto, necesitamos hacer cambios a los archivos con la extensión .rels. Dependiendo de la versión de MS Office, los cambios deben realizarse en document.xml.rels o en settings.xml.rels. Este artículo analiza Office 365 y realiza cambios en settings.xml.rels.

Como documento adjunto, le damos un enlace al recurso en el que se encuentra este mismo documento adjunto. En nuestro caso, el documento adjunto se encuentra en el recurso smb \\ 127.0.0.1 \ subdoctest \

Guardamos los cambios y abrimos el documento recibido. Si tiene éxito, el documento se verá así:

Sin embargo, de esta forma, causa sospechas entre los usuarios. Debe cambiarlo un poco e intentar ocultar el enlace utilizando varios estilos y colores de fuente blancos.

Como resultado, recibimos un documento completamente no sospechoso, al abrir el cual Word mismo irá al recurso por su parte, que está registrado con él como documento adjunto.
¿Y de dónde vendrá todo?
El documento será eliminado en su servidor (de hecho, deberían darle un enlace). El servidor puede ser un servidor SMB o un servidor HTTP (ver casos a continuación). Este artículo solo considera un ejemplo de envío de un mensaje desde el correo de un usuario cuya sesión interceptamos.
Para comenzar todo, un conjunto mínimo es suficiente: el último
Impacket ,
MSExchangeRelay y Python2.7.
Comenzamos todo con el comando:
python MsExchangeRelay.py -v -t https://exchange_addr/ews/exchange.asmx -r sendMail -d "example@email.com" -s Hello -m sampleMsg.html -o out.txt
exchange_addr – exchange example@email.com – . -s Hello – -m sampleMsg.html – , -o out.txt – .
Después de comenzar, los servidores SMB y HTTP se elevan en el servidor, que están esperando una conexión con ellos.

Después de una conexión exitosa, puede ver con qué inicio de sesión y desde qué dirección IP ha iniciado sesión el usuario:

¿Cómo aplicarlo ahora?
Puede usar este método en diferentes casos.
Caso 1. Intruso externo, el cliente tiene un puerto 445 salienteEn este caso, puede usar el enlace al recurso smb. Todo el encanto de tal enlace es que Windows no quiere molestar al usuario nuevamente si puede manejarlo ella misma. En consecuencia, cuando abre un documento con un enlace al recurso smb, Windows envía los créditos de dominio del usuario a este recurso. Es decir, no le pasa nada al usuario. El usuario abre el documento. Y eso es todo. La sospecha no causa nada. Y ya tenemos una sesión de correo electrónico personalizada.
El puerto abierto 445, aunque raro, todavía se encuentra. Por lo tanto, también lo consideramos y lo dejamos.
Caso 2. Intruso interno
Aquí también aplicamos el enlace al recurso smb. En caso de una intercepción exitosa de la sesión, la carta que indicamos se enviará a la dirección de correo indicada.
Caso 3. El intruso externo y el puerto de salida 445 están cerrados
Podemos usar el enlace al servidor HTTP. Sin embargo, en este caso, todo no será tan transparente para el usuario. Al abrir el documento, el usuario verá una ventana estándar de Windows, que solicita el nombre de usuario y la contraseña del usuario. El momento que puede confundir al usuario, el nombre de dominio evil_http_server, debe ser lo más similar posible al nombre de dominio del servidor de Exchange del Cliente.

Después de que el usuario ingresa sus créditos, recibimos su sesión y enviamos una carta.
En lugar de una conclusión
NTLMRelay se puede empaquetar en diferentes contenedores y presentar enfoques completamente diferentes para los usuarios de phishing. Mientras NTLM está vivo, este tipo de ataque también está vivo. ¡Así que experimenta!
PD: ¡Gracias a los organizadores de OFFZONE-2018 por una excelente conferencia!