
📟 un piccolo codice che esegue letture/scritture in modalità kernel utilizzando CVE-2023-38817.

Un codice che offre semplicemente la capacità di leggere/scrivere memoria in modalità kernel da modalità utente utilizzando un driver firmato vulnerabile. Utilizza semplicemente MmCopyVirtualMemory, che è non documentata ma una delle API più comuni, in modalità kernel, così puoi leggere/scrivere qualsiasi memoria in modalità utente senza doverti preoccupare della protezione della pagina di memoria. Oltre a ciò, ha una funzione per ottenere l'handle del processo dato un pid come strumento ausiliario. Poiché la creazione dell'handle avviene in modalità kernel, i controlli di accesso standard e le callback non scattano, credo.
Questo progetto è stato creato a scopo di studio e non è consigliabile usarlo al di fuori di una macchina virtuale.
Ho visto che questo specifico driver ha una vulnerabilità di escalation dei privilegi sul forum uc. Così ho iniziato a fare reverse engineering del driver e in effetti il driver non ha controlli di accesso sui suoi ioctl potenti.
Questo progetto sfrutta la vulnerabilità segnalata come CVE-2023-38817. https://www.loldrivers.io/drivers/afb8bb46-1d13-407d-9866-1daa7c82ca63/
Dato che ero troppo pigro per implementarlo bene devi solo includere tutto e compilare. Tutte le funzionalità sono incapsulate nella classe kur_t.
https://github.com/pseuxide/kur/blob/cd3da42b8a146af3ca83d5f95970b030bd55585f/kur/kur.h#L5-L14