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
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
33153 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

    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.

    Opzioni di filtraggio

    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.

    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.
    • parser(): Una funzione che elabora i dati del pacchetto e restituisce le informazioni estratte.

    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