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
sharker — Ein einfacher, zuverlässiger und einigermaßen schneller Netzwerk-Capture-Analysator. | Kitploit
Tools/GitHubGitHub/synacktiv/sharker
Paket-Sniffing & AnalysePasswort-CrackingInformationsbeschaffungWebsicherheitNetzwerksicherheitDigitale Forensik
GitHubsynacktiv/sharker

sharker

Ein einfacher, zuverlässiger und einigermaßen schneller Netzwerk-Capture-Analysator.

Repository anzeigen
3315vor 3 MonatenVon 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

Sharker: Wo Wireshark endet, beginnen wir

Sharker ist ein leistungsstarkes und erweiterbares Werkzeug zum Extrahieren wertvoller Daten aus PCAP-Dateien oder von Live-Schnittstellen. Es nutzt die Leistung von tshark, um Netzwerk-Mitschnitte effizient zu analysieren, und wendet ein flexibles Filtersystem an, um interessante Informationen gezielt zu finden und zu extrahieren.

Hauptfunktionen

  • Erweiterbare Filter: Erstellen Sie Python-basierte Filter, um beliebige Daten aus Netzwerkpaketen zu extrahieren.
  • Leistungsstarke Filter-Engine: Filtern und Filterkategorien können gezielt aktiviert oder deaktiviert werden, um die Analyse zu verfeinern und zu beschleunigen.
  • Mehrere Eingabequellen: Analysieren Sie .pcap-Dateien, Verzeichnisse mit Mitschnitten oder sogar Live-Netzwerkverkehr von einer Schnittstelle.
  • Flexible Ausgabe: Speichern Sie Ergebnisse in organisierten Textdateien, geben Sie sie auf der Konsole aus oder beides.

Anforderungen

  • tshark: Das Kommandozeilen-Pendant zu Wireshark ist unerlässlich. Sie können es in der Regel über den Paketmanager Ihres Systems installieren (z. B. apt-get install tshark, ).
