Boofuzz: Инструмент фаззинга сетевых протоколов
Boofuzz наследует основные концепции Sulley, добавляя исправление ошибок, актуальную документацию и поддержку современных сред. Как и предшественник, инструмент охватывает все критические элементы процесса фаззинга:
▶️ Быстрое создание тестовых наборов на основе шаблонов
▶️ Обнаружение отказов и аномалий в целевой системе
▶️ Автоматический перезапуск цели после сбоя
▶️ Запись всех тестовых данных и результатов
👉 Отличия от Sulley
- Актуальная онлайн-документация и поддержка
- Поддержка произвольных каналов связи (последовательный порт, Ethernet, UDP-широковещание)
- Улучшенная регистрация данных с экспортом в CSV
- Расширяемая система инструментирования
- Упрощенная установка через pip
- Исправление многочисленных ошибок оригинального фреймворка
⬇️ Установка
Проверка
⏺️ Boofuzz используется как Python-библиотека для создания скриптов фаззинга. Простейший пример для тестирования TCP-сервера:
Запуск скрипта:
⏺️ Фаззинг HTTP-сервера
⏺️ Фаззинг с мониторингом отказов
⏺️ Экспорт результатов
После завершения фаззинга boofuzz создает директорию с результатами, содержащую:
▶️ Тестовые кейсы (все отправленные запросы с метками)
▶️ Лог сбоев (информация о крашах и аномалиях)
▶️ CSV-файл (сводная таблица результатов)
Пример структуры результатов:
#Boofuzz #tool #pentest #Sulley
🔗 Все наши каналы 🔁 Все наши чаты 🪧 Для связи с менеджером
Boofuzz — фреймворк для фаззинга (fuzzing) сетевых протоколов, являющийся форком и преемником известного инструмента Sulley. Разработан для генерации и передачи некорректных или неожиданных данных целевым приложениям с целью выявления уязвимостей, ошибок обработки ввода и отказов в обслуживании. Boofuzz сочетает простоту использования с расширяемостью, что позволяет применять его для тестирования самых разных протоколов и интерфейсов.
Boofuzz наследует основные концепции Sulley, добавляя исправление ошибок, актуальную документацию и поддержку современных сред. Как и предшественник, инструмент охватывает все критические элементы процесса фаззинга:
- Актуальная онлайн-документация и поддержка
- Поддержка произвольных каналов связи (последовательный порт, Ethernet, UDP-широковещание)
- Улучшенная регистрация данных с экспортом в CSV
- Расширяемая система инструментирования
- Упрощенная установка через pip
- Исправление многочисленных ошибок оригинального фреймворка
pip install boofuzz
Проверка
python -c "import boofuzz; print(boofuzz.__version__)"
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
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 создает директорию с результатами, содержащую:
Пример структуры результатов:
├── crashes.log
├── fuzz.db
├── fuzz_results.csv
└── test-cases/
├── test-case-000001
├── test-case-000002
└── ...
#Boofuzz #tool #pentest #Sulley
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍6🔥5