Présentation de Metasploit et préparation du Workspace

Le framework Metasploit s’inscrit dans le projet Metasploit.

 

Metasploit est un projet OpenSource orienté sur la sécurité informatique.

 

Metasploit Framework est un outil permettant le développement et l’utilisation d’exploits contre une machine cible.

Les exploits sont des « programmes » exploitant des failles, dans le but de réaliser une action malveillante sur une cible (prise de contrôle, copie de fichiers, déni de service, etc…).

Dans le projet Metasploit nous retrouvons aussi la base de données de Shellcodes. Cette base de données contient les payloads qui seront utilisées par le framework Metasploit.

La payload correspond au code malicieux qui sera exécuté par l’exploit.

 

Le projet Metasploit contient aussi la base de données d’opcodes, qui est très utile à la création de nouveaux exploits.

 

Le framework Metasploit peut donc être utilisé pour une attaque active ou passive.

Une attaque active consiste à utiliser un exploit sur la victime, de manière à y exécuter la payload.

 

Pour une attaque passive c’est l’utilisateur de la machine cible quoi doit réaliser une action (exécuter un fichier malveillant, se rendre sur une page web malveillante, etc…).

 

Pour mener à bien les manipulations qui vont suivre, il est nécessaire d’avoir mis en place les services Nessus et OpenVAS.

Il est aussi important de disposer d’une machine de test comportant des failles.

 

Je vous recommande la lecture des articles associés :

Machines de test

Nessus

OpenVAS

 

1) Initialisation et préparation du Workspace avec Nessus

 

Entrons donc dans le vif du sujet, et utilisons le framework Metasploit.

 

Premièrement, il faut lancer deux services.

root@kali:~# service postgresql start
[ ok ] Starting PostgreSQL 9.1 database server: main.

root@kali:~# service metasploit start
[ ok ] Starting Metasploit rpc server: prosvc.
[ ok ] Starting Metasploit web server: thin.
[ ok ] Starting Metasploit worker: worker.

 

Vous pouvez à present entrer dans la console de Metasploit.

root@kali:~# msfconsole
msf >

 

Commençons donc par lister les Workspaces disponibles.

msf > workspace
* default

 

Notre première tâche va être de « remplir » le Workspace.

 

Ce Workspace va contenir une liste d’hôtes, de services, de vulnérabilités, etc…

 

A partir des informations contenues dans le Workspace, nous pourrons alors mener des actions.

 

Commençons donc par créer un nouveau Workspace.

msf > workspace -a metasploitable-nessus
[*] Added workspace: metasploitable-nessus

 

Puis entrons dans ce contexte.

msf > workspace metasploitable-nessus
[*] Workspace: metasploitable-nessus
msf > workspace
default
* metasploitable-nessus

 

La meilleure solution pour remplir le contexte est d’importer un rapport depuis un outil de recherche de vulnérabilité.

Nous commencerons avec Nessus.

 

Il nous faut donc exporter un rapport depuis Nessus.

Nessus Export Rapport

 

De retour dans la console de Metasploit, lancer l’import.

msf > db_import /root/nessus_report_Scan_Metasploitable.nessus

 

A présent, nous pouvons lister les hôtes disponibles dans le Workspace.

msf > hosts

Hosts
=====
address        mac                name           os_name                                  os_flavor  os_sp  purpose  info  comments
-------        ---                ----           -------                                  ---------  -----  -------  ----  --------
192.168.1.219  00:15:5D:01:10:34  192.168.1.219  Linux Kernel 2.6 on Ubuntu 8.04 (hardy)                    device

Ici il n’y a qu’un seul hôte, car le scan ne portait que sur une seule cible.

 

Nous pouvons aussi lister les services de chaque hôte.

msf > services

Services
========

host           port   proto  name            state  info
----           ----   -----  ----            -----  ----
192.168.1.219  21     tcp    ftp             open
192.168.1.219  22     tcp    ssh             open
…

 

