Ataques Pass the Hash, todo lo que debes saber

Recientemente descubrimos los ataques Kerberos Golden Ticket y Silver Ticket: peligrosos ataques de falsificación de tickets Kerberos en los que un adversario obtiene el control de una cuenta de administrador local o de dominio en un entorno de Active Directory y abusa de ese acceso para falsificar un ticket Kerberos Ticket Granting Service (TGS). Esto le da al atacante acceso a cualquier recurso en un dominio de Active Directory.

Una pregunta que nos hacen a menudo en la discusión de estos ataques es cómo los atacantes pueden obtener el acceso administrativo necesario para generar una falsificación de Silver o Golden Ticket. La respuesta, a menudo, es a través de un método común conocido como ataque «Pass the Hash»: un ataque de robo y reutilización de credenciales que es uno de los métodos más comunes de movimiento lateral dentro de entornos de TI comprometidos. En pocas palabras: los ataques Pass the Hash aprovechan una limitación fundamental en el protocolo NTLM que permite a los atacantes capturar hashes de contraseña almacenados en la memoria y reutilizarlos para acceder a otros recursos de la red.

En esta publicación, profundizaremos en los ataques Pass The Hash (PtH) y explicaremos cómo funcionan, las condiciones necesarias para que un atacante use uno para moverse dentro de tu entorno y, lo que es más importante, cómo responder a ellos cuando ocurren intentos.

¿Qué son los ataques pass the hash (PtH)?

Un ataque pass the hash (PtH) es un exploit en línea en el que un actor malicioso roba una credencial de usuario con hash, no la contraseña real en sí, y usa el hash para engañar al mecanismo de autenticación para que crea una nueva sesión autenticada dentro de la misma red.

Un ataque pass the hash no finaliza una vez que se crea la nueva sesión autenticada. El objetivo del atacante con esa sesión inicial «falsificada» es permitir el movimiento lateral. El movimiento lateral significa que los actores maliciosos usan la credencial hash para extraer más información y credenciales para moverse lateralmente entre dispositivos y cuentas. Lo hacen con la esperanza de escalar sus permisos de usuario para acceder a sistemas críticos, como la cuenta de administrador de red. Y ahí es cuando comienza la verdadera diversión…

Si bien los ataques Pass-the-Hash pueden ocurrir en Linux, Unix y otras plataformas, son más frecuentes en los sistemas Windows. En Windows, PtH aprovecha el inicio de sesión único (SS0) a través de NT Lan Manager (NTLM), Kerberos y otros protocolos de autenticación. Cuando se crea una contraseña en Windows, se codifica y se almacena en el Administrador de cuentas de seguridad (SAM), la memoria de proceso del Subsistema de autoridad de seguridad local (LSASS), el almacén del Administrador de credenciales (CredMan), una base de datos ntds.dit en Active Directory o en otra parte. Cuando un usuario inicia sesión en una estación de trabajo o servidor de Windows, esencialmente deja atrás sus credenciales de contraseña.

¿Cómo funcionan?

Para ejecutar un ataque pass the hash, el atacante primero obtiene los hash del sistema de destino utilizando cualquier cantidad de herramientas de volcado de hash, como fgdump y pwdump7. Luego, el atacante usa estas herramientas para colocar los hash obtenidos en un Servicio de subsistema de autoridad de seguridad local (LSASS).

Para comprender cómo funciona un ataque pass the hash, primero debemos comprender qué son los hash y cómo se utilizan en los sistemas de gestión de acceso e identidad (IAM) y en la seguridad de la información en general. Un hash es una función matemática que convierte una cadena de datos en texto cifrado. Es una función unidireccional en la que el hash no se puede «descifrar» para revelar la cadena original.

Los hashes se utilizan para validar contraseñas, entre otras cosas. Cuando inicias sesión en un sistema, ejecutas la misma función hash utilizada cuando creaste tus credenciales de inicio de sesión por primera vez. Si los hash resultan coincidentes, el sistema lo autentica. Por ejemplo, supón que tu contraseña es «Fido123». El hash de esa contraseña podría ser 5364984657. En lo que respecta al mecanismo de autenticación, tu contraseña es 5364984657, no «Fido123».

Los hashes brindan beneficios de seguridad porque evitan almacenar credenciales en texto sin formato. La contraseña «Fido123» nunca se guardará en el sistema. Los hashes también son prácticos para los sistemas de inicio de sesión único (SSO). Una vez que un usuario ha iniciado sesión en la red, el sistema SSO puede usar la combinación de hash de nombre de usuario y contraseña para autenticarlos continuamente mientras realizan su trabajo e inician sesión en otras aplicaciones y servidores.

