
Fuites d'adresses du noyau à partir des consommateurs ETW. Nécessite des privilèges d'administrateur.
Ce dépôt contient une preuve de concept (PoC) pour un programme qui utilise ETW afin de divulguer des adresses mémoire du noyau. Il le fait en créant un consommateur (qui peut être rattaché à presque n'importe quel fournisseur, car la quasi-totalité d'entre eux divulguent des adresses du noyau) et en demandant une trace de la pile (stack trace) à celui-ci. Une fois la trace de pile reçue, elle est analysée pour extraire les adresses mémoire du noyau. Étant donné que Microsoft ne considère pas l'administrateur par rapport au noyau comme une frontière de sécurité, cette situation ne changera pas de sitôt. Cela peut être utile dans certains scénarios d'exploitation (par exemple, pour divulguer l'adresse de base du noyau si vous savez qu'un fournisseur ETW divulgue une adresse du noyau située à un certain décalage de l'adresse de base du noyau, ou toute autre adresse intéressante) ou simplement comme un tour de magie.
Gardez à l'esprit que des privilèges administratifs sont nécessaires pour commencer à consommer des événements des fournisseurs ETW. S'il existe déjà un programme qui consomme des événements ETW et auquel un utilisateur normal a accès à la trace, cet utilisateur normal pourra également divulguer des adresses du noyau. Cela ne fournit aucune fuite de données réelles du noyau, seulement des adresses du noyau (sauf peut-être dans des cas extrêmes).

Vous pouvez voir un exemple d'utilisation dans EtwLeakKernel. Vous pouvez également utiliser tout autre consommateur ETW et demander la pile ; dans cet exemple, le fournisseur utilisé est Microsoft-Windows-Kernel-Network.
git clone https://github.com/Idov31/EtwLeakKernel --recursive