nullmap
Ein sehr einfacher manueller Treiber-Mapper, basierend auf meinem älteren voidmap und dem CVE-2023-21768 POC von chompie und b33f. Da die zugrunde liegende IoRing-Post-Exploitation-Speicher-Lese-/Schreib-Primitive viele aufeinanderfolgende Lese- und Schreibvorgänge nicht besonders gut verarbeitet, habe ich beschlossen, CR4 zu überschreiben, um SMEP/SMAP zu deaktivieren und den im Usermode gemappten Treiber auszuführen. Getestet auf Windows 11 22H2 (22621.525).
Verwendung:
nullmap.exe <path_to_driver>
Mögliche Probleme:
- Der manuell gemappte Treiber befindet sich in einem von ExAllocatePool zugewiesenen Pool. Wenn du das für etwas Ernsthafteres verwenden möchtest, solltest du 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, hartkodieren musste. Obwohl er bei den meisten modernen CPUs derselbe sein sollte, solltest du dennoch überprüfen, dass der Wert korrekt ist.
- Ich habe den Offset zu NtGdiGetEmbUFI hartkodiert, da es keine einfache Möglichkeit gibt, ihn per Sigscan zu finden, was bedeutet, dass du diesen Offset für deinen spezifischen Windows-Build aktualisieren musst.
- Es wurde an einem Nachmittag geschrieben, es ist vielleicht nicht die sauberste Codebasis.
Video:
