Attaquer des Cibles IPv6 avec Hydra

HydraBeginner
Pratiquer maintenant

Introduction

Dans ce laboratoire, vous apprendrez à attaquer des cibles IPv6 à l'aide d'Hydra. Le laboratoire se concentre sur la configuration d'un serveur avec une adresse IPv6, puis sur l'utilisation d'Hydra pour attaquer son service SSH.

Le laboratoire commence par configurer le serveur avec l'adresse IPv6 2001:db8:1::1/64 sur l'interface eth0 en utilisant la commande ip. Vous activerez ensuite l'interface et vérifierez la configuration. Enfin, vous utiliserez Hydra avec l'option -6 pour cibler le service SSH IPv6 et vérifierez les résultats de l'attaque.

Configurer le Serveur avec une Adresse IPv6

Dans cette étape, vous allez configurer la machine virtuelle LabEx avec une adresse IPv6. Il s'agit d'une étape cruciale pour activer la communication IPv6 et préparer l'attaque ultérieure sur le service SSH IPv6.

Commençons par comprendre les bases de l'adressage IPv6. Les adresses IPv6 sont des adresses de 128 bits, généralement représentées en notation hexadécimale. Une adresse IPv6 typique ressemble à ceci : 2001:0db8:85a3:0000:0000:8a2e:0370:7334.

Pour simplifier la configuration, vous allez attribuer l'adresse 2001:db8:1::1/64 à l'interface eth0. L'interface eth0 est un nom d'interface réseau courant dans les systèmes Linux.

Maintenant, configurons l'adresse IPv6. Vous utiliserez la commande ip, un outil puissant pour gérer les interfaces réseau.

  1. Ajouter l'adresse IPv6 à l'interface eth0 :

    Ouvrez votre terminal dans la machine virtuelle LabEx. Exécutez la commande suivante :

    sudo ip addr add 2001:db8:1::1/64 dev eth0

    Cette commande ajoute l'adresse IPv6 2001:db8:1::1/64 à l'interface eth0. Le /64 spécifie la longueur du préfixe de réseau, qui détermine la taille du sous-réseau IPv6.

  2. Activer l'interface eth0 :

    sudo ip link set dev eth0 up

    Cette commande active l'interface eth0, lui permettant d'envoyer et de recevoir le trafic réseau.

  3. Vérifier la configuration de l'adresse IPv6 :

    Pour vérifier que l'adresse IPv6 a été correctement configurée, utilisez à nouveau la commande ip addr :

    ip addr show eth0

    La sortie doit inclure l'adresse IPv6 2001:db8:1::1/64 dans la section inet6. Vous devriez voir quelque chose de similaire à ceci :

    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
        link/ether 00:16:3e:08:6d:7a brd ff:ff:ff:ff:ff:ff
        altname enp0s5
        altname ens5
        inet 172.16.50.97/24 metric 100 brd 172.16.50.255 scope global dynamic eth0
           valid_lft 1892159937sec preferred_lft 1892159937sec
        inet6 2001:db8:1::1/64 scope global
           valid_lft forever preferred_lft forever
        inet6 fe80::216:3eff:fe08:6d7a/64 scope link
           valid_lft forever preferred_lft forever

    La ligne inet6 2001:db8:1::1/64 scope global confirme que l'adresse IPv6 a été correctement configurée.

Préparation pour l'attaque SSH IPv6

Dans cette étape, vous vous préparerez à l'attaque du service SSH IPv6 en comprenant et en utilisant l'option -6 avec les outils réseau. L'option -6 est couramment utilisée pour spécifier une préférence pour IPv6 lors de l'interaction avec les services réseau. Ceci est important car, par défaut, certains outils peuvent privilégier IPv4 si les adresses IPv4 et IPv6 sont disponibles.

Pour vous assurer de cibler l'adresse IPv6 configurée à l'étape précédente, vous utiliserez la commande ping avec l'option -6. Cela permettra de vérifier que vous pouvez atteindre le serveur en utilisant son adresse IPv6.

  1. Ping de l'adresse IPv6 :

    Ouvrez votre terminal dans la machine virtuelle LabEx. Exécutez la commande suivante :

    ping -6 2001:db8:1::1

    Cette commande envoie des paquets ICMP Echo Request à l'adresse IPv6 2001:db8:1::1. Si le serveur est accessible via IPv6, vous devriez voir des réponses du serveur. La sortie devrait ressembler à ceci :

    PING 2001:db8:1::1(2001:db8:1::1) 56 data bytes
    64 bytes from 2001:db8:1::1: icmp_seq=1 ttl=64 time=0.026 ms
    64 bytes from 2001:db8:1::1: icmp_seq=2 ttl=64 time=0.041 ms
    64 bytes from 2001:db8:1::1: icmp_seq=3 ttl=64 time=0.035 ms
    64 bytes from 2001:db8:1::1: icmp_seq=4 ttl=64 time=0.032 ms
    ^C
    --- 2001:db8:1::1 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 3078ms
    rtt min/avg/max/mdev = 0.026/0.033/0.041/0.005 ms

    Appuyez sur Ctrl+C pour arrêter la commande ping après quelques paquets.

  2. Comprendre l'option -6 :

    L'option -6 indique à la commande ping d'utiliser IPv6. De nombreux autres outils réseau, tels que ssh, curl et wget, prennent également en charge l'option -6. L'utilisation de cette option garantit que l'outil tente de se connecter à l'hôte cible en utilisant IPv6.

    À l'étape suivante, vous utiliserez Hydra pour attaquer le service SSH. Vous utiliserez l'option -6 avec Hydra pour cibler spécifiquement l'adresse IPv6 du serveur SSH. Cela garantit que vous testez la sécurité de la configuration SSH IPv6.

