Analyse des vulnérabilités 0day du système Windows : de l'escalade de privilèges win32k aux risques de sécurité Web3

robot
Création du résumé en cours

Analyse et exploitation des vulnérabilités 0day du système Microsoft Windows

Récemment, un correctif de sécurité publié par Microsoft a corrigé une vulnérabilité d'élévation de privilèges win32k qui est activement exploitée. Cette vulnérabilité affecte principalement les anciennes versions du système Windows, et il semble qu'elle ne puisse pas être déclenchée sur Windows 11. Cet article analysera comment les attaquants pourraient continuer à exploiter ce type de vulnérabilité dans l'environnement de sécurité actuel. L'analyse suivante est basée sur un environnement Windows Server 2016.

Numen Exclusif : Le 0day de Microsoft peut renverser la scène Web3 à la fois au niveau système et physique

Contexte de la vulnérabilité

Les vulnérabilités 0day désignent des failles de sécurité non publiées et non corrigées, similaires au concept de transactions T+0 sur les marchés financiers. Une fois que ce type de vulnérabilité est exploité de manière malveillante, cela peut causer des dommages graves. La vulnérabilité 0day récemment découverte dans le système Windows permet à un attaquant d'obtenir un contrôle total du système, permettant ainsi des attaques telles que le vol d'informations, la destruction de systèmes et l'insertion de logiciels malveillants. Du point de vue de Web3, cela pourrait entraîner le vol de clés privées, le transfert d'actifs numériques, voire mettre en péril l'ensemble de l'écosystème Web3 basé sur une infrastructure Web2.

Numen exclusif : la vulnérabilité 0day de Microsoft peut déstabiliser le jeu Web3 à la fois au niveau système et physique

Analyse de correctif

L'analyse du code du patch a révélé qu'il corrigeait principalement un problème de gestion du comptage de références d'objets. En combinant cela avec les commentaires du code source win32k antérieur, on peut constater 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 pourrait entraîner une référence incorrecte de l'objet du menu.

Numen Exclusif : la vulnérabilité 0day de Microsoft peut renverser le jeu Web3 au niveau système + physique

Preuve de concept d'exploitation de vulnérabilité ( PoC )

L'analyse révèle que la fonction xxxEnableMenuItem peut retourner l'état du MenuItem de la barre de menus principale ou d'un sous-menu. Nous avons construit une structure de menu spéciale à quatre niveaux, contenant les caractéristiques suivantes :

  1. L'ID du menu de niveau le plus bas D doit être de type menu système.
  2. Le menu de niveau supérieur A doit également être un menu système, mais il faut supprimer les éléments ayant le même ID que le menu D.
  3. Supprimer la référence du menu C dans le menu B.
  4. L'existence du menu B semble aider à la libération du menu C.

Lorsqu'une vulnérabilité est déclenchée, supprimez l'association des menus C et B lors du retour de xxxRedrawTitle au niveau utilisateur, et libérez le menu C. Cela conduit à une référence invalide à l'objet de menu C dans la fonction xxxEnableMenuItem par la suite.

Numen exclusif : la vulnérabilité 0day de Microsoft pourrait renverser le jeu Web3 sur les niveaux système et physique

Exploitation de la vulnérabilité ( Exp) mise en œuvre

Approche globale

Considérer deux directions d'utilisation possibles :

  1. Exécuter le shellcode : se référer à des vulnérabilités antérieures comme CVE-2017-0263, mais dans les nouvelles versions de Windows, cela pourrait rencontrer de nombreux obstacles.

  2. Utiliser les primitives de lecture et d'écriture pour modifier le token : ces dernières années, il existe encore des exp publics à consulter, il faut principalement résoudre le problème de la manière de contrôler la valeur de cbwndextra pour la première fois.

Nous adoptons la deuxième solution, qui consiste à diviser l'exp en deux étapes : contrôler la valeur cbwndextra et établir un langage de lecture et d'écriture stable.

Numen Exclusif : le 0day de Microsoft peut renverser le jeu Web3 au niveau système + physique

Première écriture de données

Utiliser le nom de l'objet de la classe de fenêtre WNDClass pour occuper et libérer la mémoire de l'objet menu. Trouvez l'emplacement des données écrites dans la fonction xxxRedrawWindow, en contrôlant les données de mémoire de l'objet précédent pour satisfaire les vérifications de drapeau dans la fonction.

Numen Exclusif : la vulnérabilité 0day de Microsoft peut renverser le jeu Web3 au niveau système + physique

disposition de mémoire stable

Concevoir la disposition de la mémoire de trois objets HWND de 0x250 octets consécutifs, libérer l'objet intermédiaire et le remplacer par un objet HWNDClass. Les objets HWND avant et après sont utilisés pour vérifier et réaliser des primitives de lecture et d'écriture par le biais de fonctions. Localiser précisément l'agencement des objets par la fuite d'adresse de poignée du noyau.

Numen Exclusif : La vulnérabilité 0day de Microsoft peut renverser le jeu Web3 sur le plan système et physique

Implémentation des primitives de lecture et d'écriture

Utilisez la fonction GetMenuBarInfo pour une lecture arbitraire, et la fonction SetClassLongPtr pour une écriture arbitraire. À part l'écriture de TOKEN, toutes les autres opérations d'écriture sont effectuées via l'objet de classe du premier objet de fenêtre.

Numen exclusif : la vulnérabilité 0day de Microsoft peut renverser la situation Web3 au niveau système + physique

Conclusion

  1. Microsoft utilise Rust pour refondre le code win32k, ce qui pourrait résoudre complètement ce type de vulnérabilités à l'avenir.

  2. L'exploitation de ce type de vulnérabilité repose principalement sur la fuite des adresses des poignées de tas de bureau, ce qui constitue toujours un risque de sécurité pour les systèmes anciens.

  3. La découverte de cette vulnérabilité pourrait être attribuée à une détection de couverture de code plus complète.

  4. La surveillance des dispositions de mémoire anormales et des lectures/écritures de données de fenêtre aide à détecter des vulnérabilités similaires.

Voir l'original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Récompense
  • 6
  • Partager
Commentaire
0/400
TestnetNomadvip
· Il y a 14h
Qu'est-ce que tu racontes sur Rust ?
Voir l'originalRépondre0
StealthDeployervip
· Il y a 14h
J'ai déjà commencé à utiliser Linux, c'est sage.
Voir l'originalRépondre0
CryptoMotivatorvip
· Il y a 14h
Encore une fois, Microsoft a vraiment une longue tradition de bugs.
Voir l'originalRépondre0
LiquidatedDreamsvip
· Il y a 14h
Utiliser Microsoft tout le temps, c'est un piège.
Voir l'originalRépondre0
MondayYoloFridayCryvip
· Il y a 14h
Je suis le plus mauvais investisseur détaillant de Web3

Commentaire sur l'article :

Rust peut-il sauver Windows ? Ça m'a fait rire.
Voir l'originalRépondre0
CrashHotlinevip
· Il y a 14h
Le vieux Windows XP a encore des problèmes.
Voir l'originalRépondre0
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)