Internal Password Spraying - from Linux
Last updated
Last updated
Ahora que hemos creado una lista de palabras usando uno de los métodos descritos en las secciones anteriores, es hora de ejecutar nuestro ataque. Las siguientes secciones nos permitirán practicar la pulverización de contraseñas desde hosts Linux y Windows. Este es un punto clave para nosotros, ya que es una de las dos vías principales para obtener credenciales de dominio para acceder, pero también debemos proceder con cautela.
Una vez creada la lista de palabras con uno de los métodos mostrados en la sección anterior, es hora de ejecutar el ataque. Rpcclient
es una excelente opción para ejecutar este ataque desde Linux. Es importante tener en cuenta que un inicio de sesión válido no es evidente de inmediato con rpcclient
, ya que la respuesta Authority Name
indica un inicio de sesión exitoso. Podemos filtrar los intentos de inicio de sesión no válidos con " grepping
for" Authority
en la respuesta. La siguiente línea de comandos de Bash (adaptada de ) puede usarse para ejecutar el ataque.
También podemos utilizarlo Kerbrute
para el mismo ataque que comentamos anteriormente.
Existen muchos otros métodos para rociar contraseñas desde Linux. Otra excelente opción es usar CrackMapExec
. Esta herramienta, siempre versátil, acepta un archivo de texto con nombres de usuario para ejecutarlo con una sola contraseña en un ataque de rociado. Aquí, usamos grep para +
filtrar los fallos de inicio de sesión y centrarnos solo en los intentos de inicio de sesión válidos para asegurarnos de no perder nada al revisar muchas líneas de salida.
Después de obtener uno (o más) resultados con nuestro ataque de rociado de contraseñas, podemos usarlo CrackMapExec
para validar las credenciales rápidamente contra un controlador de dominio.
La pulverización interna de contraseñas no solo es posible con cuentas de usuario de dominio. Si se obtiene acceso administrativo y el hash de contraseña NTLM o la contraseña en texto plano de la cuenta de administrador local (u otra cuenta local con privilegios), se puede intentar en varios hosts de la red. La reutilización de contraseñas de cuentas de administrador local está muy extendida debido al uso de imágenes maestras en implementaciones automatizadas y a la aparente facilidad de gestión al aplicar la misma contraseña en varios hosts.
CrackMapExec es una herramienta útil para intentar este ataque. Conviene apuntar a hosts de alto valor, como SQL
servidores Microsoft Exchange
, ya que es más probable que tengan un usuario con privilegios elevados conectado o que sus credenciales permanezcan en la memoria.
Al trabajar con cuentas de administrador local, es importante considerar la reutilización de contraseñas o los formatos comunes en todas las cuentas. Si encontramos un host de escritorio con una contraseña única como $desktop%@admin123
, podría ser útil probarla $server%@admin123
con servidores. Además, si encontramos cuentas de administrador local no estándar como bsmith
, podríamos descubrir que la contraseña se reutiliza para una cuenta de usuario de dominio con un nombre similar. El mismo principio se aplica a las cuentas de dominio. Si recuperamos la contraseña de un usuario llamado ajones
, conviene probar la misma contraseña en su cuenta de administrador (si la tiene), por ejemplo, ajones_adm
, para comprobar si está reutilizando sus contraseñas. Esto también es habitual en situaciones de confianza de dominio. Podemos obtener credenciales válidas para un usuario del dominio A que sean válidas para un usuario con el mismo nombre de usuario o uno similar en el dominio B, o viceversa.
En ocasiones, solo podemos recuperar el hash NTLM de la cuenta de administrador local de la base de datos SAM local. En estos casos, podemos distribuir el hash NT por toda una subred (o varias) para buscar cuentas de administrador local con la misma contraseña. En el ejemplo siguiente, intentamos autenticarnos en todos los hosts de una red /23 utilizando el hash NT integrado de la cuenta de administrador local, obtenido de otra máquina. El --local-auth
indicador indicará a la herramienta que solo intente iniciar sesión una vez en cada máquina, lo que elimina el riesgo de bloqueo de la cuenta. Make sure this flag is set so we don't potentially lock out the built-in administrator for the domain
De forma predeterminada, sin la opción de autenticación local activada, la herramienta intentará autenticarse utilizando el dominio actual, lo que podría provocar bloqueos de cuentas rápidamente.
El resultado anterior muestra que las credenciales eran válidas como administrador local en 3
los sistemas de la 172.16.5.0/23
subred. Podríamos entonces enumerar cada sistema para ver si encontramos algo que nos ayude a mejorar el acceso.
Esta técnica, si bien es efectiva, es bastante ruidosa y no es recomendable para evaluaciones que requieran sigilo. Siempre conviene buscar este problema durante las pruebas de penetración, incluso si no forma parte de nuestra estrategia para comprometer el dominio, ya que es un problema común y debe notificarse a nuestros clientes. Una forma de solucionarlo es usar la herramienta gratuita de Microsoft para que Active Directory administre las contraseñas de administrador local y aplique una contraseña única en cada host que rota a intervalos establecidos.