
Un BOF para enumerar procesos del sistema, sus niveles de protección y más.
Este BOF se puede utilizar para enumerar los procesos del sistema e identificar el nivel de protección de cada uno. También se devuelve información adicional, como la relación con servicios, usuario, sesión y ruta. Esta información, en combinación, puede utilizarse para identificar buenos candidatos para explorar secuestros de DLL a nivel de SYSTEM. Los procesos ideales serán:

Esta herramienta fue escrita sin el uso de declaraciones normales de API de BOF (por ejemplo, un archivo bofdefs.h). Como se describe en esta entrada de blog de Matt Ehrnschwender, es posible usar objcopy para parchear los símbolos adecuados con el formato DLL$API dentro del BOF después de la compilación. El Makefile de esta herramienta llama a objcopy, pasando un archivo imports_enumprotectionsXX.txt que contiene las sustituciones de símbolos adecuadas a la herramienta, lo que hace que el BOF sea utilizable.
He escrito una herramienta llamada BOFPatcher que automatiza este proceso. Esto permite a los usuarios escribir BOFs como C normal sin preocuparse por engorrosas declaraciones de API:

Esta herramienta está disponible para quienes compren mi curso BOF Development and Tradecraft.
Gracias a hasherezade por este fragmento, así como a Gabriel Landau por NoFault.
También un agradecimiento a las muchas personas talentosas cuyo trabajo fue extraído por ChatGPT y utilizado por mí.