Les vulnérabilités du système Windows pourraient compromettre la sécurité de l'écosystème Web3. Analyse des voies d'exploitation et recommandations de prévention.
Analyse des vulnérabilités du système Windows de Microsoft : pouvant mettre en danger la sécurité de l'écosystème Web3
Le mois dernier, la mise à jour de sécurité de Microsoft contenait une vulnérabilité d'escalade de privilèges win32k exploitée, qui semble n'exister que dans les versions antérieures du système Windows. Cet article analysera comment les attaquants pourraient continuer à exploiter cette vulnérabilité dans le contexte de l'amélioration continue des mesures de sécurité. Le processus d'analyse a été réalisé dans un environnement Windows Server 2016.
Ce type de vulnérabilité 0day peut être exploité de manière malveillante après sa découverte sans être détecté, ayant un impact dévastateur. Grâce à cette vulnérabilité, les hackers peuvent obtenir un contrôle total sur le système Windows. Les conséquences de ce contrôle incluent le vol d'informations personnelles, l'effondrement du système, la perte de données, des pertes financières, l'implantation de logiciels malveillants, etc. Un impact limité peut entraîner le vol de clés privées et le transfert d'actifs numériques, tandis qu'un impact plus large pourrait menacer l'ensemble de l'écosystème Web3 fonctionnant sur une infrastructure Web2.
Analyse de correctif
L'analyse du patch révèle que le problème semble être que le compteur de références d'un objet a été traité une fois de trop. D'après les commentaires du code source antérieur, il s'avère que le code précédent ne verrouillait que l'objet de la fenêtre, sans verrouiller l'objet menu à l'intérieur de la fenêtre, ce qui pourrait entraîner une référence incorrecte à l'objet menu.
Vérification des vulnérabilités
Nous avons construit une structure de menu imbriqué à plusieurs niveaux et défini certaines conditions spécifiques pour déclencher des vulnérabilités :
L'ID du menu le plus interne doit être de type menu système
Le menu le plus externe doit également être un menu système, mais il faut supprimer des éléments de menu système spécifiques.
Supprimer la référence parent du menu de niveau intermédiaire
Ajouter des menus intermédiaires supplémentaires pour garantir le succès de la libération.
Supprimez la référence de menu clé lorsque la fonction renvoie le niveau utilisateur, afin qu'elle soit correctement libérée. Ainsi, des problèmes surviennent lors de la référence de cet objet de menu dans les fonctions du noyau suivantes.
Exploitation des vulnérabilités
Il existe principalement deux directions pour utiliser cette idée :
Exécution de code shellcode - Cette méthode peut présenter de nombreuses restrictions dans les versions récentes de Windows.
Modifier l'adresse du token à l'aide des primitives de lecture et d'écriture - Cette méthode offre une meilleure universalité.
Nous avons choisi la deuxième option, en divisant l'ensemble du processus d'utilisation en deux étapes clés :
Contrôler la valeur de cbwndextra en exploitant la vulnérabilité UAF.
Obtenir des primitives de lecture/écriture stables
Pour réaliser la première écriture de données, nous utilisons l'objet de nom de classe fenêtre pour occuper la mémoire de l'objet de menu libéré et trouvons la structure d'adresse pouvant écrire des données arbitraires. Nous avons finalement choisi d'écrire des données en fonction des indicateurs dans une fonction spécifique.
Pour obtenir une disposition de mémoire stable, nous avons conçu trois objets de fenêtre de taille identique en continu, libérant l'objet du milieu et occupant avec des objets de classe fenêtre. Nous déterminons avec précision si l'agencement des objets est conforme aux attentes grâce à l'adresse du gestionnaire de noyau qui fuit dans la mémoire du tas.
En ce qui concerne la lecture et l'écriture des primitives, nous utilisons GetMenuBarInfo() pour réaliser une lecture arbitraire, et SetClassLongPtr() pour réaliser une écriture arbitraire. À part l'écriture des tokens, toutes les autres opérations d'écriture utilisent l'objet de classe de la première fenêtre.
Résumé
La vulnérabilité win32k pourrait être éliminée dans la version bêta de Windows 11.
Ce type d'exploitation de 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 mises en page de mémoire anormales et des opérations de lecture et d'écriture de données aide à identifier ce type de 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.
6 J'aime
Récompense
6
5
Reposter
Partager
Commentaire
0/400
RugPullSurvivor
· Il y a 5h
Web2 le jour, web3 la nuit, vivre sur la Blockchain, les petits pigeons Crypto deviennent des vétérans, se concentrant sur la spéculation dans l'univers de la cryptomonnaie, le Metaverse Defi NFT nomade numérique~
Attendre que les Hackers prennent les gens pour des idiots.
Voir l'originalRépondre0
metaverse_hermit
· Il y a 5h
Encore des joueurs solo, hein ?
Voir l'originalRépondre0
SillyWhale
· Il y a 5h
Qui osera toucher à mon portefeuille, essaie et vois !
Voir l'originalRépondre0
DogeBachelor
· Il y a 6h
Élever des pigeons en première ligne du web3
Voir l'originalRépondre0
TxFailed
· Il y a 6h
moment classique de Windows... j'ai appris cela à mes dépens pour être honnête
Les vulnérabilités du système Windows pourraient compromettre la sécurité de l'écosystème Web3. Analyse des voies d'exploitation et recommandations de prévention.
Analyse des vulnérabilités du système Windows de Microsoft : pouvant mettre en danger la sécurité de l'écosystème Web3
Le mois dernier, la mise à jour de sécurité de Microsoft contenait une vulnérabilité d'escalade de privilèges win32k exploitée, qui semble n'exister que dans les versions antérieures du système Windows. Cet article analysera comment les attaquants pourraient continuer à exploiter cette vulnérabilité dans le contexte de l'amélioration continue des mesures de sécurité. Le processus d'analyse a été réalisé dans un environnement Windows Server 2016.
Ce type de vulnérabilité 0day peut être exploité de manière malveillante après sa découverte sans être détecté, ayant un impact dévastateur. Grâce à cette vulnérabilité, les hackers peuvent obtenir un contrôle total sur le système Windows. Les conséquences de ce contrôle incluent le vol d'informations personnelles, l'effondrement du système, la perte de données, des pertes financières, l'implantation de logiciels malveillants, etc. Un impact limité peut entraîner le vol de clés privées et le transfert d'actifs numériques, tandis qu'un impact plus large pourrait menacer l'ensemble de l'écosystème Web3 fonctionnant sur une infrastructure Web2.
Analyse de correctif
L'analyse du patch révèle que le problème semble être que le compteur de références d'un objet a été traité une fois de trop. D'après les commentaires du code source antérieur, il s'avère que le code précédent ne verrouillait que l'objet de la fenêtre, sans verrouiller l'objet menu à l'intérieur de la fenêtre, ce qui pourrait entraîner une référence incorrecte à l'objet menu.
Vérification des vulnérabilités
Nous avons construit une structure de menu imbriqué à plusieurs niveaux et défini certaines conditions spécifiques pour déclencher des vulnérabilités :
Supprimez la référence de menu clé lorsque la fonction renvoie le niveau utilisateur, afin qu'elle soit correctement libérée. Ainsi, des problèmes surviennent lors de la référence de cet objet de menu dans les fonctions du noyau suivantes.
Exploitation des vulnérabilités
Il existe principalement deux directions pour utiliser cette idée :
Nous avons choisi la deuxième option, en divisant l'ensemble du processus d'utilisation en deux étapes clés :
Pour réaliser la première écriture de données, nous utilisons l'objet de nom de classe fenêtre pour occuper la mémoire de l'objet de menu libéré et trouvons la structure d'adresse pouvant écrire des données arbitraires. Nous avons finalement choisi d'écrire des données en fonction des indicateurs dans une fonction spécifique.
Pour obtenir une disposition de mémoire stable, nous avons conçu trois objets de fenêtre de taille identique en continu, libérant l'objet du milieu et occupant avec des objets de classe fenêtre. Nous déterminons avec précision si l'agencement des objets est conforme aux attentes grâce à l'adresse du gestionnaire de noyau qui fuit dans la mémoire du tas.
En ce qui concerne la lecture et l'écriture des primitives, nous utilisons GetMenuBarInfo() pour réaliser une lecture arbitraire, et SetClassLongPtr() pour réaliser une écriture arbitraire. À part l'écriture des tokens, toutes les autres opérations d'écriture utilisent l'objet de classe de la première fenêtre.
Résumé
Attendre que les Hackers prennent les gens pour des idiots.