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

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

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.
 
http.host matches "\.(php|html)"
 
#Puoi anche filtrare per numeri pari o dispari un determinato valore: 
 
string(ip.ttl) matches "[02468]$"   #Pari
 
string(ip.ttl) matches "[13579]$"   #Dispari
 

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").