
Портированная версия/переработанная версия загрузчика BOF из Cobalt Strike с открытым исходным кодом как есть
Это порт/реализация загрузчика BOF из Cobalt Strike с открытым исходным кодом как есть. По большей части всё сделано так же, как в оригинальном Beacon + Teamserver в Cobalt Strike.
Сюда включены и недостатки, которые исправлены в других загрузчиках COFF с открытым исходным кодом, например, в TrustedSec COFFLoader. Это сделано намеренно. Цель этого проекта — не создать хороший загрузчик COFF, а создать аналог с открытым исходным кодом конкретной реализации в Cobalt Strike, чтобы помочь с отладкой в пограничных случаях, когда BOF работают в других загрузчиках COFF, но не работают в Cobalt Strike.
./compile.bat
python bof_pack.py Msgbox.x64.o -o bof.blob
./bofloader.exe .\bof.blob
Загрузчик BOF из Cobalt Strike в прошлом доставлял мне множество проблем при разработке BOF, особенно в отношении секций (COMDAT'ы, я смотрю на вас), которые не обрабатываются загрузчиком BOF из Beacon. Это особенно раздражает, когда проблемы не воспроизводятся в загрузчиках COFF с открытым исходным кодом, которые выигрывают от лучшей отлаживаемости.
Хуже того, загрузчик BOF из Cobalt Strike даже не принимает полные COFF напрямую — на стороне Teamserver выполняется некоторая обработка, которая почти не документирована. Получаемый blob, отправляемый в Beacon, намного меньше исходного COFF, а формат не описан.
Этот проект стремится быть точной репликой 1:1 реализации Cobalt Strike, чтобы любые проблемы в одной из них были воспроизводимы в другой.