
Un BOF pour énumérer les processus système, leurs niveaux de protection, et plus encore.
Ce BOF peut être utilisé pour énumérer les processus système et identifier le niveau de protection de chacun. Des informations supplémentaires, comme la relation de service, l'utilisateur, la session et le chemin, sont également renvoyées. Ces informations combinées peuvent être utilisées pour identifier de bons candidats à explorer pour des détournements de DLL au niveau SYSTEM. Les processus idéaux seront :

Cet outil a été écrit sans utiliser les déclarations d'API BOF normales (par exemple un fichier bofdefs.h). Comme indiqué dans cet article de blog par Matt Ehrnschwender, il est possible d'utiliser objcopy pour patcher les symboles appropriés du format DLL$API dans le BOF après compilation. Le Makefile de cet outil appelle objcopy, en lui passant un fichier imports_enumprotectionsXX.txt contenant les remplacements de symboles appropriés, ce qui rend ensuite le BOF utilisable.
J'ai écrit un outil appelé BOFPatcher qui automatise ce processus. Cela permet aux utilisateurs d'écrire des BOFs comme du C normal sans avoir à se soucier de déclarations d'API fastidieuses :

Cet outil est disponible pour ceux qui achètent mon cours BOF Development and Tradecraft.
Merci à hasherezade pour ce snippet ainsi qu'à Gabriel Landau pour NoFault.
Merci également à toutes les personnes talentueuses dont le travail a été extrait par ChatGPT et utilisé par moi.