web-dev-qa-db-fra.com

Comment une police peut-elle être utilisée pour une élévation de privilèges?

Récemment, Kaspersky a publié un analyse de Duqu 2. et apparemment le malware a utilisé un fichier de police True Type pour exploiter une vulnérabilité critique ( CVE-2011-3402 ) pour "sauter directement dans le noyau ". Je n'ai pas pu trouver beaucoup de détails sur cette vulnérabilité particulière, ni sur la façon dont les TTF peuvent être utilisés à des fins insidieuses. Je penserais naïvement que le code pour transformer les instructions de police en caractères à l'écran n'aurait pas besoin d'un accès au noyau ni ne devrait être particulièrement compliqué, mais c'est évidemment incorrect. Alors, qu'est-ce qui rend un fichier de police diabolique capable d'exécuter du code arbitraire?

19
Aron Foster

Les polices sont difficiles. C'est de l'ancien code. Il fonctionne en mode noyau.

Julia Wolf de FireEye, Inc. a fait une analyse:


Gist semble être le suivant:

Diapositive 32:

  • Les contours sont dessinés à l'aide d'un langage Turing Complete pour manipuler l'état graphique

(Et cette langue semble être interprétée en mode noyau.)

Diapositive 78:

  • C'était la longueur de la matrice CVT, stockée dans la structure d'état globale interne de la machine virtuelle True Type.
  • En conséquence, le moteur TrueType pensait maintenant qu'il contenait cent vingt-neuf éléments, plutôt que la longueur d'origine d'un.

Mise à jour 2016-06: Contexte général de Project Zero

Google Project Zero a rédigé un article de fond détaillé sur les vulnérabilités des polices en général:
(Le ​​spécifique CVE-2011-3402 d'en haut n'est pas mentionné, cependant.)

Update 2017-01: Windows 10 Aniversary Update analyse désormais les polices en mode USER

17
StackzOfZtuff

Polices TrueType et polices OpenType

Les polices TrueType (TTF) et OpenType (OTF) sont des systèmes de polices extrêmement populaires et largement utilisés. Pour de nombreuses machines, TTF est la valeur par défaut et OTF devient de plus en plus populaire, d'autant plus qu'il peut être utilisé comme format open source. OTF est devenu accessible au public en 1996, et TTF a été utilisé bien avant cela. Le code hérité souvent utilisé dans les pilotes qui prennent en charge ces deux systèmes de polices expose des vulnérabilités comme le débordement de tas ou les erreurs hors limites - deux vecteurs d'attaque courants pour les exploits qui conduisent à l'exécution de privilèges malveillants.

En général, les exploits qui ciblent les vulnérabilités TTF et OTF ciblent les pilotes qui prennent en charge l'utilisation de ces types de fichiers de polices sur un ordinateur.

Dans le cas de CVE-2015-2426 (que Microsoft détecte et bloque comme Exploit: Win32/CVE-2015-2426 ), l'exploit a tenté de cibler un fichier de pilote .dll (atmfd.dll) utilisé par la bibliothèque Windows Adobe Type Manager dans Windows. La vulnérabilité a été corrigée avec MS15-078. TrendMicro a effectué une analyse de cette vulnérabilité trouvée dans l'exploit HackingTeam lorsque leurs données ont été divulguées à cause d'une violation de données. NCC Group a également effectué une longue analyse de l'exploit HackingTeam, qui a fait son chemin dans le projet metasploit-framework sous le nom ms15_078_atmfd_bof.

Si vous pouvez digérer toute l'histoire, assurez-vous de consulter le discours de j00ru de 44CON sur Reverse Engineering and Exploiting Font Rasterizers .

CVE-2013-3128 (résolu par MS13-081) était une vulnérabilité dans la façon dont les polices OTF et TTF étaient analysées par les programmes Microsoft. Dans un tel cas, les attaquants intégreraient une police malveillante ou mal formée dans une page Web qui chargerait ou ciblerait ensuite la vulnérabilité et permettrait l'installation de logiciels malveillants sur la machine. Il existe Nessus et OpenVAS plugins pour CVE-2013-3128 qui incluent une vulnérabilité TTF associée, CVE-2013-3894. La raison pour laquelle ces deux-là n'ont jamais réussi à devenir un module d'exploitation de framework Metasploit était probablement parce que le même correctif cumulatif, MS13-081 et MS13-082 comprenait un autre exploit local d'élévation de privilèges nommé ms13_081_track_popup_menu (qualité similaire à la plus récente ms14_058_track_popup_menu).

Si vous aimez vraiment les vulnérabilités du moteur de mise à l'échelle des polices, assurez-vous de vérifier le travail de F13 Laboratory y compris leur Black Hat USA 2013 - Smashing The Font Scaler Engine dans le noyau Windows vidéo et livre blanc , ainsi que les travaux de Dig Team, Black Hat USA 2014 - Comprendre TOCTTOU dans le moteur de mise à l'échelle des polices du noyau Windows vidéo et présentation PDF .

PostScript encapsulé

Les fichiers PostScript (EPS) encapsulés sont utilisés pour afficher des aperçus d'impression et fournir d'autres fonctions liées à l'impression. Comme TTF, ils sont omniprésents.

Le fichier .eps peut être incorporé dans d'autres fichiers, tels qu'un fichier Word .docx. Le fichier .docx est décompressé ou décompressé, le fichier .eps est ajouté et référencé en tant qu'image et le fichier .docx est reconditionné.

Nous avons vu trois versions de ce mécanisme de livraison utilisant CVE-2015-2545, qui ont affecté le filtre PosScript utilisé dans Microsoft Office:

  • La première version a tenté d'exploiter CVE-2015-2545 avant d'être connue du public, ce qui en fait un exploit de jour zéro. Il a utilisé un fichier appelé resume.docx qui a été vu pour la première fois en Inde. Microsoft a publié MS15-099 (version de septembre) pour corriger la vulnérabilité.
  • La deuxième version a tenté de contourner MS15-099 (version de septembre) et a été observée au Japon. Il a été atténué par une mise à jour du MS15-099 (version de novembre).
  • La troisième version a été observée en Corée avec un nom de fichier inconnu et a également été atténuée par une mise à jour du MS15-099 (version de novembre).

De manière inhabituelle, un module d'exploitation de framework Metasploit pour cette vulnérabilité n'a jamais été créé, mais on peut le trouver dans CORE IMPACT sous la forme Microsoft Office Malformed EPS File Vulnerability Exploit - ou voir quelques vues dans - registres et traces de pile .

9
atdre

Techniquement, l'accès à l'espace mémoire du noyau ne devrait pas être nécessaire pour rendre une police, d'où l'existence d'un exploit et d'un patch.

Le correctif répondait aux besoins des moteurs de rendu pour accéder et créer une mémoire inscriptible dans la pile.

Bien que cela puisse se produire dans la mémoire de l'utilisateur ou dans les registres de mémoire au niveau du noyau, ce manque particulier de vérification des limites avant d'écrire dans la pile a permis l'exécution de code à partir d'un fichier fon mal formé.

Votre meilleur pari pour trouver le "comment" il a été exploité serait de rechercher des modules de métasploits. Je crois qu'il y en a un.

0
jas-