brew install wireshark
  • Python 3
  • Python-Bibliotheken: Die benötigten Bibliotheken sind in requirements.txt aufgelistet und können mit pip/pipx installiert werden.
  • Installation

    Sie können Sharker mit pipx (empfohlen) oder einer standardmäßigen pip- und venv-Umgebung installieren.

    Mit pipx (empfohlen)

    root@kitploit:~
    # Install from this repository
    pipx install git+https://github.com/synacktiv/sharker.git
    
    # Verify the installation
    sharker -h
    

    Mit pip und venv

    root@kitploit:~
    # Clone the repository
    git clone https://github.com/synacktiv/sharker.git
    cd sharker
    
    # Create and activate a virtual environment
    python3 -m venv venv
    source venv/bin/activate
    
    # Install Sharker
    pip install .
    
    # Verify the installation
    sharker -h
    

    Verwendung

    Die grundlegende Syntax von Sharker lautet:

    root@kitploit:~
    sharker [OPTIONS] [PCAP_FILE(s)]
    

    Allgemeine Optionen

    Hauptoptionen

    OptionBeschreibung
    -i, --interface <IFACE>Erfasst Live-Datenverkehr von einer Netzwerkschnittstelle (z. B. eth0).
    -d, --pcap-dir <DIR>Analysiert alle PCAP-Dateien in einem Verzeichnis.
    -o, --output-dir <DIR>Gibt das Verzeichnis für Ausgabedateien an (Standard: ./sharker_out).
    -m, --output-mode <MODE>Legt den Ausgabemodus fest: file, console, both oder develop (Standard: both).
    -u, --uniqueGibt nur eindeutige Ergebnisse aus.
    -F, --fastSchnellste Konfiguration (beeinflusst die Filterauswahl nicht).
    -A, --allAktiviert alle Filter; wird langsamer sein.

    Filteroptionen

    OptionBeschreibung
    -c, --categories <CATS>Eine durch Kommas getrennte Liste von Filterkategorien, die ausgeführt werden sollen (z. B. creds,http).
    -nc, --not-categories <CATS>Eine durch Kommas getrennte Liste von Filterkategorien, die ausgeschlossen werden sollen (z. B. heavy). Standardmäßig ist heavy ausgeschlossen.
    -f, --filters <FILTERS>Eine durch Kommas getrennte Liste bestimmter auszuführender Filter.
    -nf, --not-filters <FILTERS>Eine durch Kommas getrennte Liste bestimmter auszuschließender Filter.
    -L, --list-all-filtersZeigt eine Liste aller verfügbaren Filter und ihrer Beschreibungen an.
    -Lc, --list-all-filter-categoriesZeigt eine Liste aller verfügbaren Filterkategorien an.
    -l, --list-filtersZeigt die Filter an, die mit den aktuellen Befehlszeilenoptionen aktiv sind.
    -v, --verboseAktiviert ausführliche Protokollierung zum Debuggen.

    Beispielverwendung

    1. Analysieren Sie eine einzelne PCAP-Datei und speichern Sie die Ergebnisse:

    root@kitploit:~
    sharker my_capture.pcap
    

    Dadurch werden alle Filter mit Ausnahme der Kategorie heavy ausgeführt und die Ausgabe im Verzeichnis sharker_out/ gespeichert. Filter der Kategorie creds werden zusätzlich auf stdout ausgegeben.

    2. Alle Filter anwenden und versuchen, so schnell wie möglich zu arbeiten:

    root@kitploit:~
    sharker -A -F my_captures.pcap
    

    Hierbei werden alle Filter angewendet und alles in Dateien ausgegeben; auf der Konsole werden keine Ergebnisse angezeigt.

    3. Analysieren Sie ein Verzeichnis mit PCAPs, mit Schwerpunkt auf Anmeldeinformationen:

    root@kitploit:~
    sharker -d /path/to/pcaps -c creds
    

    Dieser Befehl verarbeitet alle PCAP-Dateien im angegebenen Verzeichnis, führt aber nur die Filter der Kategorie creds aus.

    4. Live-Datenverkehr erfassen und HTTP-bezogene Informationen auf der Konsole ausgeben:

    root@kitploit:~
    sudo sharker -i eth0 -c http -m console
    

    Dadurch wird der Datenverkehr der Schnittstelle eth0 erfasst, nur die Filter der Kategorie http werden ausgeführt und alle Ergebnisse direkt im Terminal ausgegeben.

    5. Alle verfügbaren Filter auflisten:

    root@kitploit:~
    sharker -L
    

    Hilfe-Ausgabe

    Klicken Sie, um die vollständige Hilfe-Ausgabe zu sehen
    root@kitploit:~
    $ sharker -h
    Usage: sharker [OPTIONS] [PCAP[ PCAP[ ...]]
    
      Sharker: A reasonably fast network protocol analysis tool with extensible
      filters.
    
    Options:
      Input Source:
        -d, --pcap-dir DIR            Path to a directory containing PCAP files to
                                      parse.
        -i, --interface IFACE         Network interface to capture live data from
                                      (e.g., eth0, wlan0).
      Output Handling:                By default, everything is written to file,
                                      and only creds category is printed to
                                      console. For very large PCAPs, advised to
                                      disable console output or at least colors,
                                      since it slows down the parsing.
        -m, --output-mode [file|console|both|develop]
                                      Which output mode to enable.  [default:
                                      both]
        -u, --unique                  Output only unique results, will gradually
                                      take more and more RAM.
        -F, --fast                    Fastest configuration (do not affect filter
                                      selection).
      Output file mode:
        -o, --output-dir DIR          Output directory.
        -op, --output-prefix NAME     Prefix to use for the output files, defaults
                                      to the PCAP/interface name.
      Output console mode:
        -P                            Send all filters to console (default in
                                      console output mode).
        -C                            Do not use colors in console output, will
                                      speed up sharker when lot of stuff is
                                      printed.
        -pf FILT[,FILT[...]]          Send specific filters output to console.
        -xpf FILT[,FILT[...]]         Do not send specific filters to console.
        -pc CAT[,CAT[...]]            Send specific filter categories to console.
        -xpc CAT[,CAT[...]]           Do not send specific categories to console.
        -nwf FILT[,FILT[...]]         Do not write filters output to file.
        -nwc CAT[,CAT[...]]           Do not write filter categories to file.
      Filter Selection:
        -A, --all                     Enable all filters, will be slower.
        -f, --filters FILT[,FILT[...]]
                                      Only run specified filters.
        -nf, --not-filters FILT[,FILT[...]]
                                      Exclude specified filters.
        -c, --categories CAT[,CAT[...]]
                                      Only run specified categories of filters.
        -nc, --not-categories CAT[,CAT[...]]
                                      Exclude specified categories of filters.
      Filter Information:
        -l, --list-filters            List filters that would be active with
                                      current filtering options.
        -L, --list-all-filters        List all available filters.
        -Lc, --list-all-filter-categories
                                      List all available filter categories.
      Debugging:
        -v, --verbose                 Verbose mode.
      -h, --help                      Show this message and exit.
    

    Das Filtersystem

    Sharkers Stärke liegt in seinen Filtern, die sich im Verzeichnis sharker/filters/ befinden. Jeder Filter ist eine Python-Klasse, die Folgendes definiert:

    • name: Ein eindeutiger Name für den Filter.
    • description: Eine kurze Erklärung, was der Filter tut.
    • pcap_filter: Ein tshark-Anzeigefilter, um relevante Pakete für diesen Filter auszuwählen.
    • categories: Eine Liste von Kategorien, zu denen der Filter gehört (z. B. creds, dns, http). heavy kann für Filter verwendet werden, die viele Pakete abgleichen oder langsame Operationen ausführen.
    • mandatory_selectors und optional_selectors: Schlüssel, die in der JSON-Darstellung des Pakets gesucht werden, um die relevanten Daten zu identifizieren. Sharker verwendet diese Attribute zur Ausgabe von Daten, wenn im Filter keine parser-Funktion definiert ist.
    • parser(): Eine Funktion, die die Paketdaten verarbeitet und die extrahierten Informationen zurückgibt.

    Standardmäßig führt Sharker alle Filter mit Ausnahme der Kategorie heavy aus. Sie können dieses Verhalten mit den Optionen -c, -nc, -f und -nf anpassen.

    Klicken Sie, um das Beispiel zur Extraktion von NTLM-Hashes zu sehen
    root@kitploit:~
    from .base import FilterConfigBase
    
    
    class FilterConfig(FilterConfigBase):
        name = 'ntlmssp'
        description = 'Extract Net-NTLM hashes for cracking purposes'
    
        categories = [
            'creds',
            'windows'
        ]
    
        pcap_filter = 'gss-api || ntlmssp'
    
        mandatory_selectors = [
            'ntlmssp'
        ]
    
        def __init__(self, *args, **kwargs):
            self.challenges = {}
            super().__init__(*args, **kwargs)
    
        def parser(self, data):
            tcp_conn = data['tcp.stream'][0]
            msg_type = int(data['ntlmssp.messagetype'][0], 16) if 'ntlmssp.messagetype' in data else 0
    
            if msg_type == 1:
                # NTLM NEGOTIATE: nothing to do
                pass
            elif msg_type == 2:
                # NTLM CHALLENGE
                self.challenges[tcp_conn] = data['ntlmssp.ntlmserverchallenge'][0].replace(':', '')
            elif msg_type == 3:
                if tcp_conn not in self.challenges:
                    self.log.error('Found an NTLM message type 3 (AUTH), but no type 2 (CHALLENGE) was received beforehand -> check in pcap if the challenge was not sent in an unsupported by tshark manner from the server, like in a Proxy-Authenticate HTTP header.')
                    return 0
    
                ntresp = data['ntlmssp.auth.ntresponse'][0].replace(':', '')
                lmresp = data['ntlmssp.auth.lmresponse'][0].replace(':', '')
                user = data['ntlmssp.auth.username'][0]
                domain = data['ntlmssp.auth.domain'][0]
                workstation = data['ntlmssp.auth.hostname'][0]
    
                ntlm_hash = ''
                if len(ntresp) == 24 * 2:
                    # NTLMv1 response
                    if domain != '':
                        ntlm_hash = f'{user}::{domain}:{lmresp}:{ntresp}:{self.challenges[tcp_conn]}'
                    else:
                        ntlm_hash = f'{user}::{workstation}:{lmresp}:{ntresp}:{self.challenges[tcp_conn]}'
                else:
                    # NTLMv2 response
                    if domain != '':
                        ntlm_hash = f'{user}::{domain}:{self.challenges[tcp_conn]}:{ntresp[:32]}:{ntresp[32:]}'
                    else:
                        ntlm_hash = f'{user}::{workstation}:{self.challenges[tcp_conn]}:{ntresp[:32]}:{ntresp[32:]}'
    
                del self.challenges[tcp_conn]
                self.output(ntlm_hash)
                return 1
    
            return 0
    

    Entwicklung

    Wenn Sie zu Sharker beitragen oder eigene Filter entwickeln möchten, können Sie eine Entwicklungsumgebung einrichten.

    root@kitploit:~
    # Clone the repository
    git clone https://github.com/synacktiv/sharker.git
    cd sharker
    
    # Create and activate a virtual environment
    python3 -m venv venv
    source venv/bin/activate
    
    # Install in editable mode
    pip install -e .
    
    # Now you can run sharker and your changes will be reflected immediately
    sharker -h
    

    Erstellen eines neuen Filters

    1. Erstellen Sie eine neue Python-Datei im Verzeichnis sharker/filters/.
    2. Erstellen Sie in dieser Datei eine Klasse, die von FilterConfigBase erbt (definiert in sharker/filters/base.py).
    3. Definieren Sie die erforderlichen Attribute (name, description, pcap_filter usw.).
    4. Implementieren Sie die Methode parser(), um die benötigten Daten zu extrahieren.
      • Rufen Sie die Methode self.output mit den auszugebenden Daten auf.
    5. Sharker erkennt und lädt Ihren neuen Filter automatisch.

    Inspiration & Referenzen

    Dieses Projekt wurde durch die Arbeit der folgenden wirklich großartigen Open-Source-Projekte inspiriert:

    • PCredz
    • CredSLayer
    • Wireshark-Captures
    Tool herunterladen