Exploitation du CVE-2018-0977 dans le noyau Windows

Magazine
Marque
MISC
Numéro
104
Mois de parution
juillet 2019
Spécialité(s)


Résumé

En mars 2018, Microsoft a publié une mise à jour pour corriger une vulnérabilité d’élévation de privilèges dans BasicRender.sys, un pilote en mode noyau de Windows. Cette vulnérabilité peut être déclenchée en utilisant l’API DirectX. Dans cet article, nous parlerons des notions de base de DirectX, puis des détails de la vulnérabilité, et enfin nous détaillerons de l’exploitation de cette faille.


 

La vulnérabilité CVE-2018-0977 affecte le composant graphique bien connu de Windows 10 1709 (Fall Creators Update), DirectX 12. Il s'agit d'une vulnérabilité de type untrusted pointer dereference. Dans cet article, nous montrons comment l'exploiter. Nous détaillons la démarche suivie propre à l'analyse d'une vulnérabilité. Tout d'abord, nous présentons le contexte minimal nécessaire pour exécuter le code vulnérable, c'est-à-dire une fonction de l’API DirectX bas niveau ici. Ensuite, nous montrons comment déclencher le bug, puis analyser le crash. Ces deux étapes nous donnent la compréhension de l'environnement d'exécution lors du bug, nous prenons alors le contrôle de RIP. Enfin, nous volons un token en utilisant une chaîne ROP avant de revenir dans notre processus avec ses nouveaux privilèges.

Le diable se cachant dans les détails, explorons-les !

1. Introduction à DirectX

Microsoft DirectX est un ensemble d’API qui permet de réaliser...

Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez des listes de lecture et des contenus Premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne
Références

[1] Microsoft Docs, « Direct3D 11 Graphics» : https://docs.microsoft.com/fr-fr/windows/desktop/api/_direct3d11/

[2] Microsoft Docs, « d3dkmthk.h header » : https://docs.microsoft.com/fr-fr/windows-hardware/drivers/ddi/content/d3dkmthk/

[3] Microsoft Docs, « D3DKMTSubmitCommand function » : https://docs.microsoft.com/fr-fr/windows-hardware/drivers/ddi/content/d3dkmthk/nf-d3dkmthk-d3dkmtsubmitcommand

[4] Microsoft Docs, « D3DKMT_SUBMITCOMMAND structure » : https://docs.microsoft.com/fr-fr/windows-hardware/drivers/ddi/content/d3dkmthk/ns-d3dkmthk-_d3dkmt_submitcommand

[5] MITRE, « CWE - CWE-822: Untrusted Pointer Dereference (3.2) » : https://cwe.mitre.org/data/definitions/822.html

[6] Alex Ionescu, « Sheep Year Kernel Heap Fengshui: Spraying in the Big Kids’ Pool » : http://www.alex-ionescu.com/?p=231



Article rédigé par

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous