Así de fácil es crackear la contraseña de cualquier usuario de Windows

Así de fácil es crackear la contraseña de cualquier usuario de Windows

Rubén Velasco

La contraseña es la forma más común de proteger nuestra sesión en Windows. Cuando creamos un nuevo usuario, el propio sistema operativo nos permite establecer esta contraseña de manera que nadie, sin ella, pueda entrar. En Windows 10, la contraseña corresponde con la de la Cuenta Microsoft, además de poder disfrutar de otros sistemas de autenticación (PIN, biométricos, etc) gracias a Windows Hello. Sin embargo, no debemos fiarnos al 100% de la contraseña del PC, ya que, como vamos a ver, cualquiera, incluso sin permisos, podría romperla.

Aunque pueda parecer que la ventana de inicio de sesión es segura e infranqueable, la verdad es que, en términos de seguridad, deja mucho que desear. La propia API de inicio de sesión, LogonUserW, por defecto, no cuenta con ningún sistema de bloqueo tras un número concreto de intentos fallidos. Esto abre la puerta a ataques de fuerza bruta muy sencillos de llevar a cabo, con los cuales podremos obtener la contraseña de cualquier usuario de nuestro PC. Otras debilidades podemos encontrarlas en otras APIs de Windows, como LogonUserA, CreateProcessWithLogonA y CreateProcessWithLogonW.

Para ello, no necesitamos más que un ordenador Windows (desde XP hasta la última versión de Windows 10), así como un usuario cualquiera en el equipo. Da igual que sea un usuario con permisos restringidos, o un invitado. En apenas unos segundos podremos averiguar la contraseña del administrador del PC y, con ella, tomar el control total del equipo. Y lo mejor de todo es que, a diferencia de otras alternativas, esta no borra y rompe la contraseña.

Cómo averiguar (crackear) la contraseña de cualquier usuario en Windows

Para poder llevar a cabo este ataque necesitaremos descargar Win Brute Logon, un PoC diseñado para explotar estas debilidades que podemos bajar gratis desde GitHub. El script es abierto, por lo que podemos analizarlo, si queremos, para comprobar que, efectivamente, es un fichero fiable.

Al ser un ataque de fuerza bruta, es necesario pasarle una lista de contraseñas. Podemos bajar de aquí una lista con las 10.000 claves más usadas para aumentar la probabilidad de éxito. Si el administrador del equipo ha puesto una contraseña segura, entonces la cosa se complica algo más, teniendo que recurrir a herramientas generadoras de contraseñas por fuerza bruta.

Tanto Win Brute Logon como la lista de claves tenemos que descomprimirlas y guardarlas en un mismo directorio, al cual debemos poder acceder a través de CMD. Por ejemplo, uno sencillo podría ser «pass» dentro de la raíz de C:.

Lo primero que debemos hacer es tener acceso en el sistema. Da igual el tipo de usuario que consigamos, incluso si es «invitado» (el más restrictivo). El proceso será igual desde cualquiera de ellos. Una vez que tenemos acceso, entonces ejecutaremos el siguiente comando para ver cuáles son los usuarios que hay creados en el PC:

net user

Elegiremos el usuario para el que queremos obtener la contraseña, y ejecutaremos el siguiente comando (cambiando <username> por el nombre del usuario, y <wordlist_file> por el nombre de la lista de contraseñas:

WinBruteLogon.exe -v -u <username> -w <wordlist_file>

Ahora solo nos queda esperar a que acabe el programa de realizar sus tareas. Al final podremos ver en la consola una línea como la siguiente en la que nos indicará la contraseña:

[ OK ] Password for username=[username] and domain=[DESKTOP-PC] found = [contraseña]

Ahora ya podemos iniciar sesión con esta contraseña en la cuenta de administrador para tener control total sobre el PC.

Recordamos que, en Windows 10, la contraseña del usuario es la misma que la de la Cuenta Microsoft. Por lo tanto, si alguien se hace con ella podría tener acceso a nuestro correo, a OneDrive y a toda la información vinculada a nuestra cuenta. Por ello, es muy importante proteger nuestra Cuenta Microsoft con funciones adicionales como la doble autenticación.

Crear usuario de prueba para crackear

Antes de llevar a cabo este ataque en un equipo convencional es recomendable aprender a dominar la herramienta. Para ello, lo que podemos hacer es crear un nuevo usuario en nuestro PC, con el nivel de privilegios que queramos, usando la herramienta net user de la siguiente manera:

Crear usuario administrador:

  • net user nombreadmin /add
  • net user nombreadmin contraseña
  • net localgroup administrators darkcodersc /add

Crear usuario normal:

  • net user nombreusuario/add
  • net user nombreusuario contraseña

Y también podemos habilitar la cuenta de invitado en nuestro PC:

  • net user GuestUser /add
  • net localgroup users GuestUser /delete
  • net localgroup guests GuestUser /add

Ahora, iniciaremos sesión al menos una vez en la cuenta que queramos crackear (para completar su configuración inicial) y listo. Cerramos sesión, entramos con el usuario que queramos (incluso el que menos permisos tenga) y llevamos a cabo los pasos explicados en el punto anterior para averiguar si se rompe la contraseña.

Cómo protegernos de estos ataques

Como vemos, es muy fácil averiguar y romper la seguridad de cualquier usuario de Windows. Microsoft no aplica una serie de medidas de seguridad extra a su sistema operativo para protegernos de esto. La única forma de que este tipo de ataques por fuerza bruta fuera ineficaz es que el propio Windows se bloqueara tras un número de intentos fallidos.

Esto podemos activarlo nosotros manualmente mediante las directivas de grupo, siempre y cuando tengamos un Windows 10 Pro. Para ello, escribiremos en la barra de búsqueda «gpedit.msc«, y nos desplazaremos hasta el apartado «Configuración del equipo > Configuración de Windows > Configuración de seguridad > Directivas de cuenta > Directiva de bloqueo de cuentas«.

Aquí debemos buscar la directiva «Umbral de bloqueo de cuenta«. En él tendremos que cambiar su valor «0», por defecto, al número máximo de intentos antes de bloquearla.

Umbral de bloqueo de cuenta

Y también debemos configurar la directiva «Duración del bloqueo de cuenta«, que especificará cuánto tiempo estará bloqueada la cuenta cuando se bloquee por fallos.

Además, como hemos visto, para que este ataque de fuerza bruta tenga éxito es necesario que la contraseña sea débil. Por lo tanto, si nuestro PC utiliza una contraseña fuerte, robusta y única, las probabilidades de que este tipo de ataques tengan éxito son muy bajas. Así, si creamos una contraseña que mezcle caracteres, números y símbolos, y además que sea relativamente larga y generada mediante algoritmos pseudo-aleatorios, nadie podrá conseguir entrar en nuestra cuenta de Windows, al menos mediante está técnica.