rechercher les mots de passe les plus utilisés dans un domaine AD

Mots de passe les plus utilisés

Tous les ans, une liste de mot de passe les plus utilisés sont diffusés sur le net. Et depuis très longtemps, on retrouve les même mots de passe.

On retrouve par ex: 123456, password, 12345, 12345678, qwerty, baseball, dragon, football, abc123, 111111, mustang, batman…

en l’absence de stratégie de mot de passe dans un domaine, vos utilisateurs auront tendance à utiliser des mots de passe faible. Beacoup vont par exemple utiliser leurs initiales prénom nom. le script ci-dessous permettra de tester les mots de passe issu d’un fichier texte

ce test est à effectuer sur un clone de votre AD , vous devez désactiver le verrouillage des comptes pour effectuer les tests
 
le scripts suivant récupère un fichier contenant une liste de mot de passe, tout les mots de passe sont testés pour chaque utilisateur de votre AD. On essaye de s’authentifier via les crédentials sur une cmdlette get-addomain. si l’ authentification Login/mot de passe est ok, on a trouvé le mot de passe de l’utilisateur
 

#pass contient une liste de mot de passe tel que P@ssw0rd, password123! ....

#on va tester chaque mot de passe à travers la boucle foreach

$listeMdp=get-content​​ C:\temp\mdp.txt

foreach($mdp​​ in​​ $listeMdp)

{

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ write-host​​ "Teste avec le mdp:​​ $mdp"​​ -f​​ Yellow

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $pass=convertto-securestring​​ $mdp​​ -AsPlainText​​ -Force

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $users​​ =​​ get-aduser​​ -filter​​ *​​ 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #on teste tous les utilisateurs du domaine

 ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ foreach($user​​ in​​ $users)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {  ​​​​ 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #on utilise la classe pscredential pour définir le login et mdp

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $auth=New-Object​​ -TypeName​​ System.Management.Automation.PSCredential​​ `

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ -ArgumentList​​ "gtek\$($user.samaccountname)",​​ $pass

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #on essaye ensuite de s'authentifier à l'aide d'une cmdlet get-addomain

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #on aurait pu prendre une autre cmdlet

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #si il n'y'a pas d'erreur alors on a trouver pour l'utilisateur le bon mdp

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ try{

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Get-ADDomain​​ -Credential​​ $auth​​ |​​ Out-Null

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ Write-Host​​ "utilisateur:$($user.SamAccountName)​​ et son mdp:$mdp"​​ -f​​ DarkBlue​​ -b​​ White

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ catch{

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ #write-warning "compte: $user mot de passe: $mdp"​​ 

 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }

}

​​ 

 

 
 

Laisser un commentaire