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

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

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

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

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

Категории

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

fuzzowski

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

Репозиторий
79311454 лет назадПроверено 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

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