Analyse des vulnérabilités 0day de niveau système de Microsoft Windows : contrôle total du système
Récemment, un correctif de sécurité publié par Microsoft a réparé une vulnérabilité d'élévation de privilèges Win32k qui était exploitée de manière malveillante. Cette vulnérabilité n'existe que dans les versions antérieures des systèmes Windows et ne peut pas être déclenchée sur Windows 11. Cet article analysera comment les attaquants pourraient continuer à exploiter cette vulnérabilité dans le contexte actuel d'une sécurité renforcée.
Contexte de la vulnérabilité
C'est une vulnérabilité 0day au niveau du système Windows, permettant aux hackers d'obtenir un contrôle total sur Windows. Les conséquences après le contrôle incluent le vol d'informations personnelles, la perte de données due à des pannes système, des pertes financières, l'insertion de logiciels malveillants, etc. Cela peut aller du vol de clés privées et du transfert d'actifs numériques à des impacts sur tout l'écosystème Web3 fonctionnant sur une infrastructure basée sur Web2.
Analyse de patch
Une analyse du patch révèle qu'il s'agit d'un problème de comptage de références d'objets traité de manière excessive. D'après les commentaires dans le code source antérieur, le code précédent ne verrouillait que l'objet fenêtre, sans verrouiller l'objet menu dans l'objet fenêtre, ce qui pourrait entraîner une référence incorrecte à l'objet menu.
Principe de vulnérabilité
Une analyse plus approfondie révèle que le menu transmis à xxxEnableMenuItem() est généralement verrouillé dans la fonction parente. La fonction MenuItemState dans xxxEnableMenuItem peut retourner deux possibilités : le menu principal de la fenêtre ou un sous-menu dans le menu.
Preuve de concept ( PoC ) réalisation
PoC a construit une structure de menu spéciale à quatre niveaux et a défini certaines conditions spécifiques pour passer les vérifications dans la fonction xxxEnableMenuItem. L'étape clé consiste à supprimer la relation de référence entre le menu C et le menu B lors du retour de l'utilisateur dans xxxRedrawTitle et à libérer le menu C. Ainsi, lorsque le menu C est référencé dans la fonction xxxEnableMenuItem par la suite, cet objet est déjà invalide.
Exploitation de la vulnérabilité ( Exp) réalisation
Il existe principalement deux approches : exécuter du code shell ou utiliser des primitives de lecture et d'écriture pour modifier l'adresse du token. En tenant compte de la compatibilité, la seconde a été choisie. L'ensemble se divise en deux étapes : utiliser la vulnérabilité UAF pour contrôler la valeur de cbwndextra, puis établir des primitives de lecture et d'écriture stables.
Les points clés incluent :
Objet de menu libéré par l'objet de nom de classe de fenêtre
Trouvez l'emplacement des données pouvant être écrites dans la fonction xxxRedrawWindow.
Construire une disposition mémoire stable, y compris trois objets HWND consécutifs.
Utiliser GetMenuBarInfo() et SetClassLongPtr() pour réaliser la lecture et l'écriture des primitives.
Résumé
Microsoft est en train de reconstruire le code lié à Win32k avec Rust, à l'avenir, ce type de vulnérabilité pourrait être éliminé.
Le processus d'exploitation de la vulnérabilité n'est pas très difficile, il repose principalement sur la fuite de l'adresse de poignée de pile du bureau.
La découverte de vulnérabilités peut dépendre d'une couverture de code plus complète.
La détection des dispositions de mémoire anormales et des lectures/écritures de données de fenêtres aide à découvrir des vulnérabilités similaires.
Bien que ce type de vulnérabilité soit progressivement corrigé dans les nouveaux systèmes, il reste une menace pour les anciens systèmes. Il est toujours important d'améliorer les mécanismes de détection et de protection contre les vulnérabilités.
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.
8 J'aime
Récompense
8
4
Partager
Commentaire
0/400
UncleLiquidation
· Il y a 16h
Le vieux système, même les chiens ne l'utilisent plus.
Voir l'originalRépondre0
CommunityLurker
· Il y a 16h
Une nouvelle opportunité de gagner de l'argent est arrivée.
Voir l'originalRépondre0
ser_ngmi
· Il y a 17h
C'est juste que la déficience cognitive de Microsoft a permis de jouer avec ce genre de vulnérabilité.
Voir l'originalRépondre0
AirdropHunter9000
· Il y a 17h
Le vieux système n'est toujours pas mis à jour ? Si tu ne fais rien, tu ne mourras pas.
Analyse des vulnérabilités 0day au niveau système Windows : les attaquants peuvent prendre le contrôle total des anciennes versions du système.
Analyse des vulnérabilités 0day de niveau système de Microsoft Windows : contrôle total du système
Récemment, un correctif de sécurité publié par Microsoft a réparé une vulnérabilité d'élévation de privilèges Win32k qui était exploitée de manière malveillante. Cette vulnérabilité n'existe que dans les versions antérieures des systèmes Windows et ne peut pas être déclenchée sur Windows 11. Cet article analysera comment les attaquants pourraient continuer à exploiter cette vulnérabilité dans le contexte actuel d'une sécurité renforcée.
Contexte de la vulnérabilité
C'est une vulnérabilité 0day au niveau du système Windows, permettant aux hackers d'obtenir un contrôle total sur Windows. Les conséquences après le contrôle incluent le vol d'informations personnelles, la perte de données due à des pannes système, des pertes financières, l'insertion de logiciels malveillants, etc. Cela peut aller du vol de clés privées et du transfert d'actifs numériques à des impacts sur tout l'écosystème Web3 fonctionnant sur une infrastructure basée sur Web2.
Analyse de patch
Une analyse du patch révèle qu'il s'agit d'un problème de comptage de références d'objets traité de manière excessive. D'après les commentaires dans le code source antérieur, le code précédent ne verrouillait que l'objet fenêtre, sans verrouiller l'objet menu dans l'objet fenêtre, ce qui pourrait entraîner une référence incorrecte à l'objet menu.
Principe de vulnérabilité
Une analyse plus approfondie révèle que le menu transmis à xxxEnableMenuItem() est généralement verrouillé dans la fonction parente. La fonction MenuItemState dans xxxEnableMenuItem peut retourner deux possibilités : le menu principal de la fenêtre ou un sous-menu dans le menu.
Preuve de concept ( PoC ) réalisation
PoC a construit une structure de menu spéciale à quatre niveaux et a défini certaines conditions spécifiques pour passer les vérifications dans la fonction xxxEnableMenuItem. L'étape clé consiste à supprimer la relation de référence entre le menu C et le menu B lors du retour de l'utilisateur dans xxxRedrawTitle et à libérer le menu C. Ainsi, lorsque le menu C est référencé dans la fonction xxxEnableMenuItem par la suite, cet objet est déjà invalide.
Exploitation de la vulnérabilité ( Exp) réalisation
Il existe principalement deux approches : exécuter du code shell ou utiliser des primitives de lecture et d'écriture pour modifier l'adresse du token. En tenant compte de la compatibilité, la seconde a été choisie. L'ensemble se divise en deux étapes : utiliser la vulnérabilité UAF pour contrôler la valeur de cbwndextra, puis établir des primitives de lecture et d'écriture stables.
Les points clés incluent :
Résumé
Bien que ce type de vulnérabilité soit progressivement corrigé dans les nouveaux systèmes, il reste une menace pour les anciens systèmes. Il est toujours important d'améliorer les mécanismes de détection et de protection contre les vulnérabilités.