Il vous est aussi possible de lister les vulnérabilités.

msf > vulns

 

A présent, le Workspace est prêt à être utilisé.

 

Sachez qu’il est aussi possible d’utiliser Nessus directement depuis la console Msf.

 

Cette technique est plus fastidieuse que l’importation depuis l’interface Web.

Néanmoins, si pour une raison ou une autre vous souhaitez l’utiliser, voyons comment faire.

 

Commençons par créer un nouveau contexte.

msf > workspace -a metasploitable-nessus-cli
[*] Added workspace: metasploitable-nessus-cli

msf > workspace metasploitable-nessus-cli
[*] Workspace: metasploitable-nessus-cli

 

Il faut ensuite charger Nessus.

msf > load nessus
[*] Nessus Bridge for Metasploit 1.1
[+] Type nessus_help for a command listing
[*] Successfully loaded plugin: nessus

 

Vous pouvez à présent vous connecter.

msf > nessus_connect john:password@localhost:8834 ok
[*] Connecting to https://localhost:8834/ as john
[*] Authenticated

 

Listons à présent les policy disponibles :

msf > nessus_policy_list
[+] Nessus Policy List
[+]

ID  Name          Comments
--  ----          --------
-1  NetworkScan1
-2  WebScan1
1   HostDisc1

 

Créons un nouveau scan.

msf > nessus_scan_new 
[*] Usage: 
[*]        nessus_scan_new <policy id> <scan name> <targets> 
[*]        use nessus_policy_list to list all available policies

 

msf > nessus_scan_new -1 "metasploitable-cli-scan" 192.168.1.219
[*] Creating scan from policy number -1, called "metasploitable-cli-scan" and scanning 192.168.1.219
[*] Scan started.  uid is c5fe08c4-7578-5bb4-e524-02e434b3aa66495367ea3085c7e7

 

Vous pouvez ensuite consulter le statut du scan.

msf > nessus_scan_status
[+] Running Scans
[+]

Scan ID                         Name                     Owner  Started            Status   Current Hosts  Total Hosts
-------                         ----                     -----  -------            ------   -------------  -----------
c5fe08c4-7578-5bb4-e524-02...   metasploitable-cli-scan  john   15:40 Apr 03 2014  running  0              1

 

Une fois le scan terminé, la commande devrait retourner ceci :

msf > nessus_scan_status
[*] No Scans Running.

 

Vous pouvez à présent lister les rapports.

msf > nessus_report_list
[+] Nessus Report List
[+]

ID                             Name                     Status     Date
--                             ----                     ------     ----
c5fe08c4-7578-5bb4-e524-02...  metasploitable-cli-scan  completed    15:43 Apr 03 2014

 

Il faut à présent charger le rapport.

msf > nessus_report_get c5fe08c4-7578-5bb4-e524-02e434b3aa66495367ea3085c7e7
[*] importing c5fe08c4-7578-5bb4-e524-02e434b3aa66495367ea3085c7e7
[*] 192.168.1.219
[+] Done

 

Comme précédemment, le Workspace est prêt.

Vous conviendrez que cette méthode est bien plus fastidieuse que la précédente.

 

2) Préparation du Workspace avec OpenVAS

 

Voyons à présent comment préparer le Workspace avec OpenVAS.

 

Nous ne nous attarderons pas sur les détails. La procédure est très semblable à la précédente.

 

Premièrement, créons un Workspace.

msf > workspace -a metasploitable-openvas
[*] Added workspace: metasploitable-openvas

 

msf > workspace metasploitable-openvas
[*] Workspace: metasploitable-openvas

 

Il faut ensuite importer un rapport depuis l’interface Web d’OpenVAS.

OpenVAS Export Rapport

msf > db_import /root/openvas_report_Scan_Metasploitable.nbe

 

Le rapport est à présent chargé.

Vous pouvez maintenant consulter les informations contenues dans le contexte.

 

