Analyse et exploitation des vulnérabilités 0day du système Microsoft Windows
Introduction
Le mois dernier, un correctif de sécurité de Microsoft contenait une vulnérabilité d'élévation de privilèges win32k exploitée dans la nature, présente uniquement dans les anciennes versions de Windows. Cet article analysera comment les attaquants continuent d'exploiter cette vulnérabilité dans un contexte où les mesures de sécurité s'améliorent constamment. L'environnement d'analyse est Windows Server 2016.
Contexte de la vulnérabilité
Une vulnérabilité 0day désigne une faille qui n'a pas été divulguée ni corrigée, pouvant être exploitée de manière malveillante pour causer d'importants dégâts. La vulnérabilité 0day récemment découverte dans le système Windows permet aux hackers d'obtenir un contrôle total du système, avec des conséquences incluant, mais ne se limitant pas à :
Vol d'informations personnelles
Panne du système perte de données
Pertes financières
Insertion de logiciels malveillants
La clé privée a été volée
Les actifs numériques ont été transférés
Dans une perspective plus large, cette vulnérabilité pourrait affecter l'ensemble de l'écosystème Web3 fonctionnant sur une infrastructure Web2.
Analyse des correctifs
Le patch a corrigé un problème de traitement multiple du compteur de référence d'objet. L'analyse des commentaires dans le code source précoce a révélé que le code d'origine ne verrouillait que l'objet de la fenêtre, sans verrouiller l'objet du menu dans la fenêtre, ce qui pouvait entraîner une référence incorrecte à l'objet du menu.
Analyse des exploits de vulnérabilité
L'analyse a révélé que dans la fonction xxxEnableMenuItem, la fonction MenuItemState renvoie deux possibilités de menus : le menu principal de la fenêtre ou un sous-menu dans le menu.
Construire une structure de menu imbriqué multicouche spéciale et définir des attributs spécifiques peut contourner la détection de fonction. Lors du retour de la fonction xxxRedrawTitle au niveau utilisateur, supprimer les relations de référence entre les menus et libérer l'objet de menu cible. Enfin, dans la fonction xxxEnableMenuItem, faire référence à un objet de menu qui n'est plus valide.
Réalisation de l'exploitation des vulnérabilités
Approche globale
Considérer deux types d'utilisation :
Exécuter le code shellcode
Modifier l'adresse du token en utilisant les primitives de lecture/écriture.
Choisissez la deuxième solution, en divisant le processus d'utilisation en deux problèmes :
Comment exploiter la vulnérabilité UAF pour contrôler la valeur de cbwndextra
Comment réaliser des primitives de lecture et d'écriture stables
Écriture des données initiales
Utilisez l'objet de nom de fenêtre dans la classe de fenêtre WNDClass pour libérer l'objet de menu occupé. Trouvez le moment opportun pour écrire des données dans la fonction xxxRedrawWindow.
Le choix final est d'écrire le paramètre cb-extra de HWNDClass à l'aide de l'opération AND 2 avec le drapeau.
disposition de mémoire stable
Concevoir trois objets HWND consécutifs, libérer l'objet intermédiaire et l'occuper avec l'objet HWNDClass. Les objets HWND avant et arrière sont respectivement utilisés pour :
Fournir des paramètres de vérification des marques
Fournir un support pour la lecture et l'écriture des primitives
Déterminer précisément l'ordre de disposition des objets à travers l'adresse du gestionnaire de noyau divulguée.
Implémentation de primitives de lecture et d'écriture
Lire au hasard : GetMenuBarInfo()
Écrire n'importe quoi : SetClassLongPtr()
À part l'écriture de TOKEN, toutes les autres opérations d'écriture utilisent l'objet class du premier objet de fenêtre.
Résumé
La vulnérabilité win32k pourrait être éliminée dans la nouvelle version de Windows.
Le processus d'exploitation de la vulnérabilité est relativement simple, reposant principalement sur la fuite de l'adresse du handle de la pile de bureau.
La découverte de vulnérabilités peut dépendre d'une détection de couverture de code plus complète.
La détection des lectures et écritures de mémoire anormales aide à découvrir des vulnérabilités similaires.
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
13 J'aime
Récompense
13
3
Reposter
Partager
Commentaire
0/400
MidnightTrader
· Il y a 14h
Encore un grand trou, Windows ne vaut vraiment pas le coup.
Voir l'originalRépondre0
TokenDustCollector
· Il y a 14h
Cette vulnérabilité de Microsoft est un peu sérieuse, elle peut même voler la clé privée.
Analyse des vulnérabilités Windows 0day : de l'UAF du menu à l'élévation de privilèges système
Analyse et exploitation des vulnérabilités 0day du système Microsoft Windows
Introduction
Le mois dernier, un correctif de sécurité de Microsoft contenait une vulnérabilité d'élévation de privilèges win32k exploitée dans la nature, présente uniquement dans les anciennes versions de Windows. Cet article analysera comment les attaquants continuent d'exploiter cette vulnérabilité dans un contexte où les mesures de sécurité s'améliorent constamment. L'environnement d'analyse est Windows Server 2016.
Contexte de la vulnérabilité
Une vulnérabilité 0day désigne une faille qui n'a pas été divulguée ni corrigée, pouvant être exploitée de manière malveillante pour causer d'importants dégâts. La vulnérabilité 0day récemment découverte dans le système Windows permet aux hackers d'obtenir un contrôle total du système, avec des conséquences incluant, mais ne se limitant pas à :
Dans une perspective plus large, cette vulnérabilité pourrait affecter l'ensemble de l'écosystème Web3 fonctionnant sur une infrastructure Web2.
Analyse des correctifs
Le patch a corrigé un problème de traitement multiple du compteur de référence d'objet. L'analyse des commentaires dans le code source précoce a révélé que le code d'origine ne verrouillait que l'objet de la fenêtre, sans verrouiller l'objet du menu dans la fenêtre, ce qui pouvait entraîner une référence incorrecte à l'objet du menu.
Analyse des exploits de vulnérabilité
L'analyse a révélé que dans la fonction xxxEnableMenuItem, la fonction MenuItemState renvoie deux possibilités de menus : le menu principal de la fenêtre ou un sous-menu dans le menu.
Construire une structure de menu imbriqué multicouche spéciale et définir des attributs spécifiques peut contourner la détection de fonction. Lors du retour de la fonction xxxRedrawTitle au niveau utilisateur, supprimer les relations de référence entre les menus et libérer l'objet de menu cible. Enfin, dans la fonction xxxEnableMenuItem, faire référence à un objet de menu qui n'est plus valide.
Réalisation de l'exploitation des vulnérabilités
Approche globale
Considérer deux types d'utilisation :
Choisissez la deuxième solution, en divisant le processus d'utilisation en deux problèmes :
Écriture des données initiales
Utilisez l'objet de nom de fenêtre dans la classe de fenêtre WNDClass pour libérer l'objet de menu occupé. Trouvez le moment opportun pour écrire des données dans la fonction xxxRedrawWindow.
Le choix final est d'écrire le paramètre cb-extra de HWNDClass à l'aide de l'opération AND 2 avec le drapeau.
disposition de mémoire stable
Concevoir trois objets HWND consécutifs, libérer l'objet intermédiaire et l'occuper avec l'objet HWNDClass. Les objets HWND avant et arrière sont respectivement utilisés pour :
Déterminer précisément l'ordre de disposition des objets à travers l'adresse du gestionnaire de noyau divulguée.
Implémentation de primitives de lecture et d'écriture
À part l'écriture de TOKEN, toutes les autres opérations d'écriture utilisent l'objet class du premier objet de fenêtre.
Résumé
La vulnérabilité win32k pourrait être éliminée dans la nouvelle version de Windows.
Le processus d'exploitation de la vulnérabilité est relativement simple, reposant principalement sur la fuite de l'adresse du handle de la pile de bureau.
La découverte de vulnérabilités peut dépendre d'une détection de couverture de code plus complète.
La détection des lectures et écritures de mémoire anormales aide à découvrir des vulnérabilités similaires.