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.
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 eth0Cette commande ajoute l'adresse IPv6
2001:db8:1::1/64à l'interfaceeth0. Le/64spécifie la longueur du préfixe de réseau, qui détermine la taille du sous-réseau IPv6.Activer l'interface
eth0:sudo ip link set dev eth0 upCette commande active l'interface
eth0, lui permettant d'envoyer et de recevoir le trafic réseau.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 eth0La sortie doit inclure l'adresse IPv6
2001:db8:1::1/64dans la sectioninet6. 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 foreverLa ligne
inet6 2001:db8:1::1/64 scope globalconfirme 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.
Ping de l'adresse IPv6 :
Ouvrez votre terminal dans la machine virtuelle LabEx. Exécutez la commande suivante :
ping -6 2001:db8:1::1Cette 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 msAppuyez sur
Ctrl+Cpour arrêter la commande ping après quelques paquets.Comprendre l'option
-6:L'option
-6indique à la commandepingd'utiliser IPv6. De nombreux autres outils réseau, tels quessh,curletwget, 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
-6avec 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.
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 sshVous pouvez vérifier que le service SSH est en cours d'exécution en vérifiant son statut :
sudo systemctl status sshLa sortie doit indiquer que le service est actif et en cours d'exécution.
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 :22Vous 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_configTrouvez la ligne contenant
#AddressFamily anyouAddressFamily inetet modifiez-la en :AddressFamily anySi 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, puisYpour confirmer l'enregistrement, etEntréepour confirmer le nom de fichier.Redémarrez le service SSH pour appliquer les modifications :
sudo systemctl restart sshVérifiez que SSH écoute maintenant à la fois sur IPv4 et IPv6 :
ss -tlnp | grep :22Vous devriez maintenant voir SSH écouter à la fois sur
0.0.0.0:22(IPv4) et[::]:22(IPv6).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'éditeurnanopour créer un fichier nommépasswords.txtdans ce répertoire :nano passwords.txtAjoutez les mots de passe suivants au fichier, un mot de passe par ligne :
password 123456 qwerty admin labexEnregistrez le fichier en appuyant sur
Ctrl + X, puisYpour confirmer l'enregistrement, etEntréepour confirmer le nom de fichier.Exécuter Hydra pour attaquer le service SSH IPv6 :
Maintenant, vous utiliserez Hydra pour attaquer le service SSH. Vous utiliserez l'option
-6pour 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'utilisateurlabex.-P passwords.txt: Spécifie la liste de mots de passe à utiliser. Dans ce cas, vous utilisez le fichierpasswords.txtque vous avez créé dans le répertoire actuel~/project.ssh://[2001:db8:1::1]: Spécifie le service SSH cible. Le préfixessh://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.txtcontre 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-Vpour 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.
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é.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-6pour 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::1Lorsque 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::1Le 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.
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
fail2banpour 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.


