PetitPotam: recomendaciones sobre las medidas a implementar para neutralizar este ataque

PetitPotam: un ataque de tipo relay NTLM

PetitPotam es una técnica de ataque identificada por el investigador de seguridad Lionel GILLES.

Este ataque pertenece a la familia de los ataques relay NTLM. NTLM (o NT LAN Manager) es un protocolo de autenticación ampliamente utilizado en las tecnologías de Microsoft. NTLM se basa en una técnica denominada de «desafío-respuesta» (challenge/response). Esta técnica permite demostrar la identidad sin transmitir la contraseña, mediante cálculos de huellas criptográficas. El concepto de NTLM es el siguiente:

  • el usuario conoce su identificador y su contraseña;
  • el servidor de destino también conoce el identificador y la contraseña del usuario;
  • la prueba de identidad del usuario se realiza mediante la transmisión de un valor, al cual el usuario añade su contraseña y calcula una huella criptográfica;
  • por su parte, el servidor de destino realiza la misma operación y calcula también la huella criptográfica;
  • el usuario transmite entonces la huella y el servidor de destino la compara con la que calculó previamente, permitiendo así verificar la legitimidad de la conexión.

Un ataque de tipo «relay NTLM» consiste en forzar a un usuario objetivo a realizar una conexión hacia un sistema comprometido, para luego retransmitir las solicitudes obtenidas hacia el servicio que se desea atacar. Esta operación permite al atacante resolver el problema de desafío-respuesta en nombre de otro usuario, obteniendo así una elevación de privilegios.

El ataque PetitPotam permite forzar a un controlador de dominio a realizar una solicitud hacia un servicio NTLM controlado por el atacante, utilizando la API MS-EFSRPC. Si tiene éxito, el atacante obtiene derechos completos sobre el controlador de dominio.

PetitPotam no será corregido por Microsoft

Microsoft indica en su artículo KB5005413 que:

  • PetitPotam es un ataque clásico de la familia de los ataques relay NTLM;
  • Existen numerosas recomendaciones técnicas ya documentadas que permiten neutralizar estos ataques.

En consecuencia, Microsoft indica que PetitPotam no recibirá parches de seguridad. Corresponde a cada organización aplicar las contramedidas adecuadas en los controladores de dominio para evitar este ataque.

¿Qué sistemas están afectados por PetitPotam?

La ANSSI especifica en su boletín CERTFR-2021-ACT-032 que PetitPotam tiene como objetivo «los servidores en los que los servicios de certificación de Active Directory (AD CS) no están configurados con protecciones contra ataques de retransmisión NTLM. Las medidas de mitigación descritas en la KB5005413 indican a los usuarios cómo proteger sus servidores AD CS contra dichos ataques».

La ANSSI también señala que son potencialmente vulnerables las redes donde la autenticación NTLM está activada dentro de un dominio y si los servicios de certificación «Active Directory Certificate Services (AD CS)» son los siguientes: Inscripción web de la entidad de certificación (Certificate Authority Web Enrollment) y Servicio web de inscripción de certificados (Certificate Enrollment Web Service).

¿Existen kits de ataque o exploits para utilizar PetitPotam?

Lionel GILLES (topotam) ha publicado un exploit en GitHub, que utiliza las tuberías con nombre (named pipes) LSARPC y EFSRPC, a través de las interfaces c681d488-d850-11d0-8c52-00c04fd90f7e y df1941c5-fe89-4e79-bf10-463657acf44d.

¿Cómo neutralizar PetitPotam?

El enfoque más sencillo hoy en día y que genera menos efectos secundarios es añadir filtros RPC. En este caso, estos filtros se añaden a nivel de red, en la capa «User Mode» (UM), para bloquear las solicitudes en las interfaces utilizadas por PetitPotam.

Benjamin Delpy propone el siguiente procedimiento, también recomendado por Bleeping Computer:

  1. En su escritorio, cree un archivo llamado « block_efsr.txt » que contenga las siguientes líneas:

rpc
filtro
add rule layer=um actiontype=block
add condition field=if_uuid matchtype=equal data=c681d488-d850-11d0-8c52-00c04fd90f7e
añadir filtro
add rule layer=um actiontype=block
add condition field=if_uuid matchtype=equal data=df1941c5-fe89-4e79-bf10-463657acf44d
añadir filtro
quit

  1. Haga clic en «Inicio», busque «cmd» y ejecute el «Símbolo del sistema» como administrador.
  2. A continuación, en el Símbolo del sistema, ejecute:

netsh -f %userprofile%\desktop\block_efsr.txt

Puede verificar que el procedimiento se ha realizado correctamente mediante el comando:

netsh rpc filter show filter

Si comentamos línea por línea el archivo block_efsr.txt, este consiste en:

  • Añadir una regla (add rule) de bloqueo (actiontype=block) en la capa de usuario (layer=um para User Mode)
  • Definir como condición de activación de la regla el uso de un UUID (field=if_uuid) cuyo valor sea igual (matchtype=equal) a uno de los UUID utilizados por PetitPotam (c681d488-d850-11d0-8c52-00c04fd90f7e para LSARPC y df1941c5-fe89-4e79-bf10-463657acf44d para EFSRPC)

Para eliminar las reglas configuradas de este modo, basta con ejecutar el comando:

netsh rpc filter show filter

A continuación, anote los valores filterKey utilizados por los 2 filtros de PetitPotam y ejecute:

netsh rpc filter delete filter filterkey=<clé_du_filtre_à_supprimer>

Además de este enfoque relativamente eficaz y de bajo impacto, Microsoft también recomienda activar la EPA (Extended Protection for Authentication) y desactivar HTTP en los servidores que utilizan AD CS. Cyberwatch deja a elección del lector la aplicación de estas medidas, ya sea como complemento o como sustitución de los filtros RPC.

Cyberwatch Compliance Manager ofrece una regla de cumplimiento para verificar la presencia de las reglas de filtrado RPC en su controlador de dominio. No dude en solicitar una demostración a través del formulario correspondiente.

Gracias por enviar el formulario.