lunes, mayo 25, 2020

Password Spraying: Cómo funcionan estos ataques a tu identidad digital

Hace un año saltó a la fama este tipo de técnica llamada Password Spraying. Desconocida para el gran público, pero utilizada por muchos para atacar organizaciones, para atacar servicios web, Active Directory, y otros muchos tipos de servicios que una organización puede tener. Además, con la heterogeneidad de los servicios y la distribución del perímetro de una organización en Internet, se puede hacer complejo para una empresa controlar ciertas cosas.

Figura 1: Password Spraying: Cómo funcionan estos ataques a tu identidad digital

Tenemos que entender que el perímetro ya no es un concepto ligado a nuestra “casa”. Nuestro perímetro, así como la Identidad Digital de nuestros empleados, se puede perder en diferentes “nubes” a lo largo de  todo Internet. Nosotros, últimamente estamos trabajando con ATT&CK del MITRE para algunas cosas que, espero, pronto podamos contaros. Sea como sea, encontramos la técnica T1110 que está asociada a la táctica “Credential Access” y vemos que está dentro de la categoría de fuerza bruta, aunque hay matices. Password Spraying es una técnica derivada de la fuerza bruta o un caso relativo a ésta.

¿Qué es el Password Spraying?

Seguramente lo que es el término lo has visto en alguna noticia en Internet, pero quizá no has parado a explorarlo. La idea es muy sencilla: se dispone de un gran número de usuarios y de una sola contraseña. Con estos usuarios se va probando todos con la contraseña que se tiene. Esto, que tiene un nombre tan molón de Password Spraying es lo que Chema Alonso contaba en el año 2012 en el artículo de "Tus passwords son Suprayectivas".

Figura 2: Artículo del 2012 de "Tus passwords son suprayectivas"

Para realizar el ataque, en lugar de una contraseña, en algunas ocasiones, también se puede tener un pequeño grupo de contraseñas. Como se puede entender por el contexto es cómo lanzar un “spray” con una contraseña y ver qué se puede obtener entre la lista de usuarios. Esta técnica complementa la teoría de las contraseñas más utilizadas cada año, es decir, basándose en la teoría de contraseñas que más se repiten, la técnica busca encontrar ese servicio con ese usuario que utiliza dicha contraseña.

Figura 3: Tactic T1110 "Credential Access"

La diferencia con la fuerza bruta es obvia: fuerza bruta intenta generar un gran número de credencial en el menor número de cuentas o, incluso, en una sola cuenta. En este cazo la “pulverización” de una contraseña consiste en lo contrario, hacer uso de un gran número de usuarios en diferentes servicios de la organización con una sola contraseña o un pequeño grupo.

Algún caso real de uso

Nosotros utilizamos este tipo de ataques en el Hacking de Web Technologies desde hace muchos años, como habéis visto en el artículo de "Tus passwords son suprayectivas", y en el servicio de Pentesting Persistente Faast de ElevenPaths lo probamos. Al final, basta con sacar una lista de usuarios - que muchas veces son los mismos que las direcciones de correo electrónico de la empresa - y probar las contraseñas más comunes posibles con la política de contraseñas de la organización.

Figura 4: Libro de Hacking Web Technologies 2ª Edición
escrito por Chema Alonso, Amador Aparicio, Pablo González,
Enrique Rando, Ricardo Martín y Ioseba Palop en 0xWord
.

Pero además hemos visto en varios incidentes de seguridad como  ha aparecido la técnica de Password Spraying. A modo de resumen, vamos a ver algunas. En el mes de febrero de 2018, investigadores del FBI comentan que hubo un gran aumento en el uso de la “pulverización” de contraseñas. El departamento de Justicia acusó a 9 personas por delitos relacionados con la intrusión informática. Supuestamente hicieron muchos ataques de este tipo. Viendo los detalles del ataque y la noticia da para pensar del verdadero riesgo del uso de esta técnica. Otro incidente de este tipo fue uno que abarcó a Citrix. El ataque fue contra la propia empresa.

Figura 5: APTs utilizando Password Spraying

Hoy en día, con todo lo que está ocurriendo con la pandemia del COVID-19 ha surgido una serie de ataques. Algunos hospitales están siendo atacadas con esta técnica. Además, con todo el incremento de recursos remotos que han surgido con la pandemia, el uso de esta técnica ha ido aumentando, por razones obvias. Mayor exposición, mayor riesgo. Así se informa en esta noticia de la Figura 5.

