La puissance de meterpreter
Meterpreter est un payload (charge utile) extrêmement performant et puissant pour la phase de post-exploitation.
Si vous souhaitez découvrir toutes les commandes disponibles dans Meterpreter, il vous suffit de taper la commande `help` (ou `?`).
Cela affichera une liste bien structurée de toutes les commandes que vous pouvez exécuter.
On y trouve d'abord les commandes de base pour naviguer ou obtenir de l'aide.
Vous avez également la commande `getuid` qui vous donne le nom de l'utilisateur sous lequel la session s'exécute, ainsi que son niveau de privilèges.
Meterpreter vous permet également d'exécuter la plupart des commandes de base d'un terminal Linux.
Vous y trouverez aussi des commandes réseau (pour analyser les connexions), des commandes système, des commandes de contrôle de l'interface utilisateur, ou encore des fonctions pour manipuler la webcam (pour prendre des photos ou faire des enregistrements) ou capturer l'audio de la machine cible.
Enfin, il propose des commandes avancées pour l'escalade de privilèges ou pour extraire la base de données des mots de passe.
Faisons quelques essais.
Si je tape `pwd`, je vois que je me trouve dans le dossier `C:\Windows\System32`.
Je peux reculer dans l'arborescence et me déplacer dans le dossier `C:\Users`.
Si je tape `ls` (qui fonctionne sous Meterpreter même sur une cible Windows), je vois le dossier de l'utilisateur `John`.
Sachez que dans certains cas, si vous effectuez des commandes trop lourdes, Meterpreter peut planter et couper la connexion avec votre serveur d'attaque.
Naviguons dans le dossier de John.
En faisant un `ls`, on aperçoit ses répertoires personnels (comme `Music`), ainsi que des fichiers système cachés comme `NTUSER.DAT` ou `PrintHood`.
Si je veux créer un fichier en utilisant les commandes comme `touch` ou `echo`, je remarque que certaines commandes ne s'exécutent pas directement depuis l'invite Meterpreter.
Pour contourner cela, je peux ouvrir un interpréteur de commandes Windows natif en tapant simplement la commande `shell`.
Me voilà maintenant dans un shell système Microsoft Windows standard.
Si je tape `dir`, j'obtiens la liste des fichiers avec les commandes Windows habituelles.
Je me déplace sur le Bureau avec `cd Desktop`.
Le dossier est actuellement vide.
Je peux créer un fichier texte en tapant `echo Hello World > test.txt`.
En tapant `dir`, on voit bien que le fichier `test.txt` a été créé.
Ce shell système nous permet d'exécuter toutes les commandes Windows classiques.
Pour revenir à la console Meterpreter, il me suffit de taper `exit` et de confirmer.
De retour sur Meterpreter, l'une des commandes les plus intéressantes pour la post-exploitation est `hashdump`.
Elle permet d'extraire de la mémoire les empreintes (hashs) des mots de passe des comptes locaux de la machine : le compte Administrateur, le compte Invité (Guest) et le compte de John.
Ces informations sont cruciales.
Je vais les copier et les enregistrer dans un fichier de notes sur CherryTree afin de tenter de les déchiffrer plus tard.
Nous pouvons également afficher la table de routage réseau de la cible avec la commande `route`.
C'est une étape essentielle si vous souhaitez effectuer du pivotement (pivoting) pour attaquer d'autres machines sur le réseau interne à partir de cette machine compromise.
Si nous voulons élever nos privilèges, nous pouvons tester la commande `getsystem`.
Celle-ci va utiliser différentes techniques d'élévation pour tenter d'obtenir les privilèges système les plus élevés (SYSTEM).
Dans notre cas, si nous relançons `getuid`, nous constatons que nous sommes déjà sous l'utilisateur `NT AUTHORITY\SYSTEM`.
Nous disposons donc des privilèges les plus élevés sur la machine.
Meterpreter offre également la possibilité de téléverser (uploader) des outils ou de télécharger des fichiers depuis la cible.
C'est très utile si vous souhaitez installer un script de persistance pour maintenir votre accès sur la machine.
N'oubliez pas qu'en tant que pentesteur professionnel, vous devez veiller à ne pas perturber le système et à nettoyer vos traces.
Le fait de se connecter et de manipuler le système laisse des traces dans les journaux d'événements (les logs) de Windows.
De plus, nous avons créé un fichier `test.txt` sur le Bureau qu'il faudra supprimer avant de quitter la machine.
Dans la prochaine leçon, nous verrons comment tenter de casser les mots de passe que nous venons de récupérer sous forme de hashs grâce à des outils comme John the Ripper ou Hashcat.