
Extraire LSASS via des primitives de lecture de mémoire physique dans des pilotes noyau vulnérables
Extrayez les credentials LSASS directement depuis la mémoire physique en abusant de pilotes signés vulnérables avec des primitives de lecture de mémoire physique via MmMapIoSpace, contournant les capacités de détection traditionnelles en mode utilisateur.
Cet outil a été développé en collaboration entre Julian Peña et Eric Esquivel.
Cette version de GhostKatz utilise des pilotes déjà divulgués publiquement comme vulnérables. Pour de meilleurs résultats, GhostKatz est conçu pour fonctionner avec des pilotes noyau qui exposent des vulnérabilités de primitive de lecture mémoire et ne sont pas bloqués lors du chargement / publiquement connus. Cette version publique n'inclut pas d'exploits pour des pilotes non divulgués précédemment. Au lieu de cela, le projet est conçu pour être modulaire et extensible, permettant aux utilisateurs de rechercher leurs propres pilotes et de les intégrer en étendant les fonctions de primitive de lecture mémoire dans utils.c. En interne, nous avons automatisé le processus de découverte et d'exploitation et maintenons plusieurs pilotes noyau signés avec des exploits écrits.
Si vous souhaitez contribuer, veuillez consulter la documentation de contribution.
Nous voulions commencer à apprendre comment exploiter des pilotes noyau et avons pensé que ce serait un projet sympa. Nous avons également été inspirés en voyant l'outil KernelKatz de Outflank et voulions l'utiliser, mais nous n'avons pas Outflank car nous sommes étudiants. Alors nous avons créé le nôtre.
Exécutez make pour compiler les BOFs.
Chargez le script Aggressor ghostkatz.cna dans votre gestionnaire de scripts.
Pour exécuter GhostKatz, utilisez la commande ghostkatz [logonpasswords/wdigest] -prv <provider id>.
Vous pouvez exécuter la commande d'aide dans votre console Beacon avec : help ghostkatz.
beacon> help ghostkatz
Synopsis: ghostkatz [logonpasswords/wdigest] -prv <provider id>
Description:
Dump credentials from LSASS by using signed kernel drivers to read physical memory.
Examples:
ghostkatz logonpasswords -prv 1
ghostkatz wdigest

Ce sont simplement les versions que nous avons testées manuellement. Les versions majeures comme 1607 ne devraient pas introduire de changements cassants entre les mises à jour mineures.
[!WARNING] Bien que GhostKatz ait été testé minutieusement, vous devez faire preuve de discrétion si vous le déployez en production. GhostKatz exploite des pilotes de noyau vulnérables. Des erreurs peuvent éventuellement entraîner un BSOD.
Pilotes qui peuvent être exploités avec GhostKatz
| Id | Fournisseur | Nom du pilote | SHA256 |
|---|---|---|---|
| 1 | Toshiba | TPwSav | 011df46e94218cbb2f0b8da13ab3cec397246fdc63436e58b1bf597550a647f6 |
| 2 | TechPowerUp | ThrottleStop | 16f83f056177c4ec24c7e99d01ca9d9d6713bd0497eeedb777a3ffefa99c97f0 |
Merci à ch3rn0byl et Cedric pour le temps que vous avez passé à répondre à nos questions naïves sur le noyau, les pilotes et Superfetch.