
Open-Source-Port/Nachimplementierung des Cobalt Strike BOF Loaders wie besehen
Dies ist ein Open-Source-Port/Neuinplementierung des Cobalt Strike BOF Loaders wie er ist. Größtenteils wird alles so gemacht wie im Original-Beacon + Teamserver von Cobalt Strike.
Dazu gehören auch Unzulänglichkeiten, die in anderen Open-Source-COFF-Ladern wie dem TrustedSec COFFLoader behoben sind. Dies ist beabsichtigt. Ziel dieses Projekts ist es nicht, einen guten COFF-Lader zu erstellen, sondern eine Open-Source-Entsprechung der spezifischen Implementierung in Cobalt Strike zu schaffen, um bei der Fehlersuche in Randfällen zu helfen, in denen BOFs in anderen COFF-Ladern funktionieren, aber nicht in Cobalt Strike.
./compile.bat
python bof_pack.py Msgbox.x64.o -o bof.blob
./bofloader.exe .\bof.blob
Der Cobalt Strike BOF Loader hat mir in der Vergangenheit bei der BOF-Entwicklung zahlreiche Probleme bereitet, insbesondere in Bezug auf Abschnitte (COMDATs, ich meine dich), die vom Beacon BOF Loader nicht verarbeitet werden. Dies ist besonders frustrierend, wenn die Probleme in Open-Source-COFF-Ladern nicht reproduzierbar sind, die von einer besseren Debugging-Fähigkeit profitieren.
Um die Sache noch schlimmer zu machen: Der Cobalt Strike BOF Loader nimmt nicht einmal vollständige COFFs direkt entgegen, es gibt auf der Teamserver-Seite eine gewisse Verarbeitung, die kaum dokumentiert ist. Der resultierende Blob, der an Beacon gesendet wird, ist viel kleiner als das ursprüngliche COFF, und das Format ist nicht dokumentiert.
Dieses Projekt zielt darauf ab, eine echte 1:1-Kopie der Cobalt-Strike-Implementierung zu sein, bei der Probleme in der einen auch in der anderen reproduzierbar sein sollten.