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?
Julia Wolf de FireEye, Inc. a fait une analyse:
PDF ici: Julia Wolf, CanSecWest, 08/03/2013, Vulnérabilité du moteur de police TrueType du noyau Windows
Vidéo/diapositives à nouveau ici. HackInParis, 2013-06-20, Analyse d'une vulnérabilité du noyau Windows: de l'espionnage à l'utilisation criminelle , diapositives: PDF de 303 pages =, Vidéo: 1 heure sur YouTube
Gist semble être le suivant:
Diapositive 32:
(Et cette langue semble être interprétée en mode noyau.)
Diapositive 78:
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.)
Blogs TechNet: 13-01-2017, Matt Oh et Elia Florio, équipe de recherche Windows Defender ATP, Renforcement de Windows 10 avec atténuation des exploits zero-day (Archivé ici .)
L'analyse des polices se fait désormais en mode utilisateur dans un AC ["AppContainer"]
(L'image qui contient cette déclaration semble provenir de la diapositive 34 de cette présentation: BlackHat 2016, Améliorations de l'atténuation de Windows 10 . )
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 .
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:
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 .
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.