[Metasploit 2.x – Partie 1] Introduction et présentation

Par Rédaction, secuobs.com
Le 28/12/2007


Résumé : Metasploit est une plateforme de codes intrusifs développée par le chercheur en sécurité informatique HD Moore. S'appuyant sur une base d'exploits conséquente et un rythme soutenu de développement, Metasploit s'est imposé comme une référence dans les domaines du logiciel libre et de la sécurité informatique.



NDLR : ce dossier a été réalisé avec la branche 2.x de Metasploit et plus précisément avec la version 2.5 ; la version la plus récente actuelle de cette branche est la version 2.7 de Metasploit. A noter que les versions de la branche 3.x sont maintenant disponibles sur le site officiel de Metasploit, la version la plus récente proposée en téléchargement sur ce site étant la 3.0. La branche 3.x a été développée autour du langage Ruby contrairement à la branche 2.x qui s'appuie elle largement sur le langage PERL ; parmi les nouveautés apportées par la branche 3.x on retrouve la simplification de l’écriture des exploits et le support de la reconnaissance automatique de réseaux grâce aux plugins « recon » au même titre que celui des techniques d'évasions (IDS/IPS/Antivirus) tout en gardant comme souci principal la portabilité de l'ensemble.


Metasploit s’est imposée comme la plateforme de codes intrusifs - plus connus sous le nom d’exploits - la plus en vogue actuellement. Les raisons en sont nombreuses, mais citons notamment sa licence GPLv2 ( General Public Licence - lien ) ainsi que sa gratuité qui en font un outil très apprécié par la communauté.

Son auteur de talent, HD Moore ( lien ), n’a pas eu de mal à faire connaître son outil grâce aux nombreuses options qu’il a ajoutées, en relativement peu de temps.

Le framework est développé essentiellement en Perl ( lien ), mais contient également du code C ( lien ), de l’assembleur ( lien ), et du Python ( lien ).

La communauté « Full disclosure », ayant pour habitude de publier les codes d’exploitation des failles (plus communément appelés « Proof of Concept » ou PoC) sous forme de codes source en C ou Perl en général, commence à changer ses habitudes, et il n’est désormais pas rare de voir des fichiers « .pm » en attachement de mails sur les mailing-lists concernées (dont la plus connue d’entre elles reste bugtraq - lien ). Ces fichiers sont des plugins Metasploit directement utilisables sur le framework, sans compilation préalable.

La documentation abondante autour de ce projet permet, aux initiés, il faut le reconnaître, de développer rapidement des plugins complets (exploits, payloads, etc.). Les exploits ( lien ) sous forme de plugins Metasploit sont ainsi développés plus rapidement, et bénéficient d’une meilleure portabilité (Windows notamment, grâce à un environnement Cygwin - lien - adapté spécialement).

Un pré requis essentiel à la lecture de cet article est la connaissance des bases de l’écriture de codes malicieux ( principes des buffer overflows - lien - bugs de format - lien ).

Metasploit est téléchargeable sur le site officiel ( lien ) en archive GNU/LINUX ( lien ) ou en « installer » Windows. Les deux environnements étant entièrement similaires, nous ne ferons pas de distinction tout au long de cet article.

Présentation générale

La plateforme Metasploit se présente avec une arborescence claire et très détaillée :

$ ls
[data] [exploits] msfcli msfencode
msfpescan [nops] [src] [docs]
[extras] msfconsole msflogdump msfupdate
[payloads] [tools] [encoders] [lib]
msfelfscan msfpayload msfweb [sdk]



Les répertoires les plus pertinents dans le cadre de cet article sont :

- extras/ qui contient des suppléments pour la complétion automatique et le support SSL. Il s’agit de 2 archives à ins taller (perl Makefile.PL && make && make install).

- encoders/ contenant différents encodeurs de payloads, NOPs ( No Operation - lien ), permettant par exemple de xorer (chiffrer avec « l’algorithme » XOR – eXclusive OR - lien ) un payload et d’ajouter l’en-tête approprié (décodeur XOR) à la charge utile.

- exploits/ contenant l’ensemble des exploits mis à disposition par le framework. Les derniers exploits sont téléchargeables sur le site de Metasploit. Il est également possible de télécharger un « snapshot ». Les exploits qui seront développés en parallèle devront être placés dans ce répertoire pour être utilisés dans Metasploit.

- docs/ contenant une abondante documentation qui couvre la quasi-intégralité des aspects techniques. Certains documents de ce répertoire sont d’ailleurs traduis en Français.

- payloads/ contenant les payloads des différentes architectures et systèmes d’exploitation.

- sdk/ regroupant différentes ressources pour les développeurs : générateur de codes pm pour les buffer overflows, les bugs de format… Il contient également quelques tutoriaux pour s’initier au développement de modules .pm pour Metasploit. Un exemple sera d’ailleurs repris dans le chapitre ci-dessous concernant le scripting.

- tools/ contenant plusieurs outils complémentaires à la plateforme permettant de dumper (récupérer) le contenu de l’adressage mémoire d’un processus, ou encore de lancer le serveur socketninja.pl qui permet des exploitations multiples et simultanées : les cibles se connectant ainsi sur ce serveur en connect back.


Pour rappel, les différentes interfaces disponibles dans le framework sont :

- msfcli pour une exploitation entièrement automatisée en ligne de commande. Cette « interface » rudimentaire est utilisée de préférence dans des scripts externes et est relativement austère pour une utilisation temps réel par un utilisateur.

- msfconsole est « l’interface de prédilection » car elle présente le meilleur compromis entre clarté et rapidité d’utilisation. La complétion et l’aide disponible à tout moment (« help ») permettent de se familiariser rapidement avec cette interface « à étages ».

- msfweb est un GUI (Graphical User Interface) accessible via un navigateur classique.


Autres ressources disponibles dans ce dossier :

[Metasploit 2.x – Partie 2] Introduction aux charges utiles – lien

[Metasploit 2.x – Partie 3] Les charges utiles disponibles – lien

[Metasploit 2.x – Partie 4] La charge utile Meterpreter – lien

[Metasploit 2.x – Partie 5] Scripting – lien

[Metasploit 2.x – Partie 6] Méthodologie d’un audit de sécurité – lien

[Metasploit 2.x – Partie 7] Conclusion et webographie – lien