Figura 6: En los detalles se habla de Password Spraying

Si vemos el detalle técnico, podemos ver cómo se habla de la técnica Password Spraying y de cómo se está utilizando y, en algunos casos, logrando acceso a los datos y a los sistemas.

Ejemplos técnicos de uso de la técnica T1110 ATT&CK MITRE

Ahora vamos a ver algunas herramientas que pueden ser utilizadas en la parte de Password Spraying. Realmente, la mayoría son herramientas de fuerza bruta en la que se puede hacer uso de un número N de usuarios y un número Y de passwords, donde dejamos Y en 1 o en un valor muy pequeño. Por supuesto, si tienes un entornos Windows, debes aprender a fortalecer bien la política de contraseñas para hacer que sean difíciles localizar "passwords fáciles" y para que el número de logins esté limitado. Es decir, aplicar Máxima Seguridad en Windows a tu política de credenciales.

Figura 7: Máxima Seguridad en Windows Gold Edition

La primera de las herramientas que vamos a ver hoy es RDPassSpray. Es una herramienta escrita en Python 3, por lo que es perfecta si eres de los amantes del Hacking con Python, y que puede ser descargada desde su Github.

Figura 8: RDPassSpray

Otra herramienta que se puede utilizar, en este caso para el protocolo SMB, entre otros, es la de crackmapexec. Ya la hemos utilizado en este blog recientemente, y le dedicamos dos partes. Aquí, lo curioso es que se puede hacer uso del parámetro -u para meter una lista de usuarios y fijar un password.

Figura 9: CrackMapExec

En el mundo del Pentesting con Powershell también podemos hacer uso de un script para llevar a cabo Password Spraying. En este Github podemos encontrar la función Invoke-DomainPasswordSpraying.  A la función podemos pasarle diferentes parámetros como son los siguientes: 

- Fijar la contraseña. 
 
- Un listado de usuarios. 
 
Figura 10: Invoke-DomainPasswordSpraying

- Un listado de contraseñas. Hay que recordar que deben ser muy pocos, ya que si no, no hablamos de “pulverización” de contraseñas.
 
 
- Un dominio de Windows sobre el que actuar.

La máquina debe estar en dominio, ya que hace uso de funciones LDAP para conectar con el dominio y sacar información. La ejecución sería cómo la que se puede ver en la imagen anterior. 

Figura 11: Libro de Pentesting con PowerShell 2ª Edición

Una de las herramientas clásicas que permite esto es Hydra. Esta herramienta puede descargarse desde su Github, aunque viene por defecto en la distribución de Kali Linux.

Figura 12: Módulo de SMB Login en Metasploit

Por último, en este repaso de opciones para hacer Password Spraying en un ejercicio de Red Team o en un Ethical Hacking, llegamos a Metasploit. A través del módulo SMB Login se puede hacer uso de esta técnica.

Mitigaciones

La idea es no utilizar mismas credenciales en diferentes servicios. Esto siempre se comenta, pero la respuesta de los usuarios es: “tengo muchos servicios”. El uso de un gestor de credenciales o de un keychain es una opción más que interesante, ya que se encargan de generar credenciales de forma automática y no las tenemos que pensar. Además, siempre serán credenciales más seguras. Por supuesto, el uso el uso de un 2FA como Latch o Latch Cloud TOTP siempre que se pueda es fundamental.


Figura 13: Identidad Digital por Chema Alonso
 
En la conferencia Chema Alonso da una charla sobre Identidad Digital en la que se centra en esos detalles. El hacer uso de 2FA como Latch nos pueden alertar de un acceso a nuestra credencial y evitar el acceso a nuestra información.  Además, hay software que nos permite obtener información tan interesante desde el punto de vista de administrador como la siguiente, por ejemplo en un Active Directory en tu Windows Server 2016.

- Cuentas de administrador inactivas. 
 
- Cuentas con contraseñas expiradas. 
 
- Cuentas con la misma credencial. 
 
- Cuentas sin contraseña. 
 
- Cuentas que van a expirar.

Son detalles importantes y que debemos tener en cuenta para protegernos de algo tan “sencillo” como un Password Spraying.

Saludos,

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Figura 14: Contactar con Pablo González

No hay comentarios:

Publicar un comentario