Attaque du Service SSH IPv6

Dans cette étape, vous utiliserez Hydra pour effectuer une attaque par force brute sur le service SSH exécuté sur l'adresse IPv6 que vous avez configurée précédemment. Hydra est un outil puissant de cassage de mots de passe qui prend en charge divers protocoles, y compris SSH.

Avant de commencer, vous allez créer une liste de mots de passe simples. Cette liste contiendra les mots de passe que Hydra tentera d'utiliser pour s'authentifier auprès du service SSH.

  1. Démarrer le service SSH :

    Tout d'abord, vous devez vous assurer que le service SSH est en cours d'exécution sur le système. Exécutez la commande suivante pour démarrer le service SSH :

    sudo systemctl start ssh

    Vous pouvez vérifier que le service SSH est en cours d'exécution en vérifiant son statut :

    sudo systemctl status ssh

    La sortie doit indiquer que le service est actif et en cours d'exécution.

  2. Configurer SSH pour écouter sur IPv6 :

    Par défaut, SSH peut uniquement écouter sur les adresses IPv4. Vous devez le configurer pour qu'il écoute également sur IPv6. Tout d'abord, vérifiez sur quelles adresses SSH écoute actuellement :

    ss -tlnp | grep :22

    Vous devriez voir une sortie comme LISTEN 0 128 0.0.0.0:22 0.0.0.0:*, ce qui signifie que SSH n'écoute que sur IPv4.

    Maintenant, modifiez le fichier de configuration SSH pour activer l'écoute IPv6 :

    sudo nano /etc/ssh/sshd_config

    Trouvez la ligne contenant #AddressFamily any ou AddressFamily inet et modifiez-la en :

    AddressFamily any

    Si la ligne n'existe pas, ajoutez-la. Cela indique à SSH d'écouter sur les adresses IPv4 et IPv6.

    Enregistrez le fichier en appuyant sur Ctrl + X, puis Y pour confirmer l'enregistrement, et Entrée pour confirmer le nom de fichier.

    Redémarrez le service SSH pour appliquer les modifications :

    sudo systemctl restart ssh

    Vérifiez que SSH écoute maintenant à la fois sur IPv4 et IPv6 :

    ss -tlnp | grep :22

    Vous devriez maintenant voir SSH écouter à la fois sur 0.0.0.0:22 (IPv4) et [::]:22 (IPv6).

  3. Créer une liste de mots de passe :

    Ouvrez votre terminal dans la machine virtuelle LabEx. Vous êtes actuellement dans le répertoire ~/project. Utilisez l'éditeur nano pour créer un fichier nommé passwords.txt dans ce répertoire :

    nano passwords.txt

    Ajoutez les mots de passe suivants au fichier, un mot de passe par ligne :

    password
    123456
    qwerty
    admin
    labex

    Enregistrez le fichier en appuyant sur Ctrl + X, puis Y pour confirmer l'enregistrement, et Entrée pour confirmer le nom de fichier.

  4. Exécuter Hydra pour attaquer le service SSH IPv6 :

    Maintenant, vous utiliserez Hydra pour attaquer le service SSH. Vous utiliserez l'option -6 pour spécifier que vous souhaitez cibler l'adresse IPv6. Vous spécifierez également le nom d'utilisateur à attaquer (par exemple, labex), la liste de mots de passe que vous avez créée (passwords.txt) et l'adresse IPv6 du serveur SSH (2001:db8:1::1).

    Exécutez la commande suivante :

    hydra -6 -l labex -P passwords.txt ssh://[2001:db8:1::1]

    Décomposons cette commande :

    • hydra : La commande pour exécuter l'outil Hydra.
    • -6 : Spécifie que Hydra doit utiliser IPv6.
    • -l labex : Spécifie le nom d'utilisateur à attaquer. Dans ce cas, vous attaquez l'utilisateur labex.
    • -P passwords.txt : Spécifie la liste de mots de passe à utiliser. Dans ce cas, vous utilisez le fichier passwords.txt que vous avez créé dans le répertoire actuel ~/project.
    • ssh://[2001:db8:1::1] : Spécifie le service SSH cible. Le préfixe ssh:// indique que vous attaquez un service SSH, et [2001:db8:1::1] est l'adresse IPv6 du serveur entre crochets (obligatoire pour les adresses IPv6 dans Hydra).

    Hydra commencera maintenant à essayer les mots de passe du fichier passwords.txt contre le service SSH. Si Hydra trouve un mot de passe valide, il affichera les identifiants. La sortie peut ressembler à ceci si aucun mot de passe n'est trouvé :

    (Sortie similaire à l'exemple précédent)

    Si aucun mot de passe n'est trouvé, vous pouvez essayer d'ajouter plus de mots de passe courants à votre fichier passwords.txt. Vous pouvez également utiliser l'option -V pour afficher une sortie détaillée montrant chaque tentative.

    (Sortie similaire à l'exemple précédent)

    Si Hydra trouve un mot de passe avec succès, la sortie ressemblera à ceci :

    (Sortie similaire à l'exemple précédent)

    Ceci indique que Hydra a réussi à trouver le mot de passe pour l'utilisateur labex.

    Important : Forcer les mots de passe d'un système sans autorisation est illégal et contraire à l'éthique. Ce laboratoire est uniquement à des fins éducatives, et vous ne devez utiliser ces techniques que sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite de test.

Vérifier les Résultats de l'Attaque IPv6

Dans cette étape, vous vérifierez les résultats de l'attaque Hydra sur le service SSH IPv6. Vous vérifierez si Hydra a réussi à trouver le mot de passe et, le cas échéant, tenterez de vous connecter au service SSH en utilisant les identifiants trouvés.

  1. Examiner la sortie de Hydra :

    Examinez attentivement la sortie de la commande Hydra de l'étape précédente. Recherchez une ligne indiquant une réussite du cassage de mot de passe. La sortie devrait ressembler à ceci :

    [22][ssh] host: 2001:db8:1::1   login: labex   password: [found_password]

    Si vous voyez cette ligne, cela signifie que Hydra a réussi à trouver le mot de passe pour l'utilisateur labex. Si aucun mot de passe n'a été trouvé, cela indique que la liste de mots de passe actuelle ne contient pas le mot de passe correct, ce qui est en fait un bon signe de sécurité.

  2. Tentative de connexion au service SSH (si le mot de passe a été trouvé) :

    Si Hydra a trouvé un mot de passe, vous pouvez tenter de vous connecter au service SSH à l'aide de la commande ssh. Vous utiliserez l'option -6 pour spécifier que vous souhaitez vous connecter à l'adresse IPv6.

    Exécutez la commande suivante, en utilisant le mot de passe trouvé par Hydra :

    ssh -6 labex@2001:db8:1::1

    Lorsque vous êtes invité à saisir le mot de passe, saisissez le mot de passe trouvé. Si la connexion est réussie, vous serez connecté au serveur SSH.

    Si Hydra n'a trouvé aucun mot de passe, vous pouvez toujours tester la connectivité SSH IPv6 en essayant de vous connecter (cela vous demandera un mot de passe, mais vous pouvez appuyer sur Ctrl+C pour annuler) :

    ssh -6 labex@2001:db8:1::1

    Le fait que vous receviez une invite de mot de passe confirme que SSH est correctement configuré pour IPv6 et que Hydra a pu se connecter au service.

  3. Recommandations de sécurité :

    Ce laboratoire a démontré l'importance d'utiliser des mots de passe forts et de mettre en œuvre les meilleures pratiques de sécurité pour protéger votre service SSH. Voici quelques recommandations :

    • Utiliser des mots de passe forts : Utilisez des mots de passe d'au moins 12 caractères et contenant un mélange de lettres majuscules et minuscules, de chiffres et de symboles.
    • Désactiver l'authentification par mot de passe : Envisagez de désactiver l'authentification par mot de passe et d'utiliser des clés SSH à la place. Les clés SSH sont plus sécurisées que les mots de passe car elles sont beaucoup plus difficiles à déchiffrer.
    • Mettre en œuvre un contrôle du débit : Utilisez des outils comme fail2ban pour mettre en œuvre un contrôle du débit sur les tentatives de connexion SSH. Cela empêchera les attaquants d'essayer trop de mots de passe en peu de temps.
    • Maintenir vos logiciels à jour : Assurez-vous que votre logiciel de serveur SSH est à jour avec les derniers correctifs de sécurité.

Résumé

Dans ce laboratoire, vous avez configuré un serveur avec une adresse IPv6, une étape cruciale pour activer la communication IPv6. Cela impliquait de comprendre les bases de l'adressage IPv6 et d'utiliser la commande ip pour attribuer l'adresse 2001:db8:1::1/64 à l'interface eth0.

Vous avez ensuite activé l'interface et vérifié la configuration à l'aide de ip addr show eth0, vous assurant que l'adresse IPv6 était correctement attribuée. Vous avez également configuré SSH pour écouter sur les adresses IPv6 en modifiant le fichier de configuration SSH et en redémarrant le service.

Enfin, vous avez utilisé Hydra avec l'option -6 pour cibler le service SSH IPv6 et effectué avec succès une attaque par force brute. Vous avez ensuite vérifié les résultats de l'attaque en vous connectant au service SSH en utilisant les identifiants trouvés. Ce laboratoire a démontré la capacité de Hydra à attaquer des cibles IPv6 et mis en évidence l'importance des mots de passe forts et des meilleures pratiques de sécurité pour les services SSH.