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
sharker — Un analizzatore di catture di rete semplice, affidabile e ragionevolmente veloce. | Kitploit
Strumenti/GitHubGitHub/synacktiv/sharker
Sniffing e Analisi dei PacchettiPassword CrackingRaccolta InformazioniSicurezza WebSicurezza di ReteDigital Forensics
GitHubsynacktiv/sharker

sharker

Un analizzatore di catture di rete semplice, affidabile e ragionevolmente veloce.

Vedi Repository
3313 mesi 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

Sharker: dove finisce Wireshark, iniziamo noi

Sharker è uno strumento potente ed estensibile per estrarre dati di valore da file PCAP o da interfacce di rete live. Sfrutta la potenza di tshark per analizzare efficacemente le catture di rete e applica un sistema di filtri flessibile per individuare ed estrarre informazioni interessanti.

Caratteristiche Principali

  • Filtri Estensibili: Crea filtri basati su Python per estrarre qualsiasi dato dai pacchetti di rete.
  • Motore di Filtraggio Potente: Abilita o disabilita selettivamente filtri e categorie di filtri per ottimizzare e velocizzare le tue analisi.
  • Molteplici Fonti di Input: Analizza file .pcap, directory di catture o persino traffico di rete live da un'interfaccia.
  • Output Flessibile: Salva i risultati in file di testo organizzati, stampali sulla console o entrambi.

Requisiti

  • tshark: Il compagno da riga di comando di Wireshark è essenziale. Puoi generalmente installarlo tramite il gestore pacchetti del tuo sistema (ad es., apt-get install tshark, brew install wireshark).
  • Python 3
  • Librerie Python: Le librerie richieste sono elencate in requirements.txt e possono essere installate con pip/pipx.

Installazione

Puoi installare Sharker usando pipx (consigliato) oppure un ambiente pip e venv standard.

Usando pipx (Consigliato)

root@kitploit:~
# Installa da questo repository
pipx install git+https://github.com/synacktiv/sharker.git

# Verifica l'installazione
sharker -h

Usando pip e venv

root@kitploit:~
# Clona il repository
git clone https://github.com/synacktiv/sharker.git
cd sharker

# Crea e attiva un ambiente virtuale
python3 -m venv venv
source venv/bin/activate

# Installa Sharker
pip install .

# Verifica l'installazione
sharker -h

Utilizzo

La sintassi di base per Sharker è:

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

Opzioni Comuni

Opzioni principali

Opzioni di filtraggio

Esempi di Utilizzo

1. Analizza un singolo PCAP e salva i risultati:

root@kitploit:~
sharker my_capture.pcap

Questo eseguirà tutti i filtri tranne quelli nella categoria heavy e salverà l'output nella directory sharker_out/. I filtri nella categoria creds verranno anche stampati su stdout.

2. Applica tutti i filtri e prova ad andare il più veloce possibile:

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

Questo applicherà tutti i filtri e scriverà tutto su file, nessun risultato verrà stampato sulla console.

3. Analizza una directory di PCAP, concentrandoti sulle credenziali:

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

Questo comando elabora tutti i file PCAP nella directory specificata, ma esegue solo i filtri nella categoria creds.

4. Cattura traffico live e stampa le informazioni relative a HTTP sulla console:

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

Questo catturerà il traffico dall'interfaccia eth0, eseguirà solo i filtri della categoria http e stamperà tutti i risultati direttamente sul terminale.

5. Elenca tutti i filtri disponibili:

root@kitploit:~
sharker -L

Output dell'help

Fai clic per vedere l'output completo dell'help
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.

Il Sistema di Filtri

La potenza di Sharker deriva dai suoi filtri, situati nella directory sharker/filters/. Ogni filtro è una classe Python che definisce:

  • name: Un nome univoco per il filtro.
  • description: Una breve spiegazione di ciò che fa il filtro.
  • pcap_filter: Un filtro di visualizzazione tshark per selezionare i pacchetti rilevanti per questo filtro.
  • categories: Un elenco di categorie a cui appartiene il filtro (ad es., creds, dns, http). heavy può essere usata per filtri che corrisponderanno a molti pacchetti o eseguiranno operazioni lente.
  • mandatory_selectors e optional_selectors: Chiavi da cercare nella rappresentazione JSON del pacchetto per identificare i dati di interesse. Sharker userà questi attributi per emettere dati se nessuna funzione parser è definita nel filtro.

Per impostazione predefinita, Sharker esegue tutti i filtri tranne quelli nella categoria heavy. Puoi personalizzare questo comportamento con le opzioni -c, -nc, -f e -nf.

Fai clic per vedere l'esempio di estrazione degli hash 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

Sviluppo

Se vuoi contribuire a Sharker o sviluppare i tuoi filtri, puoi configurare un ambiente di sviluppo.

root@kitploit:~
# Clona il repository
git clone https://github.com/synacktiv/sharker.git
cd sharker

# Crea e attiva un ambiente virtuale
python3 -m venv venv
source venv/bin/activate

# Installa in modalità modificabile
pip install -e .

# Ora puoi eseguire sharker e le tue modifiche saranno applicate immediatamente
sharker -h

Creare un Nuovo Filtro

  1. Crea un nuovo file Python nella directory sharker/filters/.
  2. In quel file, crea una classe che erediti da FilterConfigBase (definita in sharker/filters/base.py).
  3. Definisci gli attributi richiesti (name, description, pcap_filter, ecc.).
  4. Implementa il metodo parser() per estrarre i dati di cui hai bisogno.
    • Chiama il metodo self.output con i dati da emettere.
  5. Sharker scoprirà e caricherà automaticamente il tuo nuovo filtro.

Ispirazione e Riferimenti

Questo progetto è stato ispirato dal lavoro dei seguenti progetti open-source davvero interessanti:

  • PCredz
  • CredSLayer
  • Wireshark captures
Scarica lo strumento
OpzioneDescrizione
-i, --interface <IFACE>Cattura traffico live da un'interfaccia di rete (ad es., eth0).
-d, --pcap-dir <DIR>Analizza tutti i file PCAP in una directory.
-o, --output-dir <DIR>Specifica la directory per i file di output (predefinita: ./sharker_out).
-m, --output-mode <MODE>Imposta la modalità di output: file, console, both o develop (predefinita: both).
-u, --uniqueEmetti solo risultati univoci.
-F, --fastConfigurazione più veloce (non influisce sulla selezione dei filtri).
-A, --allAbilita tutti i filtri, sarà più lento.
OpzioneDescrizione
-c, --categories <CATS>Un elenco separato da virgole di categorie di filtri da eseguire (ad es., creds,http).
-nc, --not-categories <CATS>Un elenco separato da virgole di categorie di filtri da escludere (ad es., heavy). Per impostazione predefinita, heavy è esclusa.
-f, --filters <FILTERS>Un elenco separato da virgole di filtri specifici da eseguire.
-nf, --not-filters <FILTERS>Un elenco separato da virgole di filtri specifici da escludere.
-L, --list-all-filtersMostra un elenco di tutti i filtri disponibili e le loro descrizioni.
-Lc, --list-all-filter-categoriesMostra un elenco di tutte le categorie di filtri disponibili.
-l, --list-filtersMostra i filtri che saranno attivi con le opzioni da riga di comando correnti.
-v, --verboseAbilita il logging dettagliato per il debug.
  • parser(): Una funzione che elabora i dati del pacchetto e restituisce le informazioni estratte.