22/12/2024

S’attaquer aux mots de passe avec Kali Linux

Une autre façon de s’octroyer le droit d’accéder à une session sur une machine distante sur laquelle on effectue des tests d’intrusion, consiste à chercher à "cracker" le ou les mots de passe des comptes utilisés. Il existe de nombreuses techniques permettant de connaître un mot de passe d’un utilisateur tiers. Parmi les différentes solutions nous détaillerons :

  • L’attaque de mot de passe en ligne
  • Le profilage de mot de passe
  • Le crackage de mot de passe via John the ripper
  • L’attaque de mot de passe par dictionnaire

A. Attaque de mot de passe en ligne

Pour cela, il faut ouvrir l’utilitaire hydra-gtk proposé parmi les nombreux outils de Kali Linux au sein du menu 05-Attaques de Mot de Passe :

Cela permet d’ouvrir l’interface graphique de l’application xHydra dans laquelle on va pouvoir préciser de quel type d’attaque il s’agit (pour l’exemple, nous effectuerons une attaque de mot de passe unique) ainsi que le protocole type (ici, afp):

  • Cible unique
  • Cibles multiples

Au niveau de l’onglet ‘Passwords’ on peut ensuite préciser le fichier des comptes utilisateurs concernés (via la liste Username List) ainsi que la liste des mots de passe associés:

Il faut par ailleurs fixer les performances attendues pour le processus d’attaque des mots de passe, en fixant les paramètres ci-dessous:

Il ne reste plus qu’à ouvrir l’onglet ‘Target’ afin de fixer la cible et le protocole attendu pour ce type d’attaque. Pour l’exemple, nous choisissons une machine MySQL/MariaDB possédant l’adresse IP 192.168.10.111 :

Il ne reste plus qu’à ouvrir l’onglet ‘Start’ et cliquer sur le bouton éponyme pour déclencher l’opération de scan afin d’associer les comptes utilisateurs et les mots de passe déchiffrés.

B. Profilage de mot de passe

Ici, on va s’attacher à utiliser l’utilitaire Ettercap dont le fichier de configuration se trouve dans le répertoire /etc/ettercap et s’appelle etter.conf. Ce fichier doit être retouché pour préciser l’uid et le gid de privilège par défaut. En effet, au démarrage nul n’a de droit. On va donc faire en sorte de fournir ceux du compte root :

REMARQUE : afin de pouvoir effectuer un filtrage réseau des paquets circulant au travers de la plateforme, il faut alors aussi décommenter les lignes concernant le filtrage des flux (selon le pare-feu utilisé). Pour l’exemple, nous dé commenterons les lignes concernant iptables :

On peut ensuite pratiquer de la même façon que précédemment en ouvrant l’interface hydra-gtk et en sélectionnant le menu "Sniff". On doit ensuite préciser l’interface sur laquelle on souhaite pratiquer l’attaque, lister les hôtes à tester et démarrer la collecte d’informations. Ensuite, au sein du menu "Mitm" on déclenche l’empoisonnement ARP (en cochant la case des connexions distantes).

REMARQUE: il faut alors arrêter la capture d’informations ainsi que l’attaque MITM, en sélectionnant les options idoines.

Au final, comme nous avons provoqué une attaque de l’homme du milieu en redirigeant les flux vers notre propre machine, et en positionnant du filtrage réseau via iptables, permettant de tracer les paquets circulant en entrée et en sortie, nous sommes en mesure de visualiser les noms d’utilisateurs et leur mot de passe tels qu’ils les transmettent au travers des flux réseau.

C. Crackage de mot de passe via John the ripper

Avant de pouvoir cracker le mot de passe d’un serveur Windows, on suppose que l’on a eu accès à celle-ci grâce à un exploit découvert au travers de l’interface Metasploit, par exemple. Sinon, il faut utiliser Kali Linux en mode déconnecté grâce à une clé USB ou en mode Live. On peut alors vérifier le disque physique sur lequel on souhaite valider notre montage :

# fdisk -l

On peut alors effectuer le montage de notre partition sur le point de montage cible :

# mount /dev/sda1 /mnt/target/

Il faut ensuite changer le répertoire de localisation du fichier SAM de la machine Windows:

# cd /mnt/target/windows/system32/config

A ce stade, on peut utiliser le programme samdump2, permettant d’extraire les empreintes et la localisation du fichier souhaité (isi le compte System), directement dans le répertoire de notre utilisateur root de la plateforme Kali Linux :

# samdump2 system SAM > /root/hashes/hash.txt

Il faut ensuite se déplacer dans le répertoire où se trouve l’utilitaire John the ripper et exécuter la commande ci-dessous :

# ./john /root/hashes/hash.txt

D. Attaque de mot de passe par dictionnaire

Pour effectuer une attaque de mot de passe par dictionnaire, on peut encore compter sur un des nombreux outils fourni par Kali Linux : j’ai nommé crunch. Cet outil possède de nombreuses options. Mais, en règle générale, la syntaxe est la suivante :

# crunch <minLength> <maxLength> <Charset> <Options>

L’objectif est de demander au programme de composer des mots de passé d’une longueur minimum et de longueur maximum, utilisant un jeu de caractères passé en paramètre. Le résultat peut alors être redirigé vers un fichier en sortie :

# crunch 8 10 ABCDEFGHIJKLMNabcdefghijklmn0123456789 –o /root/Desktop/ResultCrunch.txt

REMARQUE : bien sûr, on peut effectuer ce genre de tests en décortiquant les jeux de caractères et en y introduisant des caractères spéciaux.

Parmi les autres moyens d’attaque des mots de passe que l’on peut également exploiter, on peut citer les différents utilitaires suivants:

  • Les tables arc-en-ciel (dans /usr/share/rainbowcrack)
  • Le calcul massif via CUDA  (dans /usr/share/oclhashcat-plus)
  • L’attaque force brute (dans /usr/share/wordlists)

Si l’on est intéressé par l’analyse du comportement de certains protocoles, Kali Linux intègre aujourd’hui un outil très pratique : scapy. Ce dernier est une bibliothèque Python permettant d’utiliser un grand nombre des protocoles les plus courants (il y en a quand même plus de 150 intégrés) et d’analyser ainsi le fonctionnement interne et la circulation des flux de paquets entrants ou sortants.

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail