Cómo descifrar contraseñas de Windows
Introducción a las contraseñas de Windows
Windows es la plataforma de escritorio más común actualmente en uso. Como resultado, no es raro que los ciberdelincuentes encuentren una contraseña de Windows que necesitan descifrar para obtener acceso a una cuenta específica. Esta contraseña la pueden usar en una máquina o para moverse lateralmente a través de la red.
En el pasado, las contraseñas de Windows eran extremadamente fáciles de descifrar/hackear. El diseño del algoritmo de hash de contraseñas LANMAN original tenía los siguientes defectos:
- Contraseñas limitadas a 14 caracteres.
- Forzar todas las letras a mayúsculas.
- Sin salt.
- Las contraseñas se dividían en dos partes y se dividían por separado.
Como resultado, las contraseñas almacenadas en el formato LANMAN eran trivialmente fáciles de hackear.
Con NTLM, descifrar o hackear las contraseñas de Windows es más difícil pero aún posible. NTLM es más débil que los algoritmos modernos porque se basa en el cifrado MD4. Este ha sido reemplazado por Kerberos para la autenticación de red, NTLM todavía se usa para guardar contraseñas localmente en el archivo SAM de Windows.
Descifrar contraseñas de Windows
La función hash de Windows se basa en el débil algoritmo MD4. Por lo tanto, descifrar estas contraseñas suele ser más fácil que las protegidas por un cifrado moderno equivalente. Descifrar un hash de contraseña de Windows es un proceso de tres pasos:
- Obtener el hash.
- Elegir una herramienta.
- Elegir una técnica de craqueo/descifrado.
Para todas estas etapas, la mejor opción a menudo depende de los detalles del entorno del test de penetración y el objetivo previsto.
Obtener hashes de contraseñas
Los hashes de contraseña de Windows se pueden obtener de diferentes maneras.
Lo más común es tomarlos directamente de la máquina en cuestión. Los hashes de contraseña de Windows se almacenan en el archivo SAM. Sin embargo, están cifrados con la clave de arranque del sistema, que se almacena en el archivo SYSTEM.
Si un hacker puede acceder a estos dos archivos (almacenados en C:\Windows\System32\Config), entonces el archivo SYSTEM se puede usar para descifrar los hashes de contraseña almacenados en el archivo SAM.
No se puede acceder directamente al archivo SAM en un sistema Windows en ejecución. Empero, se puede acceder a él a través de herramientas como Mimikatz. También se puede mediante el comando reg (si el ciberdelincuente tiene privilegios de SYSTEM).
Los hashes de contraseñas también se pueden robar aprovechando la autenticación en un servidor remoto. Un ciberdelincuente puede enviar a un usuario un enlace que apunta a un archivo en un servidor controlado por este mismo. Esta acción puede engañar al equipo objetivo. Este intentará autenticarse con las credenciales de inicio de sesión actuales. Esto permite que un ciberdelincuente robe un hash de contraseña con un correo electrónico de phishing bien diseñado.
Ambas técnicas tienen sus pros y sus contras. Robar el archivo SAM de Windows requiere acceso a la computadora de destino, pero puedes robar más hashes de contraseña de una sola vez. Un ataque de phishing le permite a un atacante robar un hash de forma remota, pero puede requerir una computadora sin parches. Asimismo, necesitará acceso a ciertos puertos a través de cualquier firewall que se encuentre en el camino.
Herramientas para descifrar/hackear contraseñas
El siguiente paso en el proceso de descifrado de contraseñas de Windows es seleccionar una herramienta para descifrar contraseñas. Existe una variedad de diferentes descifradores de contraseñas de Windows. Entre estas destacan:
- Hashcat: Descifrador de contraseñas de código abierto gratuito para todos los sistemas operativos de escritorio con soporte de GPU
- John the Ripper: Disponible en sistemas operativos gratuitos (todos los sistemas operativos) o Pro (*sistemas operativos nix)
- Ophcrack: Descifrador de contraseñas diseñado para todos los sistemas operativos que se especializa en descifrar contraseñas de Windows
Si bien todas estas son herramientas funcionales, hashcat y John the Ripper son a menudo las más populares debido a su compatibilidad con una variedad de formatos hash diferentes.
Elegir una técnica de descifrado
La mayoría de las herramientas para descifrar contraseñas de Windows permitirán cualquiera de las tres técnicas principales para descifrar contraseñas. La elección de qué técnica usar depende principalmente del comportamiento esperado del objetivo.
Ataque de diccionario
La mayoría de las personas usan contraseñas extremadamente débiles. La persona promedio probablemente usa una palabra del diccionario con sustituciones comunes. Por ejemplo, 0 para O, 4 para A y así sucesivamente; y potencialmente usan un carácter especial y un par de números añadidos al final. Una herramienta para descifrar contraseñas con un diccionario de español estándar puede descifrar estas contraseñas sin ninguna dificultad.
Para las contraseñas un poco más avanzadas, es útil tener un diccionario de las contraseñas más utilizadas. Estas contraseñas han sido expuestas en la ola de violaciones recientes de datos. Suelen estar disponibles en línea de forma gratuita o posiblemente por un precio (para listas más rebuscadas).
Sin embargo, el análisis de las contraseñas descifradas del 2018 descubrió que el 3% de las personas usaba la contraseña 123456. Más del 10% usaba las 25 contraseñas más comunes, por lo que, en muchos casos, una lista extensa puede no ser necesaria para obtener acceso.
Ataque de fuerza bruta
Los ataques de fuerza bruta son la única forma de estar seguros del éxito en el descifrado de contraseñas. Al probar todas las contraseñas posibles para un sistema, se garantiza que encontrarás la contraseña correcta.
Los sistemas de contraseña segura están diseñados para hacer que este tipo de ataque no sea factible computacionalmente. Sin embargo, los sistemas de almacenamiento de contraseñas de Windows no se han mantenido al día con la tecnología de descifrado de contraseñas. La longitud mínima de la contraseña suele ser de ocho caracteres y permite el rango completo de letras, números y caracteres especiales.
Si bien esto puede haber sido seguro en el pasado, ahora puede ser derrotado por un hacker con acceso al hardware y software correctos.
En febrero de 2019, el equipo de creación de hashcat declaró que la herramienta se puede utilizar para buscar todo el espacio de contraseñas de ocho caracteres en aproximadamente 2.5 horas.
La mayoría de los usuarios suelen elegir la longitud mínima al crear una contraseña. Especialmente cuando la configuración puede requerir mayúsculas, minúsculas, números y caracteres especiales, esto significa que estas contraseñas pueden descifrarse en unas pocas horas.
Ataque híbrido
Los ataques de diccionario y fuerza bruta hacen concesiones entre velocidad y garantía de éxito. La mayoría de las herramientas también admiten un modo de ataque híbrido. Primero realizan un ataque de diccionario y luego cambian a un ataque de fuerza bruta si no tienen éxito.
Una gran cantidad de experiencia en temas y optimización se utiliza en estas herramientas, lo que las hace extremadamente efectivas para descifrar contraseñas.
Conclusión: Descifrando contraseñas de Windows
Cada hash de contraseña de Windows se puede descifrar. Sin embargo, la cantidad de tiempo y recursos que lleva puede no ser factible para una situación de test de penetración.
Antes de activar una herramienta e intentar descifrar una contraseña, siempre es útil aprovechar el conocimiento del objetivo para facilitar el proceso.
La mayoría de los usuarios harán lo mínimo posible para cumplir con los requisitos de contraseñas de una organización. Por lo tanto, puedes aplicar un poco de ingeniería social mediante una búsqueda o una llamada. Esto puede disminuir en gran medida el tiempo y el esfuerzo dedicado a intentar descifrar un hash de contraseña en particular.