Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Metasploit
  3. Premiers pas avec Metasploit
Extrait - Metasploit Testez la sécurité de vos infrastructures (2e edition)
Extraits du livre
Metasploit Testez la sécurité de vos infrastructures (2e edition)
1 avis
Revenir à la page d'achat du livre

Premiers pas avec Metasploit

Introduction

Depuis sa première version en 2003, Metasploit n’a cessé d’évoluer, devenant le framework d’exploitation le plus complet et le plus utilisé grâce à la facilité d’utilisation des différentes options, interfaces ou encore utilitaires.

La terminologie

Cette section introduit l’ensemble des termes nécessaires à la bonne compréhension de l’ouvrage.

Exploit

Un exploit est un bout de code permettant à un attaquant ou à un auditeur d’exploiter une faille de sécurité au sein d’un système informatique cible. Un exploit peut être utilisé contre une machine distante (remote exploit) ou bien sur la machine sur laquelle se situe l’attaquant (local exploit).

Les conséquences relatives à cette exploitation varieront en fonction de la vulnérabilité pouvant aller de la compromission du système au déni de service (DoS) en passant par l’élévation de privilèges.

Payload

Le payload correspond à la charge malveillante exécutée par l’exploit. Cela peut aller de la création d’une connexion entre la machine de l’attaque et la machine cible (bind shell/reverse shell) pour des connexions futures, à l’exécution d’une commande simple en passant par l’ajout d’un utilisateur sur le système cible.

Auxiliaire (auxiliary)

Une centaine d’auxiliaires sont présents au sein du framework Metasploit. Ils ont divers objectifs tels que permettre de réaliser des scans, des écoutes réseau ou même du fuzzing.

Encoder

Le jeu du chat...

Les invites de commandes

Pour la bonne compréhension de la suite de cet ouvrage, et quel que soit le système d’exploitation utilisé, il est important de bien faire la distinction entre l’ensemble des invites de commandes disponibles afin de savoir quelles commandes il est possible d’exécuter :

Unix

regis@kali:~$  
root@kali:/usr/share# 

L’invite de commandes précédente est celle d’un système standard sous Unix. Le premier élément (regis et root) est le nom d’utilisateur avec lequel l’utilisateur est connecté sur le système d’exploitation. L’arobase (@) est un simple séparateur entre ce nom d’utilisateur et le nom de la machine sur laquelle l’utilisateur est connecté (kali). Les deux-points (:) sont un nouveau séparateur entre les éléments précédents et le dossier dans lequel l’utilisateur se trouve (~ et /usr/share). Enfin, le dernier élément ($ et #) représente le niveau de droits de l’utilisateur connecté. En effet, le $ signifie que l’utilisateur est un compte disposant de droits limités, alors que le # signifie que l’utilisateur est en mode superutilisateur.

Metasploit

msf6 > 

L’invite de commandes précédente est celle de Metasploit. À partir de celle-ci, il est possible d’utiliser...

Les interfaces

1. Le système de fichiers

Avant de commencer à présenter les diverses interfaces dont dispose le framework Metasploit, nous allons présenter les différents éléments présents au sein du système de fichiers. Cela permettra de comprendre comment fonctionnent les différents affichages au sein du framework et même de faire certains changements en cas de besoin.

Sur un système de type Kali, les données relatives au Framework Metasploit se trouvent à l’emplacement /usr/share/metasploit-framework :

root@kali:~# ls -l /usr/share/metasploit-framework 
total 148  
drwxr-xr-x  4 root root  4096 mars  28 18:31 app  
drwxr-xr-x  3 root root  4096 mars  28 18:54 config  
drwxr-xr-x 21 root root  4096 mars  28 18:31 data  
drwxr-xr-x  3 root root  4096 mars  28 18:31 db  
lrwxrwxrwx  1 root root    27 mars  28 18:32 documentation -> 
../doc/metasploit-framework  
-rwxr-xr-x  1 root root  1209 janv. 24 18:24 Gemfile  
-rw-r--r--  1 root root  9359 janv. 25 09:40 Gemfile.lock  
drwxr-xr-x 14 root root  4096 mars  28 18:31 lib  
-rw-r--r--  1 root root  8652 janv. 25 09:40 
metasploit-framework.gemspec  
drwxr-xr-x  9 root root  4096 mars  28 18:31 modules  
-rwxr-xr-x  1 root root  1263 janv. 25 09:40 msfconsole  
-rwxr-xr-x  1 root root  2813 janv. 25 09:40 msfd  
-rwxr-xr-x  1 root root  5326 janv. 25 09:40 msfdb  
-rw-r--r--  1 root root   635 janv. 25 09:40 msf-json-rpc.ru  
-rwxr-xr-x  1 root root  2229 janv. 25 09:40 msfrpc  
-rwxr-xr-x  1 root root  9677 janv. 25 09:40 msfrpcd  
-rwxr-xr-x  1 root root   166 janv. 25 09:40 msfupdate  
-rwxr-xr-x  1 root root 12921 janv. 25 09:40 msfvenom  
-rw-r--r--  1 root root   551 janv. 25 09:40 msf-ws.ru  
drwxr-xr-x  2 root root  4096 mars  28 18:31 plugins  
-rwxr-xr-x  1 root root  1299 janv. 24 18:24 Rakefile  
-rwxr-xr-x  1 root root   604 janv. 25 09:40 ruby  
-rwxr-xr-x  1 root root   140 janv. 25 09:40 script-exploit  
-rwxr-xr-x  1 root root   141 janv. 25 09:40 script-password  
-rwxr-xr-x  1...

Rappel sur les commandes utiles

Le but de cette section n’est pas de faire une revue complète de l’ensemble des commandes de base de Metasploit. En effet, il en existe un peu plus d’une soixantaine et certaines seront abordées dans la suite de cet ouvrage. La commande help est un bon début pour en savoir plus sur les commandes disponibles :

msf6 > help 
 
Core Commands  
=============  
 
   Command       Description 
   -------       ----------- 
   ?             Help menu  
   banner        Display an awesome metasploit banner 
   cd            Change the current working directory 
   color         Toggle color 
   connect       Communicate with a host 
[...]  
 
Database Backend Commands 
========================= 
 
   Command       Description 
   -------       ----------- 
   db_connect    Connect to an existing database 
   db_disconnect Disconnect from the current database instance 
   db_export     Export a file containing the contents of the db 
   db_import     Import a scan result file 
[...] 

Pour l’ensemble des résultats renvoyés, il est possible d’avoir des informations complémentaires :

msf6 > help db_connect  
[*]    Usage: db_connect <user:pass>@<host:port>/<database>  
[*]       OR: db_connect -y [path/to/database.yml]  
[*] Examples:  
[*]        db_connect user@metasploit3  
[*]        db_connect user:pass@192.168.0.2/metasploit3  
[*]        db_connect user:pass@192.168.0.2:1500/metasploit3...