Manipulación de contraseñas de usuario con Mimikatz
Sep 28, 2022
Usando los comandos ChangeNTLM y SetNTLM en Mimikatz, los atacantes pueden manipular las contraseñas de los usuarios y escalar sus privilegios en Active Directory. Veamos estos comandos y qué hacen.
Contenido relacionado seleccionado:
ChangeNTLM
El comando ChangeNTLM realiza un cambio de contraseña. Para usar este comando, necesitas conocer la contraseña actual de la cuenta o su hash de contraseña NTLM, lo cual puede ser mucho más fácil de robar que las contraseñas en texto claro. Por defecto, la capacidad de cambiar la contraseña de un usuario se concede a Todos, por lo que cualquier usuario puede ejecutar este comando sin privilegios especiales.
Aquí hay un ejemplo de cómo usar el comando para cambiar la contraseña de un usuario conociendo solo el hash de la contraseña actual:
Esto generará el Event ID 4723 en el registro de eventos del controlador de dominio.
SetNTLM
Este comando realiza un restablecimiento de contraseña. Ejecutarlo no requiere que conozcas la contraseña actual del usuario, pero sí requiere que tengas el derecho de Restablecer Contraseña en la cuenta, el cual no se concede a Todos por defecto.
Aquí hay un ejemplo de cómo usar el comando para restablecer la contraseña de un usuario:
Esto generará el Event ID 4724 en el registro de eventos del controlador de dominio.
Escenario de ataque: ChangeNTLM
Comprometer el hash de contraseña de un usuario permite a un adversario realizar ataques de pass-the-hash. Sin embargo, esos ataques suelen estar limitados al acceso por línea de comandos a sistemas y aplicaciones. Para iniciar sesión en Outlook Web Access (OWA), SharePoint o una sesión de escritorio remoto, el adversario puede necesitar la contraseña en texto claro del usuario. Pueden llevar a cabo el ataque y cubrir sus huellas en cuatro pasos rápidos:
- Comprometer el hash NTLM de una cuenta.
- Cambie la contraseña utilizando el hash.
- Utilice la nueva contraseña en texto claro para acceder a las aplicaciones o servicios deseados.
- Establezca la contraseña a su valor anterior utilizando el hash robado.
Este ataque es muy útil para explotar aún más las cuentas comprometidas.
Escenario de ataque: SetNTLM
En este escenario, un atacante ha comprometido una cuenta con acceso limitado al dominio y . Explotar esa vía de ataque implica restablecer las contraseñas de los usuarios para tomar control de sus cuentas, pero el atacante no quiere alertar a los usuarios de que su cuenta ha sido comprometida cambiando su contraseña. ¿Cómo puede el atacante restablecer las contraseñas de los usuarios y luego volver a ponerlas en sus valores antiguos una vez que el objetivo está comprometido? Ingrese SetNTLM.
El atacante puede seguir este camino básico:
- Utilice Bloodhound para identificar una ruta de ataque que aproveche los permisos de Active Directory y el restablecimiento de contraseñas.
- Explota la ruta de ataque, restableciendo contraseñas según sea necesario.
- Una vez que se logra el acceso privilegiado, use Mimikatz para extraer el historial de contraseñas NTLM de todas las cuentas comprometidas.
- Utilice SetNTLM para aplicar los hashes NTLM anteriores a las cuentas, restableciendo las contraseñas a su estado anterior.
Nota: Lo mismo se puede hacer utilizando el comando Set-SamAccountPasswordHash.
Ejemplo
Supongamos que tenemos el siguiente camino de ataque que nos llevará desde nuestro usuario actual hasta Domain Admin en tres restablecimientos de contraseña:
Ahora que sabemos qué cuentas necesitan ser comprometidas, queremos ejecutar el ataque lo más rápido posible para no alarmar a ningún usuario. Podemos automatizar la ruta de ataque de restablecimiento de contraseña utilizando algunos comandos básicos de PowerShell. El siguiente script tomará una contraseña y seguirá la cadena de ataque, suplantando a cada usuario comprometido en el camino hasta alcanzar el objetivo de Administrador del Dominio:
A continuación, iniciaremos una nueva sesión de PowerShell como el Administrador del Dominio y realizaremos una operación de DCSync para obtener el historial de contraseñas NTLM de todas las cuentas:
Desde allí, restableceremos las contraseñas a sus valores anteriores utilizando el comando SetNTLM:
Y ahí lo tienes. Ahora nos hemos convertido en un Domain Admin y hemos cubierto nuestras huellas lo mejor que hemos podido para evitar que los usuarios se den cuenta de que sus cuentas han sido comprometidas en el proceso.
Detección y prevención de ataques SetNTLM y ChangeNTLM
Detección de los ataques
Si un atacante utiliza el ataque ChangeNTLM, esto generará un evento 4723, pero la cuenta del Sujeto y la cuenta Objetivo serán diferentes, como se muestra a continuación. Esto se destacará de los cambios de contraseña normales que los usuarios realizan por su cuenta, donde los dos valores serán idénticos. Si los administradores van a restablecer contraseñas, realizarán un restablecimiento y generarán un evento 4724.
Previniendo los ataques
Para mitigar el riesgo de que se ejecuten ataques SetNTLM, controle los derechos de restablecimiento de contraseña en el directorio. Para mitigar el riesgo de ataques ChangeNTLM, controle cómo y dónde se almacenan los hashes de usuario.
Cómo puede ayudar Netwrix
La solución de seguridad de Active Directory de Netwrix te ayuda a proteger tu Active Directory de principio a fin — desde resaltar las brechas de seguridad en tus configuraciones actuales de AD hasta detectar ataques sofisticados en tiempo real y responder a las amenazas al instante. Te ayuda a asegurar que todas las identidades, los datos sensibles a los que proporcionan acceso y la infraestructura subyacente de AD estén limpios, comprendidos, configurados adecuadamente, monitoreados de cerca y controlados estrictamente — haciendo tu vida más fácil y la organización más segura.
Compartir en
Aprende más
Acerca del autor
Jeff Warren
Director de Producto
Jeff Warren supervisa el portafolio de productos de Netwrix, aportando más de una década de experiencia en gestión y desarrollo de productos enfocados en la seguridad. Antes de unirse a Netwrix, Jeff lideró la organización de productos en Stealthbits Technologies, donde utilizó su experiencia como ingeniero de software para desarrollar soluciones de seguridad innovadoras y escalables para empresas. Con un enfoque práctico y un talento para resolver desafíos de seguridad complejos, Jeff se centra en construir soluciones prácticas que funcionen. Tiene un BS en Sistemas de Información de la Universidad de Delaware.
Aprende más sobre este tema
Ejemplo de Análisis de Riesgos: Cómo Evaluar los Riesgos
El Triángulo de la CIA y su Aplicación en el Mundo Real
Crear usuarios de AD en masa y enviar sus credenciales por correo electrónico usando PowerShell
Cómo crear, cambiar y probar contraseñas usando PowerShell
Cómo agregar y eliminar grupos de AD y objetos en grupos con PowerShell