samedi 18 avril 2009

Metasploit exploite l’absence de DEP

Dans cet article nous allons réaliser un exploit dont l’objectif est de prendre la main sur la machine « cible » en envoyant un mail « corrompu » à la cible. Cet exploit s’appuie sur la désactivation du DEP sur la machine « cible ».

DEP signifie Data Execution Protection. En d’autres termes le DEP existe pour empêcher l’exécution de code malveillant dans des zones mémoires qui ne sont pas faites pour cela. Cette technique empêche l’exécution de code rendu exploitable en réalisant un « buffer overflow » (débordement de buffer) par exemple.

DEP peut être « hardware » ou « software ».

Hardware

Le bit NX qui signifie No eXecute, est une technologie utilisée par les CPUs pour restreindre l’usage des zones mémoires soit au stockage des instructions ou du code du processeur, soit au stockage de données.

Si le processeur x86 supporte cette fonctionnalité, et si le BIOS supporte également cette fonctionnalité, et que le fonctionnalité est activée soit par le fabricant, soit par l’utilisateur, alors la fonctionnalité NX est opérationnelle sous Windows sur une base limitée (appelé « OptIn »). Cette configuration fournit uniquement une protection pour un ensemble limité du système Windows et des fichiers binaires. Pour se protéger entièrement, l’utilisateur doit choisir soit le mode “OptOut” couvrant tout les programmes et processus non spécifiquement exemptés, ou le mode “AlwaysOn” couvrant tout sans exception. Ces paramètres sont configurables au travers de l’interface “System Properties”. Si le processeur x86 ne supporte pas cette fonctionnalité, alors il n’y a aucune protection. En dehors de l’architecture x86, une version de NX existe également pour l’architecture IA-64 d’Intel (supportée par Windows).


Software

Le DEP logiciel , bien qu’il n’ait rien à voir avec le bit NX, est ce que Microsoft appelle le renforcement du “Safe Structured Exception Handling” (la gestion structurée et sécurisée des exceptions). Le DEP logiciel (aussi appelé SafeSSH) vérifie simplement quand une exception est levée pour être sur que l’exception est enregistrée dans la table des fonctions d’une application, et que l’application en a réellement besoin. Cependant bien que l’on ait l’impression que le DEP logiciel soit lié à la prévention de l’exécution de code dans les pages de données, c’est en fait une forme de protection différente.

DEP est apparu dans Windows XP Service Pack 2 et est inclus dans Windows XP Tablet PC Edition 2005, Windows Server 2003 Service Pack 1 et plus tard, Windows Vista, and Windows Server 2008, et toutes les dernières versions de Windows.


Vous allez me dire alors, je le vois bien : « Cet exploit ne peut plus être réalisé ? ». La réponse est à la fois oui et non. Oui car la plupart des postes ont les dernières versions des SP, et non car malgré tout certains ne sont toujours pas à jour et il existe, paraît-il, des possibilités de contourner le DEP. Mais ce sujet devrait être traité dans un autre article.

Quoiqu’il en soit, l’intérêt de cet article est de présenter ce type de faille, et le mode opératoire (réalisé par l’envoi d’un mail à la victime). Au travers de cet exploit on se rend également compte de la puissance de Metasploit (dans le contexte de cet article nous utilisons le Metasploit installé sur Backtrack 3).

Pour information, Backtrack n’est pas le « graal » des outils des auditeurs en sécurité. Généralement ces derniers préfèrent se créer leur propre boîte à outils. Cependant Backtrack permet de rassembler dans une VM les principaux outils nécessaires à la réalisation de la plupart des exploits (Backtrack peut aussi être installé sur une vraie machine ou sur une clef USB).

Dans la vidéo présentée en fin d’article, nous vous expliquons comment activer et désactiver le DEP sur votre machine. Ce sera l’occasion de vérifier qu’il est bien activé ;-).

La machine « cible » est un Windows XP SP2 avec le DEP désactivé (la désactivation du DEP nécessite d’avoir les droits « administrateurs » sur la machine).

Le mail envoyé à la victime contient un fichier ANI forgé pour exécuter un « buffer overflow » lors de son chargement. Les fichiers ANI gèrent les curseurs animés pour Win95 et WinNT.

La vidéo de l’exploit est visible ICI. Bon film… !

Aucun commentaire:

Enregistrer un commentaire

Partager avec...