
📟 un pequeño código que realiza lectura/escritura en modo kernel usando CVE-2023-38817.

Un código que simplemente ofrece la capacidad de leer/escribir memoria en modo kernel desde el modo usuario utilizando un driver firmado vulnerable. Simplemente utiliza MmCopyVirtualMemory, una API no documentada aunque una de las más comunes, en modo kernel para que puedas leer/escribir cualquier memoria de modo usuario sin tener que preocuparte por la protección que tenga la página de memoria. Además, incluye una función para obtener el manejador de proceso de un PID dado como complemento. Dado que la creación del manejador se realiza en modo kernel, creo que las comprobaciones de acceso estándar y las devoluciones de llamada no se activarán.
Este proyecto fue creado con fines de estudio, y no se recomienda usarlo fuera de una máquina virtual.
He visto que este driver específico tiene una vulnerabilidad de escalada de privilegios en el foro uc. Así que empecé a aplicar ingeniería inversa al driver por mi cuenta y, efectivamente, el driver no tiene control de acceso sobre sus potentes ioctls.
Este proyecto aprovecha la vulnerabilidad reportada como CVE-2023-38817. https://www.loldrivers.io/drivers/afb8bb46-1d13-407d-9866-1daa7c82ca63/
Como me dio demasiada pereza implementarlo correctamente, solo tienes que incluirlo todo y compilar. Todas las funcionalidades están encapsuladas en la clase kur_t.
https://github.com/pseuxide/kur/blob/cd3da42b8a146af3ca83d5f95970b030bd55585f/kur/kur.h#L5-L14