Todo eso suena genial, pero hay problemas. Supongamos que un actor malicioso puede acceder al hash; luego pueden usarlo para hacerse pasar por el usuario en todo el entorno de SSO y crear sesiones autenticadas en tu nombre.

No solo eso, sino que cualquier usuario remoto que inicie sesión en esa máquina tendrá tus hashes almacenados en el sistema. Si el administrador del sistema inició sesión en esa máquina, hay un hash muy valioso almacenado en la memoria de esa máquina.

De cualquier manera, el atacante puede pasar el hash de un inicio de sesión a otro. Luego pueden recolectar otras contraseñas codificadas que encuentran una medida que se mueven de una aplicación a otra y de una máquina a otra. Y cada nueva maquina puede estar cargada con hashes valiosos. Con la recolección de hashes y el movimiento lateral dentro de la red, el atacante podría obtener acceso a las partes más críticas de tu infraestructura de TI.

Una vez que una máquina basada en Windows se ve comprometida y el malware implementado tiene acceso a los nombres de usuario locales y los hashes, el atacante puede elegir si buscar más credenciales o intentar acceder a los recursos de la red utilizando las credenciales de usuarios elevados.

Por ejemplo, al recopilar más credenciales de usuario, un atacante puede recuperar las credenciales de usuarios que tienen cuentas separadas en la máquina con Windows, como una cuenta de servicio, o que tienen acceso remoto a la computadora como administrador de inicio de sesión. Los administradores remotos de información de la tecnología (TI) que iniciaron sesión en la máquina Windows comprometida expondrán su nombre de usuario y hash al malware ahora integrado. Un atacante que tenga credenciales de administrador de TI puede moverse lateralmente a través de dispositivos en red.

El movimiento lateral es una forma eficaz de buscar usuarios con privilegios elevados, como derechos administrativos sobre recursos protegidos. La escalada de privilegios se puede obtener encontrando las credenciales de un administrador con mayor acceso administrativo. Por ejemplo, un atacante pass the hash podría localizar las credenciales de inicio de sesión del administrador del dominio a través de un movimiento lateral.

Al reconocer sus privilegios elevados, los piratas informáticos pueden comenzar a ejecutar procesos como administrador de dominio en el controlador de dominio. Estos recursos elevados también podrían incluir bases de datos de clientes, depósitos de código fuente y servidores de correo electrónico.

Antes de Windows 10, había pocos obstáculos en el camino para que un pirata informático obtuviera hashes de una máquina Windows comprometida. Windows 10 abordó estas debilidades al agregar una característica de seguridad conocida como Microsoft Windows Defender Credential Guard.

Mediante el uso de tecnología de seguridad basada en la virtualización, puede aislar el LSASS, lo que permite que solo las aplicaciones privilegiadas y de confianza accedan a los datos e interactúen con ellos. La virtualización de LSASS significa que las aplicaciones maliciosas ya no pueden acceder a los hashes, incluso mientras se ejecutan con plenos derechos de administrador.

Posible flujo de ataque

  • El atacante compromete una estación de trabajo de bajo nivel a través de phishing, malware, etc.
  • La estación de trabajo contiene hash utilizados para el usuario actual, así como para otros usuarios que pueden haber iniciado sesión en la estación de trabajo de forma directa o remota. El atacante extrae todos estos hashes de la memoria. Pero, en particular, no se encuentran el hash del administrador del dominio.
  • Luego, el atacante usa PtH para iniciar sesión en cualquier otra estación de trabajo para la que obtuvo un hash. Eso se hace automáticamente y se conoce como ataque de pulverización de hash.
  • Mientras sucede lo anterior, se extraerá una lista de hashes de cuentas locales y de dominio.
  • Eventualmente, con un poco de suerte, una de las estaciones de trabajo tendrá un hash de cuenta de dominio privilegiado en la memoria que se usará para obtener acceso a bases de datos, servidores de archivos y controladores de dominio.

Los ataques pass the hash tienden a ser uno de los ataques en línea más exitosos. Una de las razones de esta alta tasa de éxito es que el atacante no necesita engañar a un miembro de tu equipo de TI para que comprometa sus credenciales. Simplemente necesita encontrar una manera de dañar un dispositivo o una cuenta de usuario dentro de la red. Esto se puede hacer a través de una campaña de phishing o infectando a un usuario con malware.

