
Ein BOF zur Aufzählung von Systemprozessen, deren Schutzstufen und mehr.
Dieses BOF kann verwendet werden, um Systemprozesse aufzulisten und die Schutzstufe jedes einzelnen zu identifizieren. Zusätzliche Informationen wie Dienstzuordnung, Benutzer, Sitzung und Pfad werden ebenfalls zurückgegeben. Diese Informationen können in Kombination genutzt werden, um gute Kandidaten für DLL-Hijacks auf SYSTEM-Ebene zu identifizieren. Ideale Prozesse sind:

Dieses Tool wurde ohne die Verwendung normaler BOF-API-Deklarationen (z. B. einer bofdefs.h-Datei) geschrieben. Wie in diesem Blogbeitrag von Matt Ehrnschwender beschrieben, ist es möglich, mithilfe von objcopy die korrekten Symbole im Format DLL$API nach der Kompilierung in das BOF zu patchen. Das Makefile dieses Tools ruft objcopy auf und übergibt eine imports_enumprotectionsXX.txt-Datei mit den korrekten Symbolersetzungen an das Tool, wodurch das BOF nutzbar wird.
Ich habe ein Tool namens BOFPatcher geschrieben, das diesen Prozess automatisiert. Dies ermöglicht es Benutzern, BOFs als normales C zu schreiben, ohne sich um umständliche API-Deklarationen kümmern zu müssen:

Dieses Tool ist für diejenigen verfügbar, die meinen Kurs BOF Development and Tradecraft erwerben.
Dank an hasherezade für dieses Snippet sowie an Gabriel Landau für NoFault.
Außerdem ein Dank an die vielen talentierten Personen, deren Arbeiten von ChatGPT gesammelt und von mir verwendet wurden.