Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
fuzzowski — o Fuzzer de Protocolo de Rede que vamos querer usar. | Kitploit
Ferramentas/GitHubGitHub/nccgroup/fuzzowski
Análise de VulnerabilidadesFuzzingSegurança de RedeTestes de Penetração
GitHubnccgroup/fuzzowski

fuzzowski

o Fuzzer de Protocolo de Rede que vamos querer usar.

Ver Repositório
7931145há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Fuzzowski

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

Travis

A ideia é ser o Fuzzer de Protocolo de Rede que nós queremos usar.

O objetivo desta ferramenta é auxiliar durante todo o processo de fuzzing de um protocolo de rede, permitindo definir as comunicações, ajudando a identificar os "suspeitos" que causam a queda de um serviço, e muito mais

Últimas alterações

[16/12/2019]

  • Módulos de Geração de Dados totalmente recodificados (Primitivas, Blocos, Requisições)
    • Bibliotecas de fuzzing de Strings melhoradas, permitindo também listas personalizadas, arquivos e comandos de callback
    • Tipo de dado Variável, que recebe uma variável definida pela sessão, pelo usuário ou por uma Resposta
  • Sessão totalmente recodificada. Agora é baseada em TestCases, que contêm todas as informações necessárias para realizar a requisição, verificar a resposta, armazenar dados como erros recebidos, etc.
  • Respostas adicionadas. Agora você pode definir respostas com s_response(). Isso permite verificar a resposta do servidor, definir variáveis e até realizar testes adicionais na resposta para verificar se algo está errado
Baixar ferramenta
  • Monitores agora marcam automaticamente TestCases como suspeitos se falharem
  • Adicionado o Fuzzer de IPP (Protocolo de Impressão pela Internet) que usamos para encontrar várias vulnerabilidades em diferentes marcas de impressoras durante nosso projeto de pesquisa de impressoras (https://www.youtube.com/watch?v=3X-ZnlyGuWc&t=7s)
  • Funcionalidades

    • Baseado no Sulley Fuzzer para geração de dados [https://github.com/OpenRCE/sulley]
    • Na verdade, fork do BooFuzz (que é um fork do Sulley) [https://github.com/jtpereyda/boofuzz ]
    • Python3
    • Não aleatório (número finito de possibilidades)
    • Requer "criar os pacotes" com tipos (estilo spike fuzzer)
    • Também permite criar pacotes ""Brutos"" a partir de parâmetros, com pontos de injeção (muito útil para fuzzing de protocolos simples)
    • Possui um console agradável para pausar, revisar e retestar qualquer suspeito (prompt_toolkit ftw)
    • Permite pular parâmetros que causam erros, automaticamente ou com o console
    • Formatos de impressão legais para pacotes suspeitos (para saber exatamente o que foi fuzzeado)
    • Salva PoCs como scripts Python para você quando marca um caso de teste como crash
    • Módulos de Monitor para coletar informações do alvo, detectando comportamentos estranhos e marcando suspeitos
    • Módulos de Reinicialização que reiniciarão o alvo se a conexão for perdida (ex.: desligar e ligar uma tomada inteligente)

    Protocolos implementados

    • LPD (Daemon de Impressão em Linha): Totalmente implementado
    • IPP (Protocolo de Impressão pela Internet): Parcialmente implementado
    • BACnet (Protocolo de Automação e Controle de Edifícios): Parcialmente implementado
    • Modbus (Protocolo de Comunicação ICS): Parcialmente implementado

    Instalação

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

    Ajuda

    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.
           ██     ██       
    
    argumentos posicionais:
      host                  Host de destino
      port                  Porta de destino
    
    argumentos opcionais:
      -h, --help            mostra esta mensagem de ajuda e sai
    
    Opções de Conexão:
      -p {tcp,udp,ssl}, --protocol {tcp,udp,ssl}
                            Protocolo (Padrão tcp)
      -b BIND, --bind BIND  Vincular a uma porta
      -st SEND_TIMEOUT, --send_timeout SEND_TIMEOUT
                            Define o timeout de send() (Padrão 5s)
      -rt RECV_TIMEOUT, --recv_timeout RECV_TIMEOUT
                            Define o timeout de recv() (Padrão 5s)
      --sleep-time SLEEP_TIME
                            Tempo de espera entre cada teste (Padrão 0)
      -nc, --new-conns      Abre uma nova conexão após cada pacote do mesmo teste
      -tn, --transmit-next-node
                            Transmite o próximo nó no gráfico do nó fuzzeado
    
    Opções RECV():
      -nr, --no-recv        Não recv() no socket após cada envio
      -nrf, --no-recv-fuzz  Não recv() no socket após enviar uma requisição fuzzeada
      -cr, --check-recv     Verifica se dados foram recebidos em recv()
    
    Opções de Crash:
      --threshold-request CRASH_THRESHOLD_REQUEST
                            Define o número de crashes permitidos em uma Requisição antes de pulá-la (Padrão 9999)
      --threshold-element CRASH_THRESHOLD_ELEMENT
                            Define o número de crashes permitidos em uma Primitiva antes de pulá-la (Padrão 3)
      --ignore-aborted      Ignora erros ECONNABORTED
      --ignore-reset        Ignora erros ECONNRESET
      --error-fuzz-issues   Registra como erro quando há algum problema de conexão no nó fuzzeado
    
    Opções de Fuzz:
      -c CALLBACK, --callback CALLBACK
                            Define um endereço de callback para fuzzar com gerador de callback em vez de mutações normais
      --file FILENAME       Usa o conteúdo de um arquivo para mutações de fuzz
    
    Fuzzers:
      -f {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}, --fuzz {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                            Protocolos Disponíveis
      -r FUZZ_REQUESTS [FUZZ_REQUESTS ...], --requests FUZZ_REQUESTS [FUZZ_REQUESTS ...]
                            Requisições do protocolo para fuzzar, padrão Todas
                              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' ...]
    
    Opções de Reinicialização:
      --restart module_name [args ...]
                            Módulos de Reinicialização:
                              run: '<executável> [<argumento> ...]' (Passe comando e argumentos entre aspas, como um único argumento)
                              smartplug: Irá desligar e ligar a Tomada Inteligente
                              teckin: <PLUG_IP>
      --restart-sleep RESTART_SLEEP_TIME
                            Define segundos de espera após um crash antes de continuar (Padrão 5)
    
    Opções de Monitor:
      --monitors {IPPMon} [{IPPMon} ...], -m {IPPMon} [{IPPMon} ...]
                            Módulos de Monitor:
                              IPPMon: Envia uma mensagem IPP get-attributes para o alvo
    
    Outras Opções:
      --path PATH           Define o caminho ao fuzzar protocolos baseados em HTTP (Padrão /)
      --document_url DOCUMENT_URL
                            Define a URL do documento para print_uri
    
    

    Exemplos

    Fuzzar a operação IPP get_printer_attribs com opções padrão:

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

    asciicast

    Usar o recurso raw do IPP para fuzzar o protocolo finger:

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

    asciicast

    Usar o recurso raw do IPP para fuzzar o protocolo finger, mas em vez de usar as mutações predefinidas, usar um arquivo:

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

    Exemplo de Fuzzer Stateful, demonstrando o uso de s_response e s_variable para obter um token necessário para fuzzar uma requisição. Este exemplo é baseado no caso de teste do servidor HTTP mock

    asciicast