Introduction
Dans ce laboratoire (lab), nous explorerons deux méthodes et les outils correspondants pour obtenir le mot de passe de l'utilisateur root grâce à des attaques par force brute sur les systèmes Linux. Ce laboratoire vous aidera à comprendre les principes sous-jacents et à éviter les pièges courants au cours du processus.
Utilisation de sucrack pour forcer le mot de passe root via la commande su
Dans cette étape, nous allons apprendre à utiliser l'outil sucrack pour forcer le mot de passe de l'utilisateur root grâce à la commande su.
La commande su est utilisée pour changer d'identité d'utilisateur sur les systèmes Linux. À l'exception de l'utilisateur root, les autres utilisateurs doivent fournir le mot de passe de l'utilisateur cible lorsqu'ils utilisent cette commande.
L'outil que nous allons utiliser pour forcer la commande su est sucrack. sucrack est un outil Linux multithreadé conçu pour forcer les mots de passe d'utilisateurs locaux via la commande su.
Étant donné que la commande su nécessite une saisie utilisateur depuis un shell TTY, un simple script shell ne peut pas effectuer l'attaque par force brute. sucrack est écrit en langage C et prend en charge le multithreading, ce qui rend le processus de force brute très efficace.
Vous pouvez consulter le site officiel de sucrack pour plus d'informations.
Dans un scénario réel, la machine cible peut ne pas avoir accès à Internet, vous pouvez donc installer sucrack en utilisant l'une des deux méthodes suivantes :
- Téléchargez le code source de
sucracket téléversez - le sur la machine cible, puis compilez - le et exécutez - le. - Téléchargez le code source de
sucrack, compilez - le localement, puis téléversez le binaire compilé sur la machine cible.
Dans ce laboratoire (lab), nous avons déjà installé sucrack pour vous.
Avant d'effectuer l'attaque par force brute, nous allons configurer l'environnement de laboratoire :
Ouvrez un terminal et accédez au répertoire du projet :
cd /home/labex/projectExécutez le script
env_setup_1.shpour configurer l'environnement de laboratoire :./env_setup_1.shCe script nous passe à l'utilisateur non privilégié
www - data. Notre objectif est d'obtenir le mot de passe de l'utilisateurrootpar force brute.Nous avons une liste de mots préparée à l'avance à
/tmp/common - wordlists.txtà des fins de démonstration. Vous pouvez également utiliser votre propre liste de mots.La syntaxe pour effectuer une attaque par force brute sur la commande
suen utilisantsucrackest :sucrack -w <threads> [-u <username>] <wordlist>Les paramètres sont :
-w: Spécifie le nombre de threads<wordlist>: Spécifie le fichier de liste de mots-u: Spécifie le nom d'utilisateur à forcer. Si vous ne spécifiez pas de nom d'utilisateur,sucrackforcera le mot de passe de l'utilisateurrootpar défaut.
Essayons de forcer le mot de passe en exécutant la commande suivante :
sucrack -w 20 /tmp/common-wordlists.txt > ~/sucrack.log && resetLa sortie de l'attaque par force brute est redirigée vers le fichier
sucrack.log.Remarque : La commande
resetest utilisée pour effacer l'écran du terminal car parfois après avoir utilisésucrack, le terminal peut ne pas s'afficher correctement.Cette attaque par force brute peut prendre un certain temps. Après un certain temps, vérifiez le fichier
sucrack.logpour confirmer le mot de passe :cat ~/sucrack.logSortie attendue :
password is: reallyEnsuite, nous pouvons passer à l'utilisateur root en utilisant :
su - rootEntrez le mot de passe
reallypour passer à l'utilisateur root.reallyCréez un fichier nommé
success_1.txtdans le répertoire/rootpour confirmer que vous avez réussi à passer à l'utilisateur root :echo "Success_1" > /root/success_1.txtVous pouvez vérifier le fichier
/root/success_1.txtpour confirmer que vous avez réussi à passer à l'utilisateur root.
Vous avez appris à utiliser sucrack pour forcer le mot de passe de l'utilisateur root!
Utilisation d'Hydra pour forcer le mot de passe root via SSH
Dans cette étape, nous allons apprendre à utiliser l'outil hydra pour forcer le mot de passe de l'utilisateur root via le protocole SSH.
Après l'étape précédente, nous devrions toujours être connectés en tant qu'utilisateur root. Pour cette étape, nous devons passer à l'utilisateur labex. Vous pouvez passer à l'utilisateur labex en exécutant la commande suivante :
su - labex
Assurez-vous que le répertoire courant est
/home/labex/project:cd /home/labex/projectExécutez le script
env_setup_2.shpour configurer l'environnement de laboratoire :./env_setup_2.shComme dans l'étape précédente, après avoir exécuté ce script, vous passerez à l'utilisateur
www-data.Avant d'essayer de forcer le protocole SSH, nous devons vérifier si la machine cible autorise l'utilisateur root à se connecter via SSH. Vous pouvez vérifier cela en exécutant la commande suivante :
cat /etc/ssh/sshd_config | grep -i permitrootloginSi la sortie montre que
PermitRootLoginest défini suryes, nous pouvons procéder à l'attaque par force brute. Sinon, il n'est pas nécessaire de l'essayer.L'outil que nous allons utiliser pour forcer le protocole SSH est
hydra.hydraest un outil de force brute réputé qui prend en charge divers protocoles, notamment RDP, SMB, HTTP, MySQL, etc.hydraest préinstallé sur Kali Linux et dans l'environnement Ubuntu de notre laboratoire.La syntaxe pour forcer le protocole SSH en utilisant
hydraest :hydra -l root -P passwords.txt -t 4 -V < IP > sshLes paramètres sont :
-l: Spécifie le nom d'utilisateur-P: Spécifie le fichier de liste de mots-t: Spécifie le nombre de threads-V: Affiche la progression et les détails de l'attaque par force brute
Essayons de forcer le mot de passe de l'utilisateur root en utilisant la liste de mots
/tmp/common-wordlists.txtet enregistrons la sortie dans le fichierhydra.log:hydra -l root -P /tmp/common-wordlists.txt -t 64 -V 127.0.0.1 ssh > ~/hydra.logAprès un certain temps, le mot de passe de l'utilisateur root est cracké avec succès.
Vérifiez le fichier
hydra.logpour confirmer le mot de passe :cat ~/hydra.logExemple de sortie :
... [22][ssh] host: 127.0.0.1 login: root password: penguin 1 of 1 target successfully completed, 1 valid password found ...Maintenant que nous avons le mot de passe de l'utilisateur root, nous pouvons passer à l'utilisateur root en exécutant la commande suivante :
su - rootEntrez le mot de passe
penguinpour passer à l'utilisateur root.penguinVous devriez maintenant être connecté en tant qu'utilisateur root. Vous pouvez le confirmer en exécutant la commande suivante :
whoamiLa sortie devrait être
root.Créez un fichier nommé
success_2.txtdans le répertoire/rootpour confirmer que vous avez réussi à passer à l'utilisateur root :echo "Success_2" > /root/success_2.txtVous pouvez vérifier le fichier
/root/success_2.txtpour confirmer que vous avez réussi à passer à l'utilisateur root.
Note : Si vous utilisez une version de hydra antérieure à la v9.0, elle peut signaler des faux positifs lors de l'attaque par force brute du protocole SSH. Vous pouvez vérifier la version de hydra en exécutant hydra -v.
Résumé
Dans ce laboratoire (lab), nous avons appris deux méthodes pour forcer le mot de passe de l'utilisateur root sur les systèmes Linux : via la commande su en utilisant l'outil sucrack, et via le protocole SSH en utilisant l'outil hydra. Nous avons abordé l'installation, l'utilisation et les procédures étape par étape de chaque méthode, vous aidant ainsi à comprendre les principes sous-jacents et à éviter les pièges courants. Ce laboratoire offre une expérience pratique précieuse en matière de techniques d'élévation de privilèges, qui peuvent être appliquées dans diverses situations.