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

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.

Windows Hello, una capa de seguridad para nuestro PC

Siendo sinceros, la mayoría de las veces usamos contraseñas poco seguras porque son más fáciles de recordar y de introducir. Una contraseña larga, aleatoria y compleja nos brinda la mejor protección frente a este tipo de ataques informáticos, pero es más complicada de introducir para iniciar sesión. En las webs no importa tanto dado que el navegador se encarga de recordarnos la contraseña. Pero al iniciar sesión, no.

Windows 10 incorpora una nueva función conocida como «Windows Hello«. Esta función es una capa de seguridad adicional dentro del sistema operativo que nos permite simplificar toda la autenticación dentro del SO sin sacrificar la seguridad. Por defecto, podemos configurar un código PIN para poder iniciar sesión rápidamente en el PC. Sin embargo, también podemos usar sistemas de autenticación biométricos, como una huella dactilar o una cámara con reconocimiento facial, para iniciar sesión automáticamente sin necesidad de escribir una contraseña. Incluso podemos hacer que Windows se desbloquee automáticamente cuando tengamos ciertos dispositivos cerca, gracias al Bluetooth, o para desbloquear el PC usando una llave de seguridad.

Gracias a este sistema podemos configurar en el PC una contraseña larga y robusta, para tener la mejor seguridad y evitar que nos rompan la contraseña, y al mismo tiempo poder iniciar sesión rápidamente, sin complciaciones.

5 Comentarios