Meterpreter
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 :
Exécution du stager : le code initial (reverse, bind, passivex, etc.) est exécuté sur la cible.
Injection de DLL réflexive : le Reflective DLL Loader permet de charger Meterpreter directement en mémoire.
Initialisation du core Meterpreter : une communication chiffrée en AES est établie avec l’attaquant.
Chargement des extensions : par défaut,
stdapi(fonctionnalités de base) est chargé, etprivsi 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-planmigrate: migrer vers un autre processusrun: exécuter un script ou module post-exploitationsessions: basculer entre différentes sessionshashdump: extraire les hashs de mots de passelsa_dump_secrets: extraire les secrets de la mémoire LSAps: lister les processussteal_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_nmapdans 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