TGViewer
Codeby Codeby @codeby_sec · 37.1K subscribers
Post #9855 3.62K
Boofuzz: Инструмент фаззинга сетевых протоколов

Boofuzz — фреймворк для фаззинга (fuzzing) сетевых протоколов, являющийся форком и преемником известного инструмента Sulley. Разработан для генерации и передачи некорректных или неожиданных данных целевым приложениям с целью выявления уязвимостей, ошибок обработки ввода и отказов в обслуживании. Boofuzz сочетает простоту использования с расширяемостью, что позволяет применять его для тестирования самых разных протоколов и интерфейсов.


Boofuzz наследует основные концепции Sulley, добавляя исправление ошибок, актуальную документацию и поддержку современных сред. Как и предшественник, инструмент охватывает все критические элементы процесса фаззинга:
▶️Быстрое создание тестовых наборов на основе шаблонов
▶️Обнаружение отказов и аномалий в целевой системе
▶️Автоматический перезапуск цели после сбоя
▶️Запись всех тестовых данных и результатов

👉Отличия от Sulley
- Актуальная онлайн-документация и поддержка
- Поддержка произвольных каналов связи (последовательный порт, Ethernet, UDP-широковещание)
- Улучшенная регистрация данных с экспортом в CSV
- Расширяемая система инструментирования
- Упрощенная установка через pip
- Исправление многочисленных ошибок оригинального фреймворка

⬇️Установка
pip install boofuzz

Проверка
python -c "import boofuzz; print(boofuzz.__version__)"


⏺️Boofuzz используется как Python-библиотека для создания скриптов фаззинга. Простейший пример для тестирования TCP-сервера:
from boofuzz import *

def main():
session = Session(
target=Target(connection=TCPSocketConnection("127.0.0.1", 9999))
)

s_initialize("Request")
s_string("FUZZ", name="fuzzable_field")

session.connect(s_get("Request"))
session.fuzz()

if __name__ == "__main__":
main()

Запуск скрипта:
python fuzzer_script.py


⏺️Фаззинг HTTP-сервера
from boofuzz import *

def main():
session = Session(
target=Target(connection=TCPSocketConnection("127.0.0.1", 80)),
sleep_time=0.1,
)

s_initialize("HTTP GET")
s_static("GET ")
s_string("/", name="URI")
s_static(" HTTP/1.1\r\n")
s_static("Host: ")
s_string("localhost", name="Host")
s_static("\r\n")
s_static("User-Agent: Mozilla/5.0\r\n")
s_static("Accept: */*\r\n")
s_static("\r\n")

session.connect(s_get("HTTP GET"))
session.fuzz()

if name == "__main__":
main()


⏺️Фаззинг с мониторингом отказов
from boofuzz import *
import subprocess

def restart_target():
"""Функция перезапуска цели"""
subprocess.run(["systemctl", "restart", "target-service"])

def main():
#настройка мониторинга процесса
monitor = ProcessMonitor("192.168.1.100", 26002)

session = Session(
target=Target(
connection=TCPSocketConnection("192.168.1.100", 9999),
monitors=[monitor]
),
restart_callbacks=[restart_target],
crash_threshold=3,
)

#описание протокола...
session.fuzz()

if name == "__main__":
main()


⏺️Экспорт результатов
session = Session(
target=Target(connection=connection),
output_path="fuzz_results", # директория для результатов
csv_logger=True, # включение CSV-логирования
log_level=logging.DEBUG, # уровень детализации лога
)


После завершения фаззинга boofuzz создает директорию с результатами, содержащую:
▶️Тестовые кейсы (все отправленные запросы с метками)
▶️Лог сбоев (информация о крашах и аномалиях)
▶️CSV-файл (сводная таблица результатов)
Пример структуры результатов:
├── crashes.log
├── fuzz.db
├── fuzz_results.csv
└── test-cases/
├── test-case-000001
├── test-case-000002
└── ...


#Boofuzz #tool #pentest #Sulley

🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджером
  • ❤ 11
  • 👍 6
  • 🔥 5
More from @codeby_sec
  1. Sep 30, 2026🧠Перед вами доска с уликами. Соберите портрет того, кто оставил эти следы! Кто этот подоз…
  2. Sep 30, 2026Кибератака началась. Время пошло ⏱️ «Не защищены» — подкаст о том, что происходит после вз…
  3. Sep 30, 2026💻 Turbo Intruder — быстрый генератор HTTP-запросов для Burp Suite Turbo Intruder — расшир…
  4. Sep 29, 2026🧠open-kritt Платформа с открытым исходным кодом для проведения тестирований по безопаснос…
  5. Sep 29, 2026🔥 Ищем Go Backend Developer (Сети, DevOps, Security) Мы — технологический стартап, делаем…
  6. Sep 29, 2026NIST запретил менять пароли. ФСТЭК — обязал. Как жить в 2026? Представьте ситуацию: на атт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →