voidmap
Ein sehr einfacher manueller Treiber-Mapper, der CVE-2021-40449 ausnutzt, um eine beliebige Funktion an einer bestimmten Adresse mit einem einzigen übergebenen Argument auszuführen. Er basiert auf einem Exploit-PoC CallbackHell. Getestet auf Windows 10 Pro For Workstations 1809 17763.379 (64-Bit), aber realistisch gesehen sollte alles aus dieser Zeit unterstützt werden.
Er führt Folgendes aus:
- Deaktiviert SMEP (und möglicherweise SMAP), indem der cr4-Registerwert neu geschrieben wird
- Springt in Usermode-Code, der den gewünschten Treiber manuell mappt
- Aktiviert SMEP (und möglicherweise SMAP) erneut
Es gibt zwei Hauptprobleme bei diesem Ansatz:
- Der manuell gemappte Treiber befindet sich in einem Pool, der von ExAllocatePool zugewiesen wurde. Wenn Sie dies für etwas Ernsthafteres nutzen möchten, sollten Sie einen besseren Weg der Speicherzuweisung in Betracht ziehen, damit er nicht so leicht gedumpt werden kann.
- Es gibt keine einfache Möglichkeit, den ursprünglichen cr4-Wert auszulesen, was bedeutet, dass ich den Wert, der auf meinem System vorhanden war, fest codieren musste. Obwohl er für die meisten modernen CPUs gleich sein sollte, sollten Sie dennoch überprüfen, ob der Wert korrekt ist.
Video:
