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
331il y a 3 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).
  • 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

Options de filtrage

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.

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
Télécharger l’outil
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.
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.
  • parser() : Une fonction qui traite les données du paquet et retourne les informations extraites.