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
793114há 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
  • 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

Baixar ferramenta