msf > hosts
Hosts
=====
address        mac  name  os_name  os_flavor  os_sp  purpose  info  comments
-------        ---  ----  -------  ---------  -----  -------  ----  --------
192.168.1.219             Unknown                    device

 

msf > services
Services
========
host           port  proto  name           state  info
----           ----  -----  ----           -----  ----
192.168.1.219  21    tcp    ftp            open
192.168.1.219  22    tcp    ssh            open

 

msf > vulns
…

 

De la même manière que pour Nessus, il est possible d’utiliser OpenVAS directement dans la console Msf.

Voyons rapidement comment faire.

 

Tout d’abord, créons un contexte spécifique.

msf > workspace -a  metasploitable-openvas-cli
[*] Added workspace: metasploitable-openvas-cli

 

msf > workspace metasploitable-openvas-cli
[*] Workspace: metasploitable-openvas-cli

 

Il faut ensuite charger OpenVAS.

msf > load openvas
 [*] Successfully loaded plugin: OpenVAS

 

msf > openvas_connect admin password localhost 9390 ok
[*] Connecting to OpenVAS instance at localhost:9390 with username admin...
[+] OpenVAS connection successful

 

Nous pouvons à présent créer la cible.

msf > openvas_target_create "metasploitable_msf-cli" 192.168.1.219 "scan msf"
[*] OK, resource created: 11ec915d-9a84-4d14-a58a-0437dd5843ec
[+] OpenVAS list of targets

ID  Name                                           Hosts          Max Hosts  In Use  Comment
--  ----                                           -----          ---------  ------  -------
0   Localhost                                      localhost      1          0
2   metasploitable_msf-cli                         192.168.1.219  1          0       scan msf

 

Il nous faut à présent choisir un type de scan.

msf > openvas_config_list
[+] OpenVAS list of configs

ID  Name
--  ----
0   empty
1   Full and fast
2   Full and fast ultimate
3   Full and very deep
4   Full and very deep ultimate

 

msf > openvas_task_create "scan metasploitable" "scan depuis msf" 1 2
[*] OK, resource created: ce1fafc1-d789-49b6-b4e2-1a803a65fdd6
[+] OpenVAS list of tasks

ID  Name                                Comment          Status  Progress
--  ----                                -------          ------  --------
1   scan metasploitable                 scan depuis msf  New     -1

 

A la fin de la commande, le 1 correspond au type de scan (ici Full and Fast).

Le 2 correspond à la target sur laquelle lancer le scan.

 

Ensuite, nous pouvons lancer le scan.

msf > openvas_task_start 1
[*] OK, request submitted

 

Vous pouvez consulter l’avancement à tout moment.

msf > openvas_task_list
[+] OpenVAS list of tasks

ID  Name                                Comment          Status   Progress
1   scan metasploitable                 scan depuis msf  Running  30

 

Une fois le scan terminé, nous pouvons importer le rapport.

msf > openvas_report_import 1 8
[*] Importing report to database.

 

Dans la commande, le 1 correspond à l’ID de la tache dont il faut importer le rapport.

Le 8 correspond au format XML.

 

Vous pouvez obtenr la liste des format comme ceci :

msf > openvas_format_list
[+] OpenVAS list of report formats

ID  Name   Extension  Summary
--  ----   ---------  -------
0   ARF    xml        Asset Reporting Format v1.0.0.
1   CPE    csv        Common Product Enumeration CSV table.
2   HTML   html       Single page HTML report.
3   ITG    csv        German "IT-Grundschutz-Kataloge" report.
4   LaTeX  tex        LaTeX source file.
5   NBE    nbe        Legacy OpenVAS report.
6   PDF    pdf        Portable Document Format report.
7   TXT    txt        Plain text report.
8   XML    xml        Raw XML report.

 

Tagués avec : ,
Publié dans Pen Test
Un commentaire pour “Présentation de Metasploit et préparation du Workspace
  1. Antonio dit :

    Merci et bonne continuation

Laisser un commentaire

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

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.