CVE-2013-3881

Magazine
Marque
MISC
Numéro
74
Mois de parution
juillet 2014
Domaines


Résumé

Une vulnérabilité de déréférencement de pointeur a été corrigée en fin d'année par le bulletin MS13-081. Elle affecte les systèmes Windows 7 SP1 et 2008 R2 et nous permet d'élever nos privilèges à travers le module noyau win32k. Cette vulnérabilité a été corrigée par le KB2876284, cet article décrit comment réaliser un exploit à travers les informations données par Endgame [ENDG] et l'excellent article de Matias d'Immunity [IMMU]. La vulnérabilité réside dans win32k et son exploitation repose sur la gestion, par ce module noyau, des objets dits « utilisateurs ». À ce titre, nous étudierons dans un premier temps les mécanismes impliqués, la raison de la vulnérabilité puis comment la déclencher. Finalement, nous décrirons les étapes nécessaires à une élévation de privilèges.


1. Contexte

win32k est un module de Windows prenant en charge la gestion de l'interface avec l'utilisateur, qui est apparue avec NT4.0. C'est avec elle qu'est arrivée la notion de « session » dans laquelle un processus n'est plus spécifique à un utilisateur, mais à une instance de celui-ci qui s'est identifié via une interface spécifique. Il est bon de rappeler également que l'interface graphique, telle que nous la manipulons quotidiennement, consiste en des objets graphiques (GDI) ainsi que des objets utilisateur (USER) permettant l'interaction avec celle-ci. Ces objets résident dans un espace mémoire du noyau nommé la session pool [POOL].

Comme décrit dans la Fig. 1, lorsqu'un thread crée une fenêtre via un appel à user32!CreateWindow[Fig1.1], win32k crée un objet win32k!tagWND[Fig1.2] représentant cette fenêtre. Cet objet est créé de manière générique depuis la session pool à l'aide de l'API win32k!HMAllocObject[Fig1.3].

Afin d'afficher notre...

Cet article est réservé aux abonnés. Il vous reste 95% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Zerologon pour les (mots de passe) nuls

Magazine
Marque
MISC
Numéro
113
Mois de parution
janvier 2021
Domaines
Résumé

ZeroLogon est LA vulnérabilité de septembre 2020 qui expose de nombreux domaines Windows à une compromission totale via un scénario d’exploitation réaliste et fiable. Mais ce qui donne à Zerologon ses lettres de noblesse c’est qu’elle repose essentiellement sur la mauvaise utilisation d’un algorithme cryptographique permettant de réaliser une attaque à clair choisi particulièrement astucieuse. Zoom sur la vulnérabilité la plus passionnante de la rentrée 2020 !

CVE-2020-3433 : élévation de privilèges sur le client VPN Cisco AnyConnect

Magazine
Marque
MISC
Numéro
112
Mois de parution
novembre 2020
Domaines
Résumé

Cet article explique comment trois vulnérabilités supplémentaires ont été découvertes dans le client VPN Cisco AnyConnect pour Windows. Elles ont été trouvées suite au développement d’un exploit pour la CVE-2020-3153 (une élévation de privilèges, étudiée dans MISC n°111). Après un rappel du fonctionnement de ce logiciel, nous étudierons chacune de ces nouvelles vulnérabilités.

Use-After-Free dans le noyau Linux

Magazine
Marque
MISC
HS n°
Numéro
22
Mois de parution
octobre 2020
Domaines
Résumé

Pièce logicielle qui a accompagné les deux dernières décennies, le noyau Linux est un système relativement complet qui dispose d’un allocateur de mémoire dynamique. Comme tous les logiciels classiques, le noyau est ainsi régulièrement sujet à des vulnérabilités de type Use-After-Free via cet allocateur.

Return oriented programming 101

Magazine
Marque
MISC
HS n°
Numéro
22
Mois de parution
octobre 2020
Domaines
Résumé

Le Returned Oriented Programming (ou ROP) est une technique permettant d'exploiter des programmes disposant de la protection NX (No eXecute) ou DEP (Data Execution Prevention). L'objectif de cet article est de vous présenter les bases du ROP, ainsi que l’exploitation pas-à-pas d’un programme d’entraînement via l'utilisation de la bibliothèque python pwntools [1]. Dans un souci de simplicité, la démonstration sera réalisée sur un programme s'exécutant sur un système Linux 64 bits. Bien entendu, cette démonstration reste applicable sur d'autres architectures (ARM, MIPS, etc.).