
📟 un petit code qui effectue des lectures/écritures en mode noyau en utilisant CVE-2023-38817.

Ce code offre simplement la possibilité de lire / écrire la mémoire en mode noyau depuis le mode utilisateur à l'aide d'un pilote signé vulnérable. Il utilise simplement MmCopyVirtualMemory, qui est non documenté mais l'une des API les plus courantes, en mode noyau, afin que vous puissiez lire / écrire n'importe quelle mémoire en mode utilisateur sans avoir à vous soucier de la protection de la page mémoire. En plus de cela, il dispose d'une fonction permettant d'obtenir un handle de processus pour un pid donné. Comme la création du handle est effectuée en mode noyau, les contrôles d'accès standard et les callbacks ne s'appliquent pas, je crois.
Ce projet a été créé à des fins d'étude, et il n'est pas recommandé de l'utiliser en dehors d'une machine virtuelle.
J'ai vu que ce pilote spécifique présente une vulnérabilité d'élévation de privilèges sur le forum uc. J'ai donc commencé à faire de la rétro-ingénierie sur le pilote moi-même et effectivement, le pilote n'a pas de contrôle d'accès sur ses ioctls puissants.
Ce projet exploite la vulnérabilité signalée sous le nom de CVE-2023-38817. https://www.loldrivers.io/drivers/afb8bb46-1d13-407d-9866-1daa7c82ca63/
Comme j'ai été trop paresseux pour implémenter correctement, vous devez simplement tout inclure et compiler. toutes les fonctionnalités sont encapsulées dans la classe kur_t.
https://github.com/pseuxide/kur/blob/cd3da42b8a146af3ca83d5f95970b030bd55585f/kur/kur.h#L5-L14