Si tu administrador de TI ingresa sus credenciales de cuenta privilegiadas en su máquina, su contraseña se almacenará en la memoria como un hash incluso si se conecta de forma remota. Si un atacante puede dañar y acceder a su dispositivo, podrá capturar el hash del administrador de TI. Entonces estarán en condiciones de crear una sesión autenticada haciéndose pasar por el administrador de sistemas sin necesidad de saber su contraseña real.

Riesgos de estos ataques

Los riesgos de los ataques pass the hash son difíciles de calificar. En realidad, pueden ser difíciles de calificar porque son demasiado fáciles de calificar.

Debido a que el potencial de daño de un ataque de hash está vinculado al nivel de permisos de las credenciales comprometidas (los hash robados), los riesgos pueden ser casi cualquier cosa, desde la pérdida de datos hasta la toma de control completo y todo lo demás.

Eso incluye, pero no se limita a:

  • Violaciones de datos
  • Filtración de información sensible/privada en línea
  • Ataques de ransomware
  • Robo de identidad
  • Modificación de archivos críticos
  • Desconectar la red
  • Bloquear a los usuarios de sus cuentas
  • Redirigir el tráfico a sitios maliciosos
  • Activar la descarga de malware
    Y la lista sigue…

Ejemplo: Electrobas & Copel

En febrero de 2021, Centrais Eletricas Brasileiras (Eletrobras) y Companhia Paranaense de Energia (Copel), dos importantes empresas eléctricas brasileñas, anunciaron que fueron víctimas de ataques de ransomware. Los ataques de ransomware fueron posibles gracias a un ataque pass the hash.

Los actores malintencionados podrán extraer hash de contraseñas de la base de datos de Active Directory (AD), específicamente, el archivo NTDS.dit. Una vez que los atacantes tienen los hashes en su poder, procedieron a moverse lateralmente a través de la cadena de permisos de usuario hasta que pueden extraer hashes que tienen permisos lo suficientemente elevados como para llevar a cabo el ataque de ransomware.

Cómo mitigar los ataques pass the hash

La forma de reducir los riesgos los ataques pass the hash es diferente para los usuarios que para los administradores del sistema. Proporcionaremos consejos para ambos.

Para administradores del sistema

Los ataques Pass the hash son difíciles de detectar y prevenir porque utilizan credenciales y protocolos de red legítimos. Por lo tanto, tu mejor apuesta es dificultar que las cuentas comprometidas se utilicen para el movimiento lateral y la escalada de permisos.

Habilitar la protección de credenciales de Windows de Defender

Credential Guard de Windows Defender es una herramienta de seguridad incluida en Microsoft Windows 10 y superior que se puede usar para reducir los ataques hash. Fortalece el Servicio de subsistema de la autoridad de seguridad local (LSASS), un proceso de Windows que aplica la política de seguridad en el sistema, al ejecutar el proceso dentro de un entorno limitado seguro mediante la virtualización.

Deshabilitar hashes de administración de Lan (LM)

Windows almacena contraseñas utilizando un hash LM y un hash de Windows NT. Según Microsoft, el hash de LM es más débil que el hash de Windows NT y es vulnerable a los ataques de fuerza bruta.

Limita el número de cuentas con derechos de administrador

Se requieren privilegios administrativos para extraer hashes de LSASS, por lo que limitar la cantidad de cuentas de administrador dentro de tu organización tiene sentido. Cuantas menos cuentas de administrador tengas, más difícil será pasar los ataques hash a través de tu red.

No uses el Protocolo de escritorio remoto (RDP) para administrar las estaciones de trabajo de los usuarios

Muchas aplicaciones RDP guardan copias de sus hash, expandiendo su superficie de ataque para los ataques pass the hash. En su lugar, usa una herramienta de consola que te permita conectarse a computadoras remotas.

Designar máquinas de administración protegidas

Siempre ten administradores que realicen tareas administrativas desde computadoras altamente seguras y confiables para limitar aún más tu superficie de ataque.

Utiliza soluciones de contraseña de administrador local de Microsoft (LAPS)

LAPS es otra herramienta de seguridad nativa de Windows que puedes habilitar para asegurarte de que la cuenta de administrador local use una contraseña compleja diferente para cada computadora en la que inicie sesión. Eso hace que el movimiento lateral sea mucho más difícil para un atacante.

Establece reglas de firewall para evitar los ataques pass the hash

