
Un BOF per enumerare i processi di sistema, i loro livelli di protezione e altro ancora.
Questo BOF può essere utilizzato per enumerare i processi di sistema e identificare il livello di protezione di ciascuno di essi. Vengono restituite anche informazioni aggiuntive, come la relazione con i servizi, l'utente, la sessione e il percorso. Queste informazioni, combinate, possono essere utilizzate per identificare buoni candidati da esplorare per hijack di DLL a livello SYSTEM. I processi ideali saranno:

Questo strumento è stato scritto senza l'uso delle normali dichiarazioni API dei BOF (ad es. un file bofdefs.h). Come illustrato in questo post del blog di Matt Ehrnschwender, è possibile utilizzare objcopy per applicare i simboli corretti nel formato DLL$API al BOF dopo la compilazione. Il Makefile di questo strumento richiama objcopy, passando un file imports_enumprotectionsXX.txt contenente le sostituzioni di simboli appropriate allo strumento, che rende poi il BOF utilizzabile.
Ho scritto uno strumento chiamato BOFPatcher che automatizza questo processo. Ciò consente agli utenti di scrivere BOF come normale C senza preoccuparsi di noiose dichiarazioni API:

Questo strumento è disponibile per coloro che acquistano il mio corso BOF Development and Tradecraft.
Grazie a hasherezade per questo snippet e a Gabriel Landau per NoFault.
Un ringraziamento anche ai molti individui di talento il cui lavoro è stato raccolto da ChatGPT e da me utilizzato.