Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
fuzzowski — il Network Protocol Fuzzer che vorremo utilizzare. | Kitploit
Strumenti/GitHubGitHub/nccgroup/fuzzowski
Analisi delle VulnerabilitàFuzzingSicurezza di RetePenetration Testing
GitHubnccgroup/fuzzowski

fuzzowski

il Network Protocol Fuzzer che vorremo utilizzare.

Vedi Repository
7931144 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Fuzzowski

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

Travis

L'idea è essere il Network Protocol Fuzzer che vogliamo usare.

Lo scopo di questo strumento è assistere durante l'intero processo di fuzzing di un protocollo di rete, permettendo di definire le comunicazioni, aiutando a identificare i "sospetti" di crash di un servizio, e molto altro.

Ultime Modifiche

[16/12/2019]

  • Moduli di Generazione Dati completamente riscritti (Primitive, Blocchi, Richieste)
    • Librerie di fuzzing per Stringhe migliorate, che consentono anche elenchi personalizzati, file e comandi callback
    • Tipo di dato Variabile, che prende una variabile impostata dalla sessione, dall'utente o da una Risposta
  • Sessione completamente riscritta. Ora è basata su TestCase, che contengono tutte le informazioni necessarie per eseguire la richiesta, controllare la risposta, memorizzare dati come errori ricevuti, ecc.
  • Risposte aggiunte. Ora puoi definire risposte con s_response(), ciò permette di controllare la risposta dal server, impostare variabili e persino eseguire test aggiuntivi sulla risposta per verificare se qualcosa non va
  • Monitor ora contrassegnano automaticamente i TestCase come sospetti se falliscono
  • Aggiunto il Fuzzer per IPP (Internet Printing Protocol) che abbiamo usato per trovare diverse vulnerabilità in diverse marche di stampanti durante il nostro progetto di ricerca sulle stampanti (https://www.youtube.com/watch?v=3X-ZnlyGuWc&t=7s)

Caratteristiche

  • Basato su Sulley Fuzzer per la generazione di dati [https://github.com/OpenRCE/sulley]
  • In realtà, fork di BooFuzz (che è un fork di Sulley) [https://github.com/jtpereyda/boofuzz]
  • Python3
  • Non casuale (numero finito di possibilità)
  • Richiede di "creare i pacchetti" con tipi (stile spike fuzzer)
  • Permette anche di creare pacchetti ""Grezzi"" da parametri, con punti di iniezione (molto utile per fuzzare protocolli semplici)
  • Ha una bella console per mettere in pausa, rivedere e ritestare qualsiasi sospetto (prompt_toolkit ftw)
  • Permette di saltare parametri che causano errori, automaticamente o tramite la console
  • Bei formati di stampa per pacchetti sospetti (per sapere esattamente cosa è stato fuzzato)
  • Salva PoC come script Python per te quando contrassegni un test case come crash
  • Moduli Monitor per raccogliere informazioni sul target, rilevare comportamenti anomali e contrassegnare sospetti
  • Moduli Riavvio che riavvieranno il target se la connessione viene persa (ad es. spegnendo e riaccendendo una smart plug)

Protocolli implementati

  • LPD (Line Printing Daemon): Completamente implementato
  • IPP (Internet Printing Protocol): Parzialmente implementato
  • BACnet (Protocollo per automazione e controllo edifici): Parzialmente implementato
  • Modbus (Protocollo di comunicazione ICS): Parzialmente implementato

Installazione

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

Aiuto

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                  Host di destinazione
  port                  Porta di destinazione

optional arguments:
  -h, --help            mostra questo messaggio di aiuto ed esci

Connection Options:
  -p {tcp,udp,ssl}, --protocol {tcp,udp,ssl}
                        Protocollo (Default tcp)
  -b BIND, --bind BIND  Bind a una porta
  -st SEND_TIMEOUT, --send_timeout SEND_TIMEOUT
                        Imposta timeout send() (Default 5s)
  -rt RECV_TIMEOUT, --recv_timeout RECV_TIMEOUT
                        Imposta timeout recv() (Default 5s)
  --sleep-time SLEEP_TIME
                        Tempo di pausa tra ogni test (Default 0)
  -nc, --new-conns      Apre una nuova connessione dopo ogni pacchetto dello stesso test
  -tn, --transmit-next-node
                        Trasmette il nodo successivo nel grafico del nodo fuzzato

RECV() Options:
  -nr, --no-recv        Non esegue recv() sul socket dopo ogni invio
  -nrf, --no-recv-fuzz  Non esegue recv() sul socket dopo l'invio di una richiesta fuzzata
  -cr, --check-recv     Controlla che siano stati ricevuti dati in recv()

Crashes Options:
  --threshold-request CRASH_THRESHOLD_REQUEST
                        Imposta il numero di crash consentiti in una Request prima di saltarla (Default 9999)
  --threshold-element CRASH_THRESHOLD_ELEMENT
                        Imposta il numero di crash consentiti in una Primitiva prima di saltarla (Default 3)
  --ignore-aborted      Ignora errori ECONNABORTED
  --ignore-reset        Ignora errori ECONNRESET
  --error-fuzz-issues   Registra come errore quando c'è un problema di connessione nel nodo fuzzato

Fuzz Options:
  -c CALLBACK, --callback CALLBACK
                        Imposta un indirizzo callback per fuzzare con generatore di callback invece di mutazioni normali
  --file FILENAME       Usa il contenuto di un file per le mutazioni di fuzz

Fuzzers:
  -f {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}, --fuzz {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                        Protocolli disponibili
  -r FUZZ_REQUESTS [FUZZ_REQUESTS ...], --requests FUZZ_REQUESTS [FUZZ_REQUESTS ...]
                        Richieste del protocollo da fuzzare, default tutte
                          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 ...]
                        Moduli Riavvio:
                          run: '<eseguibile> [<argomento> ...]' (Passa comando e argomenti tra virgolette, come un solo argomento)
                          smartplug: Spegne e riaccende la Smart Plug
                          teckin: <PLUG_IP>
  --restart-sleep RESTART_SLEEP_TIME
                        Imposta secondi di pausa dopo un crash prima di continuare (Default 5)

Monitor options:
  --monitors {IPPMon} [{IPPMon} ...], -m {IPPMon} [{IPPMon} ...]
                        Moduli Monitor:
                          IPPMon: Invia un messaggio IPP get-attributes al target

Other Options:
  --path PATH           Imposta il percorso per fuzzare protocolli basati su HTTP (Default /)
  --document_url DOCUMENT_URL
                        Imposta URL documento per print_uri

Esempi

Fuzza l'operazione IPP get_printer_attribs con opzioni predefinite:

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

asciicast

Usa la funzionalità raw di IPP per fuzzare il protocollo finger:

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

asciicast

Usa la funzionalità raw di IPP per fuzzare il protocollo finger, ma invece di usare le mutazioni predefinite, usa un file:

python -m fuzzowski stampante 79 -f raw -r '{{root}}\n' --file 'percorso/verso/la/mia/fuzzlist'

Esempio di Fuzzer stateful, che dimostra l'uso di s_response e s_variable per ottenere un token necessario per fuzzare una richiesta. Questo esempio è basato sul mock http server test case

asciicast

Scarica lo strumento