
Offenlegung von Kernel-Adressen von ETW-Konsumenten. Erfordert Administratorrechte.
Dieses Repository enthält einen PoC für ein Programm, das ETW nutzt, um Kernel-Speicheradressen zu leaken. Dies geschieht, indem ein Consumer erstellt wird (könnte für fast jeden Provider sein, da fast alle Kernel-Adressen leaken) und von diesem ein Stack-Trace angefordert wird. Sobald der Stack-Trace empfangen wird, wird er analysiert, um die Kernel-Speicheradressen zu extrahieren. Da Microsoft Administrator-zu-Kernel nicht als Sicherheitsgrenze betrachtet, wird sich diese Situation so schnell nicht ändern. Könnte in einigen Exploitation-Szenarien nützlich sein (z. B. wenn man die Kernel-Basisadresse leaken möchte, falls man weiß, dass ein ETW-Provider eine Kernel-Adresse leaket, die in einem bestimmten Offset von der Kernel-Basisadresse oder einer anderen interessanten Adresse liegt) oder einfach als Party-Trick.
Beachten Sie, dass Administratorrechte erforderlich sind, um mit dem Konsumieren von ETW-Providern zu beginnen. Wenn bereits ein Programm existiert, das ETW-Ereignisse konsumiert und auf das ein normaler Benutzer Zugriff auf die Ablaufverfolgung hat, kann der normale Benutzer ebenfalls Kernel-Adressen leaken. Es stellt kein Leck von tatsächlichen Kernel-Daten bereit, nur Kernel-Adressen (es sei denn, vielleicht in extremen Randfällen).

Ein Beispiel zur Verwendung finden Sie in EtwLeakKernel. Sie können auch jeden anderen ETW-Consumer verwenden und den Stack anfordern. In diesem Beispiel wird Microsoft-Windows-Kernel-Network verwendet.
git clone https://github.com/Idov31/EtwLeakKernel --recursive