TCP Control Flags
I TCP Control Flags sono bit di controllo contenuti nell'header TCP che regolano il comportamento della connessione tra due dispositivi. Servono a definire lo stato della sessione, la gestione del tra
🔹 Introduzione ai TCP Control Flags
I TCP Control Flags sono bit di controllo contenuti nell'header TCP che regolano il comportamento della connessione tra due dispositivi. Servono a definire lo stato della sessione, la gestione del traffico e il flusso dei dati.
L'header TCP include 9 flag di controllo, ciascuno con una funzione specifica.
🔹 Elenco dei TCP Control Flags
1️⃣ URG (Urgent) - Bit 5
- Indica che i dati nel pacchetto devono essere trattati come urgenti.
- Il campo Urgent Pointer nell'header TCP specifica la posizione dei dati urgenti.
- Utilizzato raramente in applicazioni moderne.
- Esempio d'uso: Trasmissione di dati critici in tempo reale, come interruzioni in telnet.
2️⃣ ACK (Acknowledgment) - Bit 4
- Conferma la ricezione di dati.
- Il campo Acknowledgment Number indica il prossimo byte atteso.
- Presente in quasi tutti i pacchetti TCP tranne il primo SYN.
- Esempio d'uso: Un client invia un pacchetto con ACK=1 per confermare la ricezione dei dati dal server.
3️⃣ PSH (Push) - Bit 3
- Richiede la consegna immediata dei dati al livello applicativo senza buffering.
- Evita ritardi di elaborazione e buffering da parte del sistema operativo.
- Esempio d'uso: Chat in tempo reale, come messaggi istantanei o VOIP.
4️⃣ RST (Reset) - Bit 2
- Termina immediatamente una connessione anomala.
- Può essere usato per respingere connessioni non valide o interrompere sessioni esistenti.
- Esempio d'uso: Se un host riceve un pacchetto per una connessione non esistente, può rispondere con un pacchetto con RST=1.
- Attacco correlato: TCP Reset Attack → Un attaccante può inviare pacchetti RST per interrompere connessioni legittime.
5️⃣ SYN (Synchronize) - Bit 1
- Utilizzato per iniziare una connessione TCP (3-way handshake).
- Il primo pacchetto di una connessione contiene SYN=1 e un numero di sequenza iniziale.
- Esempio d'uso: Un client che vuole connettersi a un server HTTP invia un pacchetto con SYN=1 alla porta 80.
- Attacco correlato: SYN Flood Attack → Un attaccante invia molte richieste SYN senza completare il handshake, esaurendo le risorse del server.
6️⃣ FIN (Finish) - Bit 0
- Indica la chiusura di una connessione TCP.
- Segna il termine della trasmissione dati da una parte della comunicazione.
- Esempio d'uso: Dopo aver completato la trasmissione di un file, un client invia un pacchetto con FIN=1 per chiudere la connessione.
🔹 Flag combinati e scenari d’uso
Alcuni flag vengono spesso usati insieme per definire specifici stati della connessione.
| Flags | Significato |
SYN | Inizio di una connessione |
SYN + ACK | Risposta del server alla richiesta di connessione |
FIN + ACK | Chiusura della connessione |
RST | Reset della connessione |
PSH + ACK | Invio immediato di dati |
URG + PSH | Invio immediato di dati urgenti |
🔹 Analisi con Wireshark
1. Filtrare i pacchetti TCP:
tcp.flags.syn == 1tcp.flags.syn == 1 && tcp.flags.ack == 0tcp.flags.rst == 1🔹 Attacchi basati sui TCP Flags
- SYN Flood: Saturazione delle connessioni con pacchetti SYN.
- RST Injection: Invio di pacchetti RST per terminare sessioni legittime.
- TCP Hijacking: Manipolazione del flag ACK per dirottare una sessione.
🔹 Conclusione
I TCP Control Flags sono fondamentali nel pentesting e nella cybersecurity. Conoscere il loro funzionamento aiuta a:
- Analizzare il traffico di rete con Wireshark o tcpdump.
- Identificare anomalie e attacchi basati su TCP.
- Proteggere le connessioni con firewall e IDS/IPS.
🚀 Prossimo passo: Genera pacchetti TCP personalizzati con Scapy per testare il comportamento dei flag!