
Windows-Kernel-Treiber-Dienstprogramm, das anfällige signierte Treiber missbraucht (BYOVD), um DSE zu umgehen, unsignierte Treiber zu laden, geschützte Prozesse zu übernehmen und Prozessspeicher zu dumpen.
Der Zweck dieses Tools ist es, eine einfache Möglichkeit zu bieten, den Windows-Kernel und seine Komponenten zu untersuchen, ohne umfangreiche Einrichtung oder einen lokalen Debugger zu benötigen. Es bietet:
Beispiel:
Ausführung unter Windows 11 24H2*
Ausführung unter Windows 10 20H2*
Kompiliert und ausgeführt unter Windows 8.1*
Ausführung unter Windows 7 SP1 vollständig gepatcht (vorkompilierte Version)*
Ausführung unter Windows 10 19H2 (vorkompilierte Version, SecureBoot aktiviert)*
Aufgrund der ungewöhnlichen Ladeart, die nicht den Standard-Kernel-Loader verwendet, sondern bereits geladene Module mit Shellcode überschreibt, gibt es einige Einschränkungen:
Das bedeutet, dass Sie keine Parameter verwenden können, die in Ihrem DriverEntry angegeben sind, da diese nicht gültig sein werden. Das bedeutet auch, dass Sie nicht irgendeinen Treiber laden können, sondern nur speziell dafür entwickelte, oder Sie müssen die Shellcode-Routinen anpassen.
Es gibt keinen SEH-Code in x64. Stattdessen gibt es eine Tabelle von try/except/finally-Bereichen, die durch einen Zeiger im PE-Header beschrieben werden. Wenn eine Ausnahme auftritt, kann dies zu einem BSOD führen.
Gemappter Code kann sich nicht selbst entladen; Sie können jedoch alle von Ihrem gemappten Code zugewiesenen Ressourcen freigeben. DRIVER_OBJECT->DriverUnload sollte auf NULL gesetzt werden.
Wenn Ihr Projekt eine andere Modulabhängigkeit benötigt, müssen Sie diesen Teil des Loaders neu schreiben.
Aufgrund der ungewöhnlichen Ladeart wird der gemappte Treiber nicht in PsLoadedModulesList enthalten sein. Das bedeutet, dass jeder von solchem Code registrierte Callback seinen Handler im Speicher außerhalb dieser Liste haben wird. PatchGuard kann dies erkennen und das System zum Absturz bringen.
Im Allgemeinen, wenn Sie wissen möchten, was Sie im Kernel nicht tun sollten, schauen Sie sich https://github.com/hfiref0x/KDU/tree/master/Source/Examples/BadRkDemo an, das einige Beispiele für verbotene Dinge enthält.
Dieses Tool ändert nicht (und wird in Zukunft nicht ändern) die internen Windows-Strukturen MmUnloadedDrivers und/oder PiDDBCacheTable. Das liegt daran:
Sie verwenden es auf eigenes Risiko. Einige träge AV-Programme könnten dieses Tool als Hacktool/Malware kennzeichnen.
Vollständige Liste inklusive aller verfügbaren Metadaten hier:
Weitere Provider könnten in Zukunft hinzugefügt werden.
Es verwendet bekannte verwundbare (oder von Natur aus als Wormhole konzipierte) Treiber aus legitimer Software, um mit Lese-/Schreibprimitiven auf beliebigen Kernel-Speicher zuzugreifen.
Je nach Befehl arbeitet KDU entweder als TDL/DSEFix oder modifiziert Kernel-Modus-Prozessobjekte (EPROCESS).
Im -map-Modus verwendet KDU für die meisten verfügbaren Provider standardmäßig einen von Drittanbietern signierten Treiber von SysInternals Process Explorer und kapert ihn, indem ein kleiner Loader-Shellcode in dessen IRP_MJ_DEVICE_CONTROL-Routine platziert wird.