Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
fuzzowski — der Network Protocol Fuzzer, den wir verwenden möchten. | Kitploit
Tools/GitHubGitHub/nccgroup/fuzzowski
SchwachstellenanalyseFuzzingNetzwerksicherheitPenetrationstests
GitHubnccgroup/fuzzowski

fuzzowski

der Network Protocol Fuzzer, den wir verwenden möchten.

Repository anzeigen
793114vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Fuzzowski

root@kitploit:~
       █      █       
       ████████       
      ██████████      
     ██  ████  ██     
     ██  ████  ██     
    ████      ████    
   █ ████████████ █   
   █  ██████████  █   Fuzzowski Netzwerk-Fuzzer
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██                von Mario Rivas

Travis

Die Idee ist, der Netzwerkprotokoll-Fuzzer zu sein, den wir nutzen wollen.

Das Ziel dieses Tools ist es, den gesamten Prozess des Fuzzings eines Netzwerkprotokolls zu unterstützen, die Definition der Kommunikation zu ermöglichen, bei der Identifizierung der "Verdächtigen" für den Absturz eines Dienstes zu helfen und vieles mehr.

Letzte Änderungen

[16/12/2019]

  • Daten-Generierungsmodule vollständig neu codiert (Primitives, Blocks, Requests)
    • Verbesserte String-Fuzzing-Bibliotheken, die auch benutzerdefinierte Listen, Dateien und Rückruffunktionen (Callback-Befehle) ermöglichen
    • Variable Datentyp, der eine Variable verwendet, die von der Sitzung, dem Benutzer oder einer Antwort gesetzt wird
  • Session vollständig neu codiert. Es basiert nun auf TestCases, die alle Informationen enthalten, die zum Ausführen der Anfrage, Überprüfen der Antwort, Speichern von Daten wie erhaltenen Fehlern usw. benötigt werden.
  • Responses hinzugefügt. Nun können Sie Antworten mit s_response() definieren. Dies ermöglicht es, die Antwort vom Server zu überprüfen, Variablen zu setzen und sogar zusätzliche Tests auf der Antwort durchzuführen, um zu prüfen, ob etwas falsch ist.
  • Monitore markieren jetzt automatisch TestCases als verdächtig, wenn sie fehlschlagen.
  • Der IPP (Internet Printing Protocol) Fuzzer wurde hinzugefügt, den wir verwendet haben, um mehrere Schwachstellen in verschiedenen Druckermarken während unseres Druckerforschungsprojekts zu finden (https://www.youtube.com/watch?v=3X-ZnlyGuWc&t=7s)

Eigenschaften

  • Basiert auf dem Sulley Fuzzer zur Datengenerierung [https://github.com/OpenRCE/sulley]
  • Eigentlich von BooFuzz abgezweigt (welches ein Fork von Sulley ist) [https://github.com/jtpereyda/boofuzz ]
  • Python3
  • Nicht zufällig (endliche Anzahl von Möglichkeiten)
  • Erfordert das 'Erstellen der Pakete' mit Typen (Spike-Fuzzer-Stil)
  • Ermöglicht auch das Erstellen von 'Rohen' Paketen aus Parametern mit Injektionspunkten (sehr nützlich zum Fuzzen einfacher Protokolle)
  • Verfügt über eine nette Konsole zum Anhalten, Überprüfen und erneuten Testen jedes Verdächtigen (prompt_toolkit ftw)
  • Ermöglicht das Überspringen von Parametern, die Fehler verursachen, automatisch oder mit der Konsole
  • Schöne Druckformate für verdächtige Pakete (um genau zu wissen, was gefuzzt wurde)
  • Es speichert PoCs als Python-Skripte für Sie, wenn Sie einen Testfall als Absturz markieren
  • Monitor-Module, um Informationen über das Ziel zu sammeln, ungewöhnliches Verhalten zu erkennen und Verdächtige zu markieren
  • Neustarter-Module, die das Ziel neu starten, wenn die Verbindung verloren geht (z.B. Ein- und Ausschalten einer Smart Plug)

Implementierte Protokolle

  • LPD (Line Printing Daemon): Vollständig implementiert
  • IPP (Internet Printing Protocol): Teilweise implementiert
  • BACnet (Building Automation and Control networks Protocol): Teilweise implementiert
  • Modbus (ICS-Kommunikationsprotokoll): Teilweise implementiert

Installation

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

Hilfe

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 Netzwerk-Fuzzer
   █    █     █   █           🄯  Fuzzers, inc.
       ██     ██       

positional arguments:
  host                  Ziel-Host
  port                  Ziel-Port

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

Connection Options:
  -p {tcp,udp,ssl}, --protocol {tcp,udp,ssl}
                        Protokoll (Standard tcp)
  -b BIND, --bind BIND  An Port binden
  -st SEND_TIMEOUT, --send_timeout SEND_TIMEOUT
                        Setzt send()-Timeout (Standard 5s)
  -rt RECV_TIMEOUT, --recv_timeout RECV_TIMEOUT
                        Setzt recv()-Timeout (Standard 5s)
  --sleep-time SLEEP_TIME
                        Wartezeit zwischen jedem Test (Standard 0)
  -nc, --new-conns      Neue Verbindung nach jedem Paket des gleichen Tests öffnen
  -tn, --transmit-next-node
                        Überträgt den nächsten Knoten im Graphen des gefuzzten Knotens

RECV() Options:
  -nr, --no-recv        Kein recv() im Socket nach jedem Senden
  -nrf, --no-recv-fuzz  Kein recv() im Socket nach dem Senden einer gefuzzten Anfrage
  -cr, --check-recv     Überprüfen, ob Daten im recv() empfangen wurden

Absturz-Optionen:
  --threshold-request CRASH_THRESHOLD_REQUEST
                        Setzt die Anzahl erlaubter Abstürze in einer Request vor dem Überspringen (Standard 9999)
  --threshold-element CRASH_THRESHOLD_ELEMENT
                        Setzt die Anzahl erlaubter Abstürze in einem Primitive vor dem Überspringen (Standard 3)
  --ignore-aborted      ECONNABORTED-Fehler ignorieren
  --ignore-reset        ECONNRESET-Fehler ignorieren
  --error-fuzz-issues   Fehler als Fehler protokollieren, wenn es ein Verbindungsproblem im gefuzzten Knoten gibt

Fuzz-Optionen:
  -c CALLBACK, --callback CALLBACK
                        Setzt eine Callback-Adresse, um mit Callback-Generator statt normaler Mutationen zu fuzzen
  --file FILENAME       Verwendet den Inhalt einer Datei für Fuzz-Mutationen

Fuzzer:
  -f {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}, --fuzz {cops,dhcp,ipp,lpd,netconf,telnet_cli,tftp,raw}
                        Verfügbare Protokolle
  -r FUZZ_REQUESTS [FUZZ_REQUESTS ...], --requests FUZZ_REQUESTS [FUZZ_REQUESTS ...]
                        Anfragen des Protokolls zum Fuzzen, Standard Alle
                          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' ...]

Neustart-Optionen:
  --restart module_name [args ...]
                        Neustarter-Module:
                          run: '<executable> [<argument> ...]' (Übergeben Sie Befehl und Argumente in Anführungszeichen als nur ein Argument)
                          smartplug: Schaltet die Smart Plug aus und wieder ein
                          teckin: <PLUG_IP>
  --restart-sleep RESTART_SLEEP_TIME
                        Setzt die Wartezeit in Sekunden nach einem Absturz vor dem Fortfahren (Standard 5)

Monitor-Optionen:
  --monitors {IPPMon} [{IPPMon} ...], -m {IPPMon} [{IPPMon} ...]
                        Monitor-Module:
                          IPPMon: Sendet eine get-attributes IPP-Nachricht an das Ziel

Weitere Optionen:
  --path PATH           Setzt den Pfad beim Fuzzen von HTTP-basierten Protokollen (Standard /)
  --document_url DOCUMENT_URL
                        Setzt die Dokumenten-URL für print_uri

Beispiele

Fuzze die get_printer_attribs IPP-Operation mit Standardoptionen:

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

asciicast

Verwenden Sie die Raw-Funktion von IPP, um das Finger-Protokoll zu fuzzen:

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

asciicast

Verwenden Sie die Raw-Funktion von IPP, um das Finger-Protokoll zu fuzzen, aber verwenden Sie anstelle der vordefinierten Mutationen eine Datei:

python -m fuzzowski printer 79 -f raw -r '{{root}}\n' --file 'pfad/zu/meiner/fuzzlist'

Beispiel für einen zustandsbehafteten Fuzzer, das die Verwendung von s_response und s_variable demonstriert, um ein Token zu erhalten, das zum Fuzzen einer Anfrage benötigt wird. Dieses Beispiel basiert auf dem Mock-HTTP-Server-Testfall

asciicast

Tool herunterladen