Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
pybof — Загрузчик Beacon Object Files на Python, работающий в памяти и выполняющий COFF-пейлоады, с поддержкой упакованных/сырых аргументов для сценариев red-team и пост-эксплуатации. | Kitploit
Инструменты/GitHubGitHub/rkbennett/pybof
Пост-эксплуатацияТестирование на ПроникновениеRed Teaming
GitHubrkbennett/pybof

pybof

Загрузчик Beacon Object Files на Python, работающий в памяти и выполняющий COFF-пейлоады, с поддержкой упакованных/сырых аргументов для сценариев red-team и пост-эксплуатации.

Репозиторий
80108 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

PyBOF

Запуск Beacon Object files с помощью python

загрузка и выполнение BOF в памяти

PyBOF позволяет Python3 загружать Beacon Object Files из байтов и выполнять целевую функцию BOF в интерпретаторе Python

Базовое использование

Запуск простого BOF без обязательных аргументов

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data)

Передача необработанной строки в качестве аргумента в BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=["foo"], raw=True)
# Raw cannot be used with function kwarg

Передача упакованных/форматированных аргументов в BOF

root@kitploit:~
data = open(r'c:\path\to\example.o', 'rb').read()
bof.run(data, args=[r"c:\users"], format="Z")

Практический пример выполнения

root@kitploit:~
import bof
from urllib.request import urlopen
data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
bof.run(data, args=[r"c:\users"], format="Z")

Args/Kwargs

Существует несколько аргументов, которые можно использовать с PyBOF, они описаны более подробно ниже

data

Обязательный первый позиционный аргумент, который должен быть байтовым объектом, содержащим исходное содержимое BOF

args

Необязательный ключевой аргумент, представляющий собой список аргументов для передачи в целевую функцию BOF

function

Необязательный ключевой аргумент, представляющий собой строковое имя целевой функции для выполнения из предоставленного BOF; по умолчанию используется go

format (ПРИМЕЧАНИЕ - Недавно они были обновлены)

Необязательный ключевой аргумент — это строка, которая сообщает упаковщику аргументов BOF типы аргументов при их упаковке в буфер. Это похоже на аргумент format из struct.pack. Допустимы только следующие варианты формата:
i для целого числа
s для короткого целого
z для строки
b для двоичных данных
Z для широкой строки

Для каждого аргумента в списке args должен быть указан хотя бы один тип формата. Этот ключевой аргумент нельзя использовать вместе с raw

raw

Необязательный ключевой аргумент — это логическое значение, которое передаёт args в виде строки, объединённой пробелами, без упаковки, вместо попытки упаковать форматированные аргументы для функции BOF. Этот ключевой аргумент нельзя использовать вместе с format

Сборка

Склонируйте этот репозиторий

root@kitploit:~
git clone https://github.com/rkbennett/pybof.git

Соберите C-расширение _bof

root@kitploit:~
cd pybof\src
python .\setup.py build

Скопируйте полученный файл pyd в каталог bof

root@kitploit:~
copy build\lib.win-xxx-cpython-3xx\_bof.cp3xx-win_xxxx.pyd ..\bof\

Перейдите в родительский каталог каталога bof, импортируйте и наслаждайтесь

root@kitploit:~
cd ..\
python
>>> import bof
>>> from urllib.request import urlopen
>>> data = urlopen("https://github.com/trustedsec/CS-Situational-Awareness-BOF/raw/master/SA/dir/dir.x64.o").read()
>>> bof.run(data, args=[r"c:\users"], format="Z")

Подводные камни

Если функция BOF не возвращает значение, я выдаю предупреждение, уведомляющее пользователя о том, что ничего не было возвращено. Я предполагаю, что это, скорее всего, не является ожидаемым результатом выполнения, но не хотел вызывать жёсткие ошибки. If you run a BOF function and receive the no output warning, keep in mind that your args formatting may need defined or may be defined incorrectly что может вызвать эту проблему (особенно при использовании string вместо wide)

Особая благодарность

  • natesubra - За ответы на мои случайные вопросы
  • trustedsec - За COFFLoader, который я обернул в свой модуль PyBof (лицензия включена в src/source)
Скачать инструмент