Vous êtes sur la page 1sur 17

Metasploit

Identification du document

Référence Ue_Cybersécurité-Initiation_Metasploit.docx

Date de création 28/10/2017

Rédaction (R) BERTRAND Cédric

Version V 0.3

Nombre de pages 17

Documents de référence

Historique du document
Version Date Auteur Commentaires
V 0.1 28/10/2018 Cédric BERTRAND Initialisation du document
V 0.2 2/11/2018 Cédric BERTRAND Modifications
V 0.3 8/11/2018 Cédric BERTRAND Modifications
UE Cybersécurité Metasploit 09/11/18

Sommaire
1 Objet du document ......................................................................................................... 3
1.1 Metasploit ................................................................................................................ 3
1.1.1 Présentation ..................................................................................................... 3
1.1.2 Modules ........................................................................................................... 3
1.1.2.1 Module Exploit........................................................................................... 3
1.1.2.2 Module Payload ........................................................................................ 3
1.1.2.3 Modules Auxillaires ................................................................................... 3
1.1.3 Exploitation avec Metasploit ............................................................................. 4
1.2 Exemples d’exploitation avec metasploit ................................................................. 5
1.2.1 Linux ................................................................................................................ 5
1.2.1.1 Prise en main avec s2-045 ........................................................................ 5
1.2.1.2 Scan avec Nessus .................................................................................... 6
1.2.1.3 Exploitation avec metasploit ...................................................................... 6
1.2.1.4 Post-Exploitation ......................................................................................10
1.2.2 Windows .........................................................................................................11
1.3 Exemple d’exploitation : du scan de vulnérabilité à l’obtention d’un accès sur le
système cible ....................................................................................................................14
2 Commandes ..................................................................................................................17
2.1 Docs .......................................................................................................................17
2.2 Msfvenom ..............................................................................................................17
2.3 Metasploit ...............................................................................................................17
2.4 Meterpreter ............................................................................................................17

Classification : Public 2 / 17
UE Cybersécurité Metasploit 09/11/18

1 Objet du document
Ce document a pour objet d’initier à l’utilisation de Metasploit et de comment l’utiliser.

1.1 Metasploit
1.1.1 Présentation
Outil pour le développement et l’exécution d’exploits contre une machine distante, il permet
de réaliser des audits en sécurité, de tester et développer ses propres exploits. Créé à
l’origine en langage de programmation Perl, Metasploit Framework a été complètement
réécrit en langage Ruby.

Il est utilisé souvent par les administrateurs systèmes pour tester les vulnérabilités des
systèmes informatiques afin de les protéger, ou par les hackers à des fins de piratage.

1.1.2 Modules
Metasploit possède de nombreux modules : certains sont à utiliser pour exploiter des
vulnérabilités, d’autres sont utilisés pour exécuter des actions une fois qu’un premier accès a
été obtenu au système, d’autres sont de simples scanneurs, etc.

1.1.2.1 Module Exploit


Ce sont des scripts ruby qui nous permettent d’exploiter une vulnérabilité sur une machine
distante. On peut dire que l’exploit nous donne la possibilité de se connecter à une machine
vulnérable.

1.1.2.2 Module Payload


Un payload est délivré par l’exploit et utilisé pour contrôler un système. Une sorte d’agent qui
s’infiltre dans un environnement et qui de l’intérieur, donne accès à l’attaquant. Un des plus
populaires est Meterpreter, qui compte à sa charge beaucoup de fonctionnalités avancées.
Vous pourrez donc parcourir les fichiers distants, les télécharger, capturer les frappes de
clavier, prendre des captures d’écrans, faire ce qu’on appelle des pivots d’attaques pour
cibler les autres serveurs sur le réseau.

1.1.2.3 Modules Auxillaires


C’est des modules utilisés pour diverses taches comme le scan de port, sniffing, scan de
services.
Une fois l’exploit et le Payload sont exécutés sur une machine vulnérable, on peut faire ce
qu’on veut sur le système comme télécharger les données de la cible, mise en place d’un
malware, capture d’ecran, etc.

Classification : Public 3 / 17
UE Cybersécurité Metasploit 09/11/18

Une fois des exemples réalisés, cela vous paraîtra plus simple.

1.1.3 Exploitation avec Metasploit


Voici les étapes basiques pour l’exploitation d’un système avec Metasploit:
 Collecter des informations sur la cible telles que la version du système d’exploitation,
et les services réseaux installés. Ces informations peuvent être récupérées grâce à
des outils de scan de port et de Footprinting comme Nmap, Maltego et Nessus;
 Une fois une vulnérabilité découverte, vérifier si un module correspondant existe sous
