tags: wireshark Filtri_Wireshark Wireshark_Filtri


Mettere apposto l’orario dei pacchetti

CTRL + ALT + 1

Filtrare per Protocollo

Per utilizzare questo filtro è sufficiente mettere il nome del protocollo della barra dei filtri:

Esempio:

 
http
 
dns
 
ssl
 
arp
 

Metodi del protocollo

 
http.request.method == "POST"
 
http.request.method == "GET"
 

Filtrare per Porta (TCP e UDP)

Per utilizzare questo filtro possiamo utilizzare la seguente sintassi:

 
tcp.port == [numero_porta] #Mostra i pacchetti TCP con porta sorgente **o** destinazione uguale a `[numero_porta]`
 
tcp.srcport == [numero_porta]  #Mostra i pacchetti TCP con porta sorgente uguale a `[numero_porta]`
 
tcp.dstport == [numero_porta]  #Mostra i pacchetti TCP con porta destinazione uguale a `[numero_porta]`
 

Questo torna utile quando non è presente un filtro per un protocollo perchè possiamo vedere quale porta utilizza e filtrare su quella porta.

Per le porte udp la sintassi è la stessa basta sostituire tcp. con udp.

**Operatori di Confronto:

** Puoi usare diversi operatori di confronto:

  • == (uguale a)
  • != (diverso da)
  • > (maggiore di)
  • < (minore di)
  • >= (maggiore o uguale a)
  • <= (minore o uguale a)

Esempi

 
tcp.port == 80   #Mostra tutti i pacchetti TCP che usano la porta 80 (HTTP).
 
udp.srcport == 53   #Mostra tutti i pacchetti TCP diretti alla porta 443 (HTTPS - porta destinazione tipica del server web).
 
tcp.port >= 1024    #Mostra tutti i pacchetti TCP che usano porte con numero maggiore o uguale a 1024 (porte "alte", spesso usate per connessioni client).
 
tcp.port != 22      #Mostra tutti i pacchetti TCP che _non_ usano la porta 22 (SSH).
 

Combinare Filtri con Operatori Logici

Puoi combinare più filtri usando operatori logici per creare filtri più complessi e specifici.

  • Operatori Logici:
  • and o &&: “E” logico. Entrambi i filtri devono essere veri per mostrare il pacchetto.
  • or o ||: “O” logico. Almeno uno dei filtri deve essere vero per mostrare il pacchetto.
  • not o !: “NON” logico. Nega il filtro successivo.

Esempi

 
http and dns oppure http && dns #Mostra i pacchetti che sono _sia_ HTTP _che_ DNS
 
tcp.port == 80 or tcp.port == 443 oppure tcp.port == 80 || tcp.port == 443 #Mostra i pacchetti TCP che usano la porta 80 _o_ la porta 443 (traffico web HTTP e HTTPS).
 
ip.src == 192.168.1.100 and tcp.dstport == 80 oppure ip.src == 192.168.1.100 && tcp.dstport == 80  #Mostra i pacchetti provenienti dall'indirizzo IP 192.168.1.100 e diretti alla porta TCP 80 (richieste HTTP da una specifica macchina)
 

Filtrare per Stringhe (Contenuto Testuale nei Pacchetti)

Wireshark ti permette di cercare stringhe di testo all’interno del contenuto dei pacchetti e filtrare i pacchetti che contengono quelle stringhe.

Sintassi (Filtri di Stringa):

Tutti seguenti filtri vanno eseguiti dopo aver inserito la parte dove vogliamo cercare quella parola come per esempio `http.host contains “moviescope”

 
string contains "[stringa_da_cercare]"  #Cerca la `[stringa_da_cercare]` in _qualsiasi parte_ del pacchetto (header, payload, dati).
 
frame contains "[stringa_da_cercare]"  #Simile a `string contains`, cerca in tutto il frame.
 
tcp contains "[stringa_da_cercare]"  #Cerca la `[stringa_da_cercare]` solo nel payload TCP.
 
http.request.uri contains "[stringa_da_cercare]"  #Cerca la `[stringa_da_cercare]` specificamente nell'URI della richiesta HTTP (utile per cercare parametri GET in URL non criptate).
 
http.request.body contains "[stringa_da_cercare]"  #Cerca la `[stringa_da_cercare]` nel corpo (body) della richiesta HTTP (utile per cercare dati POST in richieste non criptate).
 
http.response.body contains "[stringa_da_cercare]"  #Cerca la `[stringa_da_cercare]` nel corpo (body) della risposta HTTP.
 
string matches "[stringa_da_cercare]"  #Ricerca case-sensitive.
 

Esempi

 
http.host contains "moviescope" #Mostra tutto il traffico con il sito moviescope
 
http.request.uri contains "password" #Mostra le richieste HTTP la cui URI (parte dell'URL dopo il nome del dominio) contiene la stringa "password" (potrebbe indicare invio di password in chiaro in GET request - _molto insicuro!_).
 
http.request.body contains "username"  #Mostra le richieste HTTP il cui body contiene la stringa "username" (potrebbe indicare invio di username in chiaro in POST request - _insicuro_).
 
tcp contains "FLAG"   #Mostra i pacchetti TCP che contengono la stringa "FLAG" (spesso usato in CTF per cercare la "bandiera" nascosta nel traffico).
 
frame contains "error"  #Mostra i pacchetti che contengono la stringa "error" in qualsiasi parte del frame.

Filtri per Campo

 
[nome_campo] == [valore] #Filtra per pacchetti dove il campo [nome_campo] è uguale a [valore].
 
[nome_campo] != [valore] #Diverso da.
 
[nome_campo] > [valore], < [valore], >= [valore], <= [valore] #Per campi numerici, puoi usare operatori di confronto numerico.
 
[nome_campo] contains "[stringa_da_cercare]" #Cerca una stringa dentro un valore di campo testuale.
 
[nome_campo] matches "[espressione_regolare]" #Usa espressioni regolari per pattern matching più avanzato nei valori dei campi testuali.
 
exists [nome_campo] #Verifica se un campo esiste nel protocollo (utile per protocolli opzionali o campi condizionali).
 

Esempi

 
http.request.method == "POST" && http.host contains "moviescope"
 
ip.addr == 192.168.1.100 #Mostra i pacchetti con indirizzo IP sorgente o destinazione uguale a 192.168.1.100 (traffico verso o da una specifica macchina).
 
ip.src == 192.168.1.100 #Mostra i pacchetti con indirizzo IP sorgente 192.168.1.100.
 
ip.dst == 10.0.0.5  #Mostra i pacchetti con indirizzo IP destinazione 10.0.0.5.
 
tcp.flags.syn == 1 #Mostra i pacchetti TCP con il flag SYN impostato a 1 (pacchetti di SYN, inizio di una connessione TCP). Utile per vedere tentativi di connessione.
 
tcp.flags.ack == 1 #Mostra i pacchetti TCP con il flag ACK impostato a 1 (acknowledgement, conferma di ricezione dati).
 
http.request.method == "GET"  #Mostra le richieste HTTP con metodo GET.
 
http.response.code == 404 #Mostra le risposte HTTP con codice di stato 404 (Not Found). Utile per cercare pagine non trovate.
 
dns.qry.name contains "example.com"  #Mostra le query DNS che contengono "example.com" nel nome del dominio interrogato.
 
arp.opcode == 1 #Mostra le richieste ARP (opcode 1 per "request").