Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sharker — Un analyseur de capture réseau simple, fiable et raisonnablement rapide. | Kitploit
Outils/GitHubGitHub/synacktiv/sharker
Sniffing et Analyse de PaquetsCassage de Mots de PasseCollecte d'InformationsSécurité WebSécurité RéseauCriminalistique Numérique
GitHubsynacktiv/sharker

sharker

Un analyseur de capture réseau simple, fiable et raisonnablement rapide.

Voir le dépôt
3317il y a 4 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Sharker : là où Wireshark s'arrête, nous commençons

Sharker est un outil puissant et extensible pour extraire des données précieuses de fichiers PCAP ou d'interfaces en direct. Il exploite la puissance de tshark pour analyser efficacement les captures réseau et applique un système de filtrage flexible pour identifier et extraire des informations intéressantes.

Fonctionnalités clés

  • Filtrage extensible : Créez des filtres basés sur Python pour extraire n'importe quelle donnée des paquets réseau.
  • Moteur de filtrage puissant : Activez ou désactivez sélectivement des filtres et des catégories de filtres pour affiner et accélérer votre analyse.
  • Sources d'entrée multiples : Analysez des fichiers .pcap, des répertoires de captures, ou même le trafic réseau en direct depuis une interface.
  • Sortie flexible : Enregistrez les résultats dans des fichiers texte organisés, affichez-les sur la console, ou les deux.

Prérequis

  • tshark : Le compagnon en ligne de commande de Wireshark est essentiel. Vous pouvez généralement l'installer via le gestionnaire de paquets de votre système (par exemple, apt-get install tshark, brew install wireshark).
Télécharger l’outil
  • Python 3
  • Bibliothèques Python : Les bibliothèques requises sont listées dans requirements.txt et peuvent être installées avec pip/pipx.
  • Installation

    Vous pouvez installer Sharker avec pipx (recommandé) ou un environnement standard pip et venv.

    Utilisation de pipx (recommandé)

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

    Utilisation de pip et 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
    

    Utilisation

    La syntaxe de base pour Sharker est :

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

    Options courantes

    Options principales

    OptionDescription
    -i, --interface <IFACE>Capturez le trafic en direct depuis une interface réseau (par exemple, eth0).
    -d, --pcap-dir <DIR>Analysez tous les fichiers PCAP d'un répertoire.
    -o, --output-dir <DIR>Spécifiez le répertoire pour les fichiers de sortie (défaut : ./sharker_out).
    -m, --output-mode <MODE>Définissez le mode de sortie : file, console, both ou develop (défaut : both).
    -u, --uniqueN'affichez que les résultats uniques.
    -F, --fastConfiguration la plus rapide (n'affecte pas la sélection des filtres).
    -A, --allActivez tous les filtres, sera plus lent.

    Options de filtrage

    OptionDescription
    -c, --categories <CATS>Liste de catégories de filtres séparées par des virgules à exécuter (par exemple, creds,http).
    -nc, --not-categories <CATS>Liste de catégories de filtres séparées par des virgules à exclure (par exemple, heavy). Par défaut, heavy est exclu.
    -f, --filters <FILTERS>Liste de filtres spécifiques séparés par des virgules à exécuter.
    -nf, --not-filters <FILTERS>Liste de filtres spécifiques séparés par des virgules à exclure.
    -L, --list-all-filtersAffichez la liste de tous les filtres disponibles et leurs descriptions.
    -Lc, --list-all-filter-categoriesAffichez la liste de toutes les catégories de filtres disponibles.
    -l, --list-filtersAffichez les filtres qui seront actifs avec les options de ligne de commande actuelles.
    -v, --verboseActivez la journalisation détaillée pour le débogage.

    Exemples d'utilisation

    1. Analysez un seul PCAP et enregistrez les résultats :

    root@kitploit:~
    sharker my_capture.pcap
    

    Cela exécutera tous les filtres sauf ceux de la catégorie heavy et enregistrera la sortie dans le répertoire sharker_out/. Les filtres de la catégorie creds seront également affichés sur stdout.

    2. Appliquez tous les filtres et essayez d'aller aussi vite que possible :

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

    Cela appliquera tous les filtres et écrira tout dans des fichiers, aucun résultat ne sera affiché sur la console.

    3. Analysez un répertoire de PCAP en vous concentrant sur les identifiants :

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

    Cette commande traite tous les fichiers PCAP du répertoire spécifié, mais n'exécute que les filtres de la catégorie creds.

    4. Capturez le trafic en direct et affichez les informations liées à HTTP sur la console :

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

    Cela capturera le trafic de l'interface eth0, exécutera uniquement les filtres de la catégorie http, et affichera tous les résultats directement dans le terminal.

    5. Listez tous les filtres disponibles :

    root@kitploit:~
    sharker -L
    

    Sortie d'aide

    Cliquez pour voir la sortie d'aide complète
    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.
    

    Le système de filtres

    La puissance de Sharker provient de ses filtres, situés dans le répertoire sharker/filters/. Chaque filtre est une classe Python qui définit :

    • name : Un nom unique pour le filtre.
    • description : Une brève explication de ce que fait le filtre.
    • pcap_filter : Un filtre d'affichage tshark pour sélectionner les paquets pertinents pour ce filtre.
    • categories : Une liste de catégories auxquelles le filtre appartient (par exemple, creds, dns, http). heavy peut être utilisé pour les filtres qui correspondent à beaucoup de paquets ou effectuent des opérations lentes.
    • mandatory_selectors et optional_selectors : Clés à rechercher dans la représentation JSON du paquet pour identifier les données d'intérêt. Sharker utilisera ces attributs pour sortir les données si aucune fonction parser n'est définie dans le filtre.
    • parser() : Une fonction qui traite les données du paquet et retourne les informations extraites.

    Par défaut, Sharker exécute tous les filtres sauf ceux de la catégorie heavy. Vous pouvez personnaliser ce comportement avec les options -c, -nc, -f et -nf.

    Cliquez pour voir l'exemple d'extraction de hachages NTLM
    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
    

    Développement

    Si vous souhaitez contribuer à Sharker ou développer vos propres filtres, vous pouvez configurer un environnement de développement.

    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
    

    Créer un nouveau filtre

    1. Créez un nouveau fichier Python dans le répertoire sharker/filters/.
    2. Dans ce fichier, créez une classe qui hérite de FilterConfigBase (définie dans sharker/filters/base.py).
    3. Définissez les attributs requis (name, description, pcap_filter, etc.).
    4. Implémentez la méthode parser() pour extraire les données dont vous avez besoin.
      • Appelez la méthode self.output avec les données à sortir.
    5. Sharker découvrira et chargera automatiquement votre nouveau filtre.

    Inspiration & références

    Ce projet s'est inspiré du travail des très bons projets open-source suivants :

    • PCredz
    • CredSLayer
    • Captures Wireshark