Metasploit et si c’est le cas lancer metasploit et configurer l’exploit;
 Vérifier si le système cible visée est sensible à l’exploit choisi;
 Choisir et configurer un payload ;
 Exécuter l’exploit.

Rien ne parle plus que la pratique, exploitons notre premier système.

Classification : Public 4 / 17
UE Cybersécurité Metasploit 09/11/18

1.2 Exemples d’exploitation avec metasploit


1.2.1 Linux
1.2.1.1 Prise en main avec s2-045
L’url de l’image ISO vous a été communiquée.
Cette machine contient une version d’Apache Struts vulnérable (cve-2017-5638)
Lancer l’iso « s2-045.iso » dans une machine virtuelle (la configurer pour être sur le même
réseau local que Kali)

Pour obtenir la configuration ip de la machine, nous pouvons taper la commande « ifconfig »


dans un terminal :

Classification : Public 5 / 17
UE Cybersécurité Metasploit 09/11/18

Nous pouvons ensuite ouvrir notre navigateur et aller sur la page d’accueil.

1.2.1.2 Scan avec Nessus


Nous réalisons un scan de vulnérabilités avec Nessus sur le système.

Il n’y a malheureusement pas de moyen de détecter la version de Struts utilisée sur le


serveur. C’est pourquoi Nessus ne détecte rien. Nous savons juste qu’un serveur Struts est
actif par la présence d’un fichier avec une extension « .action ».

1.2.1.3 Exploitation avec metasploit


Cette version de struts est vulnérable à la vulnérabilité s2-045 (information donnée pour
s’entrainer à l’exploitation). Une recherche sur google nous indique quelle est la cve
correspondante :

Classification : Public 6 / 17
UE Cybersécurité Metasploit 09/11/18

On recherche ensuite s’il existe un module metasploit pour l’exploitation de cette vulnérabilité
(google). On découvre qu’il existe effectivement un module correspondant :

On lance alors metasploit et on recherche le module correspondant :


- « msfconsole » pour lancer metasploit
- « search struts » pour chercher les exploits relatifs à Struts

Pour sélectionner l’exploit, nous utilisons la commande « use <nom_de_exploit> et la


commande « show options » pour voir les options à configurer.

Classification : Public 7 / 17
UE Cybersécurité Metasploit 09/11/18

Une fois les options configurées (rhost pour l’adresse ip de la cible, targeturi pour l’url, rport
pour le port)

Une fois les options configurées, on lance l’exploit avec la commande « exploit ».

Néanmoins nous constatons que l’exploit échoue (en tout cas rien ne se passe et aucun
accès n’a été obtenu)

Ceci est dû à un problème avec le payload (la charge utile). Comme dit précédemment, le
payload est ce que nous souhaitons faire en exploitant la vulnérabilité (afficher un message,
ajouter un compte utilisateur, exécuter une commande, etc.). Le payload sélectionné par
défaut avec l’exploit (struts_content_type_ognl) ne fonctionne pas, nous allons donc le
modifier.
Pour afficher la liste des payloads disponibles pour cet exploit, nous tapons la commande
« show payloads » :

Le système étant sous Linux, nous sélectionnons le payload « cmd/unix/reverse »

Classification : Public 8 / 17
UE Cybersécurité Metasploit 09/11/18

Ce payload fonctionne sous Linux / Unix et va nous permettre d’obtenir un accès au


système. Le terme « reverse » signifie que c’est la machine cible qui va se connecter à notre
système (au contraire d’un shell bind où c’est notre système qui se connecte au système
cible).
Nous configurons les options lhost (l’adresse de notre système), lport (un port local de notre
système que nous choisissons).
Une fois notre payload configuré, nous le relançons avec la commande « exploit » et cette
fois nous obtenons bien un accès au système.

Une fois l’accès au système obtenu (nous sommes root en plus), nous pouvons faire ce que
bon nous semble : afficher les mots de passe des utilisateurs (présents dans le fichier
/etc/shadow), ajouter un utilisateur (adduser eleve), etc.

Classification : Public 9 / 17
UE Cybersécurité Metasploit 09/11/18

1.2.1.4 Post-Exploitation
Dans le cas actuel nous avons un simple accès shell sur le système. Néanmoins metasploit
possède un module « meterpreter » qui est en fait un shell évolué avec des fonctionnalités
avancées. Comme nous avons déjà un accès au système, nous allons utiliser cet accès pour
obtenir un shell meterpreter sur le système. Le module à utiliser est « shell_to_meterpreter ».

Ceci se réalise en plusieurs étapes :


- Sortir de la session active (l’accès au server). Pour cela, on appuie sur les touches
Ctrl+z (mais on ne ferme pas la session, metasploit propose de mettre la session en
background)