Por supuesto, deberías estar usando un firewall. Pero debes asegurarte de usarlo de una manera que mitigue los ataques hash. Si bien es posible que muchos, si no la mayoría, de los usuarios dentro de tu organización necesiten conectarse a controladores de dominio y servidores de archivos remotos, por lo general no necesitan conectarse a otros dispositivos de usuarios finales. Asegúrate de configurar tu firewall con reglas para evitar estas conexiones laterales. Eso también hará que el movimiento lateral sea más difícil para el atacante.

Brindar capacitación en concientización sobre seguridad

La capacitación en seguridad para tu personal lo ayudará a mitigar los ataques hash, así como muchos otros tipos de ataques. En términos de mitigar los ataques pass the hash, dicha capacitación ayudará a tus usuarios a detectar el correo electrónico de phishing inicial u otras técnicas de ingeniería social utilizadas para limpiar el primer conjunto de credenciales necesarias para acceder a la red. Cuanto mejor preparado esté tu personal, menores serán los riesgos de sufrir ataques pass the hash.

Limitar los permisos de la cuenta de administrador de dominio

Debes limitar los permisos de la cuenta de administrador de dominio a los controladores de dominio y delegar funciones de administración a otras cuentas. Eso limitará el valor de una cuenta comprometida. Además, no permitas que un único usuario sea el administrador local de varios sistemas.

Uso de un sistema de gestión de eventos e información de seguridad (SIEM)

Un sistema de administración de eventos e información de seguridad (SIEM) te permitirá monitorizar la autorización y los registros de acceso y detectar patrones inusuales de actividades que podrían indicar un compromiso de cuenta. Cuanto antes se detecte una infracción, menos daño puede causar.

Automatiza los cambios frecuentes de contraseña para los administradores del sistema

Cambiar con frecuencia tus credenciales de administrador hace que un ataque pass the hash sea mucho más difícil de lograr. Esta práctica limitará la ventana de tiempo de un atacante para causar un daño severo si logra acceder al hash del administrador.

Para usuarios

Estos son principalmente consejos de sentido común que pueden ayudar a evitar varias amenazas en línea. Sin embargo, los tres primeros puntos están directamente relacionados con la mitigación de los ataques hash.

  • Cierra sesión y reinicia tu computadora: cuando termines de usar tu computadora, cierra sesión y reinicia la máquina. Eso borrará los hashes de la memoria.
  • No abras archivos adjuntos en correos electrónicos sin saber quién es el remitente y confirmar con ellos que te enviaron el correo electrónico en cuestión y saben de qué se trata el archivo adjunto.
  • No hagas clic en enlaces (URL) en correos electrónicos a menos que estés seguro de saber quién envió la URL, cuál es su destino y que el remitente no está siendo suplantado. Incluso entonces, asegúrate de examinar el enlace. ¿Es un enlace HTTP o HTTPS? La gran mayoría de los sitios legítimos utilizan HTTPS en la actualidad. Y, por supuesto, comprueba si el enlace está mal escrito. Si puedes llegar al destino sin usar el enlace, debes hacerlo en su lugar.
  • Utiliza un programa antivirus. Y solo compra software antivirus genuino y bien revisado de proveedores legítimos. Mantén su antivirus actualizado y realiza escaneos frecuentes con regularidad.
  • Mantén actualizado tu sistema operativo. Las últimas actualizaciones del sistema operativo contienen los últimos parches de seguridad. Asegúrate de que estén instalados lo antes posible.
  • Usa un cortafuegos: todos los principales sistemas operativos tienen un cortafuegos de entrada integrado y todos los enrutadores comerciales del mercado ofrecen un cortafuegos NAT integrado. Asegúrate de que estén habilitados. Bien pueden proteger tu sistema si haces clic en un enlace malicioso.
  • Nunca hagas clic en las ventanas emergentes. Nunca sabes a dónde te llevarán.
  • Si tu navegador muestra una advertencia sobre un sitio web al que estás intentando acceder, tómate la advertencia en serio y obtén su información en otro lugar. Si hiciste clic en un enlace que se te envió por correo electrónico o SMS, es posible que te esté enviando a un sitio malicioso para recuperar un archivo dañado. No te apresures a ignorar las indicaciones de advertencia de tu computadora.

Conclusión

Así que ese es el problema de los ataques pass the hash. Son bastante desagradables porque son difíciles de detectar y detener: usar credenciales para hacer válido su daño. Si estás al tanto de los ataques e implementas los consejos anteriores tanto para los administradores del sistema como para la fuerza laboral de la organización, puedes reducir efectivamente la probabilidad de ser víctima de un ataque de este tipo.

Como siempre, mantente a salvo (y protege tus hashes).