hands-asl-interpretingMeterpreter

Meterpreter est un payload avancé utilisé dans le cadre de Metasploit. Il se distingue par son fonctionnement furtif, extensible et puissant. Contrairement à un shell classique, il réside uniquement en mémoire (RAM) de la machine compromise, ce qui le rend difficile à détecter et à analyser par des méthodes forensiques classiques. Il n’écrit pas de fichiers sur le disque et peut migrer d’un processus à un autre pour éviter d’être stoppé.

Souvent qualifié de couteau suisse du pentest, Meterpreter est conçu pour faciliter les procédures de post-exploitation, en offrant un ensemble d’outils permettant :

  • l’énumération avancée du système compromis,

  • l’évasion des antivirus et solutions de détection,

  • la recherche de vulnérabilités locales supplémentaires,

  • la persistance sur le système,

  • le pivoting vers d’autres machines du réseau cible.

⚙️ Fonctionnement

Lorsque Meterpreter est exécuté sur la machine cible, plusieurs étapes se déroulent :

  1. Exécution du stager : le code initial (reverse, bind, passivex, etc.) est exécuté sur la cible.

  2. Injection de DLL réflexive : le Reflective DLL Loader permet de charger Meterpreter directement en mémoire.

  3. Initialisation du core Meterpreter : une communication chiffrée en AES est établie avec l’attaquant.

  4. Chargement des extensions : par défaut, stdapi (fonctionnalités de base) est chargé, et priv si les privilèges administratifs sont disponibles.

Ainsi, une fois la session ouverte, l’attaquant obtient un shell Meterpreter avec des commandes spécifiques.

💻 Commandes principales

Une fois dans une session Meterpreter, la commande help permet d’afficher les options disponibles. Parmi les plus utiles :

  • background : mettre une session en arrière-plan

  • migrate : migrer vers un autre processus

  • run : exécuter un script ou module post-exploitation

  • sessions : basculer entre différentes sessions

  • hashdump : extraire les hashs de mots de passe

  • lsa_dump_secrets : extraire les secrets de la mémoire LSA

  • ps : lister les processus

  • steal_token : voler un jeton d’authentification

Ces fonctionnalités permettent d’aller bien au-delà d’un simple accès shell.

🎯 Objectifs de conception

Meterpreter a été conçu autour de trois principes fondamentaux :

🔒 Furtivité

  • Réside uniquement en mémoire.

  • Ne crée pas de nouveau processus, mais s’injecte dans un processus existant.

  • Les communications sont entièrement chiffrées (AES).

💪 Puissance

  • Communication en channels permettant d’ouvrir plusieurs types de flux (shell, transfert de fichiers, etc.).

  • Possibilité de générer et gérer plusieurs sessions simultanément.

🧩 Extensibilité

  • Ajout dynamique de modules et d’extensions sans recompiler le payload.

  • Chargement de nouvelles fonctionnalités à la volée, via le réseau.

🔍 Utilisation dans un engagement

Lors d’une campagne de test d’intrusion, Meterpreter permet de gagner du temps et d’augmenter l’efficacité des opérations post-exploitation. Par exemple :

  • Lancer des scans directement depuis la session compromise (db_nmap dans msfconsole).

  • Exploiter les modules de Metasploit pour la persistance ou l’escalade de privilèges.

  • Migrer dans des processus système pour élever ses privilèges.

  • Extraire des informations sensibles comme les hashs ou secrets stockés dans la mémoire.

⚠️ Points de vigilance

Bien que Meterpreter soit puissant, il laisse parfois des traces temporaires (comme des fichiers ASP déposés lors de certaines exploitations). Un administrateur vigilant peut détecter ces indicateurs. D’où l’importance, pour un attaquant, de nettoyer ses traces, et pour un défenseur, de surveiller ces artefacts.

📚 Ressources utiles


👉 En résumé, Meterpreter est bien plus qu’un simple shell distant. C’est une plateforme complète de post-exploitation, qui combine furtivité, puissance et modularité pour maximiser l’efficacité des tests d’intrusion.


Find the existing exploit in MSF and use it to get a shell on the target. What is the username of the user you obtained a shell with?

Nous effectuons dans un premier temps un scan de notre cible afin de connaître les services disponibles :

Nous observons la présence de FortiLogger. Nous effectuons donc une recherche de FortiLogger via Metasploit :

Nous utilisons le module disponible, le configurons et l'executons afin d'obtenir une connexion à notre cible :

En utilisant la commande getuid, nous pouvons voir que nous sommes connectés en tant que NT AUTHORITY\SYSTEM :


Retrieve the NTLM password hash for the "htb-student" user. Submit the hash as the answer.

Nous récupérons les hashs de mots de passe à l'aide de la commande hashdump :

Le hash associé à l'utilisateur htb-student est :


Last updated