Accéder au contenu principal

🔓 Peut-on vraiment "craquer" un mot de passe ? Une démonstration pas à pas

👇 Ce qu’on va faire

Dans cet article, on montre concrètement comment un outil gratuit (présent dans Kali Linux) peut retrouver un mot de passe simple en quelques secondes.
Mais on va aussi voir pourquoi un mot de passe complexe bloque toute attaque — et comprendre pourquoi.

🛠️ Les outils nécessaires

On utilise un outil connu des experts cybersécurité :
John the Ripper (inclus dans Kali Linux, utilisé pour les tests d’audit de mots de passe).

John ne "pirate" pas un système en ligne. Il teste des mots de passe chiffrés en local, comme s’il avait volé un fichier de mots de passe (un hash).
Cela simule ce qui se passe quand un hacker récupère une base de données de mots de passe cryptés.

✅ Étape 1 – Créer un mot de passe simple et le chiffrer

On va créer un mot de passe :

bonjour123

Puis on le chiffre avec cette commande :

echo -n "bonjour123" | openssl passwd -6 -stdin

📌 Explication :

  • echo -n : affiche "bonjour123" sans retour à la ligne
  • | : envoie cette sortie en entrée de la commande suivante
  • openssl passwd -6 : chiffre un mot de passe avec l'algorithme SHA-512 (utilisé dans Linux)
  • -stdin : lit depuis l’entrée standard (notre mot de passe)

Résultat : on obtient un hash comme :

$6$abcdEFgh$JcV... (chaîne longue illisible)

C’est ce que les bases de données stockent à la place du mot de passe.

💾 Étape 2 – Enregistrer ce hash dans un fichier

echo '$6$abcdEFgh$JcV...' > hash.txt

Le fichier hash.txt contient maintenant 1 mot de passe chiffré.

🧨 Étape 3 – Lancer l’attaque avec un dictionnaire

john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

📌 Explication :

  • john : lance l’outil
  • --wordlist=... : fichier de mots de passe courants à tester (ex: rockyou.txt)
  • hash.txt : contient notre hash à casser

Résultat :

bonjour123

Trouvé en quelques secondes.
Pourquoi ? Car ce mot de passe est trop simple et trop courant.

🔐 Étape 4 – Complexifier le mot de passe

Changeons de mot de passe :

Bonj0ur!2024-#

Il est :

  • Long (14 caractères)
  • Mélangé : majuscule, minuscule, chiffres, symboles
  • Non trivial : ce n’est pas une phrase courante
echo -n "Bonj0ur!2024-#" | openssl passwd -6 -stdin > hash2.txt
john --wordlist=/usr/share/wordlists/rockyou.txt hash2.txt

Résultat : John ne trouve rien.

0 password hashes cracked, 1 left

Ce mot de passe n’est pas dans la liste et trop complexe pour être deviné.

🚀 Et si on forçait John à tout essayer ?

john --incremental hash2.txt

Même là, il faudrait des jours, mois ou années pour tester toutes les combinaisons possibles. Pourquoi ? Car le nombre de combinaisons est gigantesque avec 14 caractères et symboles.

📊 Résumé comparatif

Mot de passeTrouvable ?Temps estimé
bonjour123✅ OuiQuelques secondes
Bonj0ur!2024-#❌ NonMillions d’années (bruteforce local)

🔍 Conclusion

Ce test montre que :

  • Les outils d’attaque sont accessibles à tous
  • Les mots de passe simples sont très faciles à casser
  • Un bon mot de passe bloque même les outils puissants
  • Ce n’est pas une question de technologie, mais de rigueur

🧭 Envie d’aller plus loin ?

  • Utiliser --incremental ou --mask pour tester plus vite
  • Essayer Hashcat (plus rapide avec une carte graphique)
  • Simuler la récupération d’un fichier /etc/shadow pour un test réaliste
  • Comprendre comment surveiller ou bloquer ces attaques (fail2ban, alerte SIEM, etc.)

Commentaires

Posts les plus consultés de ce blog

Comprendre les Buffer Overflows - Analyse Technique 🗂️ Table des matières 🧠 Introduction 📚 Comprendre la vulnérabilité 🛠️ Compilation sans protections 🔎 Mécanisme d'exploitation 🛡️ Protections modernes 🧰 Outils à connaître 🔧 Environnement Docker 📌 Rappel sur les registres : Lorsqu'une fonction est exécutée, plusieurs registres processeur sont utilisés. Parmi eux : RIP (x86_64) : registre d'instruction, contient l'adresse de la prochaine instruction à exécuter. EIP (x86 32-bit) : équivalent de RIP sur les systèmes 32 bits. RBP / EBP : pointeur de base de la pile, souvent utilisé pour référencer les variables locales et les arguments. RSP / ESP : pointeur de sommet de la pile, toujours à jour avec l'adresse actuelle du haut de pile. Ces registres sont au cœur des méca...
Introduction au Machine Learning avec Python : Votre Premier Modèle IA de A à Z L'intelligence artificielle, souvent associée à des concepts abstraits et complexes, devient accessible grâce à Python. Aujourd’hui, vous allez découvrir comment créer un modèle de machine learning qui apprend à prédire si un passager du Titanic a survécu ou non. Ce projet concret vous donnera une vraie compréhension de ce qu’est l’IA appliquée. Étape 1 : Comprendre les données et le rôle de df Dans ce tutoriel, nous utilisons un jeu de données très célèbre : celui du Titanic. Chaque ligne représente un passager, avec des colonnes comme son âge, son sexe, sa classe dans le bateau, le prix payé pour son billet, et surtout, s’il a survécu ( Survived = 1 ) ou non ( Survived = 0 ). Quand on lit ce fichier CSV avec pandas , on stocke les données dans une structure appelée DataFrame , abrégée en df . Un DataFrame est un tableau à deux dimensions : les colonnes sont les variables (âge, sexe…), et ch...

🛡️ Analyse de faille avec Nikto : exploitation et protection contre Shellshock via CGI

Introduction : pourquoi analyser les failles ? Dans le monde de la cybersécurité, l’analyse de faille est un processus indispensable. Elle permet d’identifier et corriger les vulnérabilités avant qu’elles ne soient exploitées. Un attaquant n’a besoin que d’un seul point faible : à nous de le détecter avant lui. Dans cet article, nous allons nous intéresser à une faille emblématique : Shellshock (CVE-2014-6271), qui a touché Bash en 2014. Nous verrons comment utiliser Nikto , un scanner de vulnérabilités web, pour la détecter, comment l’exploiter manuellement, et surtout comment s’en prémunir. Pour cela, il est essentiel de comprendre le rôle joué par CGI (Common Gateway Interface) dans l’exploitation. 🧠 CGI : le chaînon faible de Shellshock Qu’est-ce que CGI ? CGI (Common Gateway Interface) est une spécification permettant à un serveur web d’exécuter des programmes externes – appelés scripts CGI – pour générer dynamiquement des réponses HTTP. Ces scripts peuvent être écrits e...