Nous constatons avec la commande « sessions –i » (qui permet de lister les sessions en
cours) que notre session est toujours active (la session 2).
- Ensuite on utilise le module post/multi/manager/shell_to_meterpreter et on indique la
session à utiliser (dans notre cas la session 2 comme listé plus haut)

- Une fois le module configuré, on l’exécute avec la commande exploit et une nouvelle
session sur le système cible est créée, cette fois-ci avec un shell meterpreter plutôt
qu’un simple shell.

Classification : Public 10 / 17
UE Cybersécurité Metasploit 09/11/18

Avec ce shell meterpreter, nous avons désormais accès à d’autres fonctionnalités avancées
(capture de frappe, webcam, parcours des fichiers, etc.)

1.2.2 Windows
L’exemple suivant montre l’utilisation d’un exploit et la prise de contrôle d’un système sous
Windows.

Il a été détecté que la machine 192.168.60.128 était vulnérable à l’exploit ms03_049 (par un
scan de vulnérabilités par exemple). Le module ms03_049_netapi permet d’exploiter cette
vulnérabilité. Le service vulnérable (SMB) est sur le port 445 de la machine cible.

Dans les options minimales à configurer, nous avons :


RHOST : le domaine/adresse ip de la cible
RPORT : le port sur lequel se trouve le service vulnérable

Il reste maintenant à configurer le paylaod, c’est-à-dire ce que nous désirons réaliser suite à
l’exploitation de la vulnérabilité. Souhaite-t-on un accès shll ? Exécuter une commande ?
Afficher un simple message ?

Le payload dépend de l’exploit utilisé, du système d’exploitation, ainsi que des possibilités
offertes par l’exploit (certains exploits permettent d’exécuter des commandes, d’autres
d’ajouter un utilisateur, etc.)

Dans le cas présent, le payload demandé est l’obtention d’un shell meterpreter en bind_tcp
« set payload windows/meterpreter/bind_tcp ».
 Bind_tcp : C’est la machine de l’attaquant qui va se connecter à la cible
 Reverse_tcp : C’est la cible qui va se connecter à la machine de l’attaquant

Classification : Public 11 / 17
UE Cybersécurité Metasploit 09/11/18

Une fois le module configuré, reste à lancer celui-ci avec la commande « exploit ».

Par exemple sous Windows, le module « hashdump » du meterpreter permet de récupérer


l’ensemble des mots de passe hashés du système.

Classification : Public 12 / 17
UE Cybersécurité Metasploit 09/11/18

Une fois les hashes enregistrés, il est possible de casser ceux-ci avec un outil adapté
(comme par exemple john the ripper dans l’exemple ci-dessous)

Classification : Public 13 / 17
UE Cybersécurité Metasploit 09/11/18

1.3 Exemple d’exploitation : du scan de vulnérabilité à


l’obtention d’un accès sur le système cible
Article issu de http://www.infosecisland.com/blogview/21151-Metasploitable-Gaining-Root-
on-a-Vulnerable-Linux-System.html

Copier / coller en anglais.


First thing we will do is scan the target (192.168.0.117 in this case) with nmap:

The -Ss option tells nmap to perform a stealth scan, the -A option tells it to try to discover OS
and service version levels. As you can see from the above picture, several services are
running on multiple ports. If you notice, you will see this box is running Samba on ports 139
and 445. Samba provides SMB file and print services for Windows clients.

In this tutorial we will focus on the Samba service. Nmap says it is running version 3.x, let’s
see if we can get more specific information. Metasploit has some amazing auxiliary modules,
one section being the scanner section. Let’s search the scanner section for the SMB
Protocol:

Classification : Public 14 / 17
UE Cybersécurité Metasploit 09/11/18

Looks like the scanner section has a SMB version detector. In the picture above, I select and
run the SMB detector program. The program responds with the exact version of Samba –
3.0.20.

Doing a online quick search for vulnerabilities for this version of Samba returns “Username
Map Script”. If we use the “search samba” command in Metasploit it lists available exploits.

Now we will use the “Username Map Script” to gain a root level shell on the system:

Classification : Public 15 / 17
UE Cybersécurité Metasploit 09/11/18

Classification : Public 16 / 17
UE Cybersécurité Metasploit 09/11/18

2 Commandes
2.1 Docs
https://hydrasky.com/network-security/create-a-web-backdoor-payload-with-metasploit/

2.2 Msfvenom
https://www.offensive-security.com/metasploit-unleashed/msfvenom/

msfvenom -l payoads

msfvenom -p php/meterpreter/bind_tcp --payload-options

2.3 Metasploit
https://www.offensive-security.com/metasploit-unleashed/msfconsole-commands/

2.4 Meterpreter
https://www.offensive-security.com/metasploit-unleashed/meterpreter-basics/

Classification : Public 17 / 17

Vous aimerez peut-être aussi