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

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

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

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

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

Категории

Все категории
Loading categories
fuzzowski — сетевой фаззер протоколов, который мы захотим использовать. | Kitploit
Инструменты/GitHubGitHub/nccgroup/fuzzowski
Анализ уязвимостейФаззингСетевая безопасностьТестирование на Проникновение
GitHubnccgroup/fuzzowski

fuzzowski

сетевой фаззер протоколов, который мы захотим использовать.

Репозиторий
7931144 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Fuzzowski

root@kitploit:~
       █      █       
       ████████       
      ██████████      
     ██  ████  ██     
     ██  ████  ██     
    ████      ████    
   █ ████████████ █   
   █  ██████████  █   Fuzzowski Network Fuzzer
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██                by Mario Rivas

Travis

Идея в том, чтобы быть тем сетевым протокольным фаззером, которым мы захотим пользоваться.

Цель этого инструмента — помогать на протяжении всего процесса фаззинга сетевого протокола, позволяя определять коммуникации, помогая выявлять «подозреваемых» в обрушении сервиса и многое другое.

Последние изменения

[16/12/2019]

  • Модули генерации данных полностью переписаны (Primitives, Blocks, Requests)
    • Улучшены библиотеки фаззинга строк, теперь также поддерживаются пользовательские списки, файлы и команды обратного вызова
    • Тип данных Variable, принимающий переменную, установленную сессией, пользователем или ответом (Response)
  • Session полностью переписана. Теперь она основана на TestCase'ах, которые содержат всю информацию, необходимую для выполнения запроса, проверки ответа, сохранения данных, таких как полученные ошибки и т.д.
  • Responses добавлены. Теперь можно определять ответы с помощью s_response(). Это позволяет проверять ответ от сервера, устанавливать переменные и даже проводить дополнительные тесты ответа на наличие проблем.
  • Monitors теперь автоматически помечают TestCases как подозрительные, если они завершились неудачей.
  • Добавлен фаззер IPP (Internet Printing Protocol), который мы использовали для поиска нескольких уязвимостей в разных марках принтеров во время нашего исследовательского проекта по принтерам (https://www.youtube.com/watch?v=3X-ZnlyGuWc&t=7s)

Возможности

  • Основан на Sulley Fuzzer для генерации данных [https://github.com/OpenRCE/sulley]
  • Фактически, форк BooFuzz (который является форком Sulley) [https://github.com/jtpereyda/boofuzz ]
  • Python3
  • Не случайный (конечное число возможностей)
  • Требует «создания пакетов» с типами (в стиле spike fuzzer)
  • Также позволяет создавать «сырые» (Raw) пакеты из параметров с точками внедрения (довольно полезно для фаззинга простых протоколов)
  • Имеет удобную консоль для приостановки, просмотра и повторного тестирования любых подозрительных случаев (prompt_toolkit ftw)
  • Позволяет пропускать параметры, вызывающие ошибки, автоматически или через консоль
  • Удобные форматы вывода для подозрительных пакетов (чтобы точно знать, что было зафазжено)
  • Сохраняет PoC как скрипты Python, когда вы помечаете тестовый случай как сбой
  • Модули мониторинга для сбора информации о цели, выявления необычного поведения и пометки подозрительных случаев
  • Модули перезапуска, которые перезапускают цель, если соединение потеряно (например, включение и выключение умной розетки)

Реализованные протоколы

  • LPD (Line Printing Daemon): Полностью реализован
  • IPP (Internet Printing Protocol): Частично реализован
  • BACnet (Building Automation and Control networks Protocol): Частично реализован
  • Modbus (протокол промышленной связи ICS): Частично реализован

Установка

root@kitploit:~
virtualenv venv -p python3
source venv/bin/activate
pip install -r requirements.txt

Справка

root@kitploit:~
usage: python -m fuzzowski [-h] [-p {tcp,udp,ssl}] [-b BIND] [-st SEND_TIMEOUT]
                    [-rt RECV_TIMEOUT] [--sleep-time SLEEP_TIME] [-nc] [-tn]
                    [-nr] [-nrf] [-cr]
                    [--threshold-request CRASH_THRESHOLD_REQUEST]
                    [--threshold-element CRASH_THRESHOLD_ELEMENT]
                    [--ignore-aborted] [--ignore-reset] [--error-fuzz-issues]
                    [-c CALLBACK | --file FILENAME] -f
                    {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                    [-r FUZZ_REQUESTS [FUZZ_REQUESTS ...]]
                    [--restart module_name [args ...]]
                    [--restart-sleep RESTART_SLEEP_TIME]
                    [--monitors {IPPMon} [{IPPMon} ...]] [--path PATH]
                    [--document_url DOCUMENT_URL]
                    host port

       █      █       
       ████████       
      ██████████      
     ██  ████  ██     
     ██  ████  ██     
    ████      ████    
   █ ████████████ █   
   █  ██████████  █   Fuzzowski Network Fuzzer
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██       

positional arguments:
  host                  Destination Host
  port                  Destination Port

optional arguments:
  -h, --help            show this help message and exit

Connection Options:
  -p {tcp,udp,ssl}, --protocol {tcp,udp,ssl}
                        Protocol (Default tcp)
  -b BIND, --bind BIND  Bind to port
  -st SEND_TIMEOUT, --send_timeout SEND_TIMEOUT
                        Set send() timeout (Default 5s)
  -rt RECV_TIMEOUT, --recv_timeout RECV_TIMEOUT
                        Set recv() timeout (Default 5s)
  --sleep-time SLEEP_TIME
                        Sleep time between each test (Default 0)
  -nc, --new-conns      Open a new connection after each packet of the same test
  -tn, --transmit-next-node
                        Transmit the next node in the graph of the fuzzed node

RECV() Options:
  -nr, --no-recv        Do not recv() in the socket after each send
  -nrf, --no-recv-fuzz  Do not recv() in the socket after sending a fuzzed request
  -cr, --check-recv     Check that data has been received in recv()

Crashes Options:
  --threshold-request CRASH_THRESHOLD_REQUEST
                        Set the number of allowed crashes in a Request before skipping it (Default 9999)
  --threshold-element CRASH_THRESHOLD_ELEMENT
                        Set the number of allowed crashes in a Primitive before skipping it (Default 3)
  --ignore-aborted      Ignore ECONNABORTED errors
  --ignore-reset        Ignore ECONNRESET errors
  --error-fuzz-issues   Log as error when there is any connection issue in the fuzzed node

Fuzz Options:
  -c CALLBACK, --callback CALLBACK
                        Set a callback address to fuzz with callback generator instead of normal mutations
  --file FILENAME       Use contents of a file for fuzz mutations

Fuzzers:
  -f {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}, --fuzz {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                        Available Protocols
  -r FUZZ_REQUESTS [FUZZ_REQUESTS ...], --requests FUZZ_REQUESTS [FUZZ_REQUESTS ...]
                        Requests of the protocol to fuzz, default All
                          dhcp: [opt82]
                          ipp: [http_headers, get_printer_attribs, print_uri_message, send_uri, get_jobs, get_job_attribs]
                          lpd: [long_queue, short_queue, ctrl_file, data_file, remove_job]
                          telnet_cli: [commands]
                          tftp: [read]
                          raw: ['\x01string\n' '\x02request2\x00' ...]

Restart options:
  --restart module_name [args ...]
                        Restarter Modules:
                          run: '<executable> [<argument> ...]' (Pass command and arguments within quotes, as only one argument)
                          smartplug: It will turn off and on the Smart Plug
                          teckin: <PLUG_IP>
  --restart-sleep RESTART_SLEEP_TIME
                        Set sleep seconds after a crash before continue (Default 5)

Monitor options:
  --monitors {IPPMon} [{IPPMon} ...], -m {IPPMon} [{IPPMon} ...]
                        Monitor Modules:
                          IPPMon: Sends a get-attributes IPP message to the target

Other Options:
  --path PATH           Set path when fuzzing HTTP based protocols (Default /)
  --document_url DOCUMENT_URL
                        Set Document URL for print_uri

Примеры

Фаззинг операции IPP get_printer_attribs с параметрами по умолчанию:

python -m fuzzowski printer1 631 -f ipp -r get_printer_attribs --restart smartplug

asciicast

Использование функции raw в IPP для фаззинга протокола finger:

python -m fuzzowski printer 79 -f raw -r '{{root}}\n'

asciicast

Использование функции raw в IPP для фаззинга протокола finger, но вместо предопределённых мутаций используется файл:

python -m fuzzowski printer 79 -f raw -r '{{root}}\n' --file 'path/to/my/fuzzlist'

Пример фаззера с состоянием (Stateful Fuzzer), демонстрирующий использование s_response и s_variable для получения токена, необходимого для фаззинга запроса. Этот пример основан на тестовом примере mock http server

asciicast

Скачать инструмент