# Injeção de segmento RST (Reset)

## **📋 Índice**

1. [Conceitos Fundamentais](#-conceitos-fundamentais)
2. [O que é a flag RST?](#-o-que-é-a-flag-rst)
3. [Mecanismo do Ataque](#-mecanismo-do-ataque)
4. [Técnicas de Exploração](#-técnicas-de-exploração)
5. [Cenários de Exploração Prática](#-cenários-de-exploração-prática)
6. [Detecção e Ferramentas](#-detecção-e-ferramentas)
7. [Mitigação e Prevenção](#-mitigação-e-prevenção)

***

## **🔍 Conceitos Fundamentais**

A **Injeção de Segmento RST** é um ataque cibernético que visa derrubar conexões TCP existentes entre duas partes (ex: um cliente e um servidor). O atacante envia um pacote TCP com a flag **RST (Reset)** ativada, forçando o receptor a encerrar a conexão imediatamente, pensando que a outra parte teve um erro fatal ou reiniciou.

***

## **🚩 O que é a flag RST?**

No protocolo TCP, a flag RST é usada para:

* Recusar uma tentativa de conexão em uma porta fechada.
* Encerrar uma conexão quando ocorre um erro irrecuperável.
* Interromper uma conexão sem passar pelo processo normal de encerramento (`FIN` -> `ACK`).

Quando um host recebe um pacote RST válido para uma conexão ativa, ele **libera instantaneamente todos os recursos** vinculados àquela conexão.

***

## **🏗️ Mecanismo do Ataque**

Para que o ataque seja bem-sucedido, o pacote RST injetado deve ser "convincente". O receptor só aceitará o reset se:

1. **IP e Portas:** Os IPs e portas de origem/destino coincidirem com a conexão ativa.
2. **Número de Sequência (SEQ):** O número de sequência no pacote RST deve estar dentro da janela de recepção esperada pelo alvo.

### **O Fluxo do Ataque**

```mermaid
sequenceDiagram
    participant C as Cliente (Vítima)
    participant S as Servidor (Vítima)
    participant A as Atacante (Sniffer)

    C->>S: Dados Legítimos (SEQ: 1000)
    Note over A: Sniffing do tráfego...
    A->>C: Injeção RST (SEQ: 1001, forjando IP do Servidor)
    Note over C: Recebe RST. Fecha conexão.
    C->>S: (Não envia mais nada)
    S->>S: Timeout ou erro ao tentar falar com C
```

***

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

### **1. Sniffing and Inject (Ataque Local)**

Se o atacante estiver na mesma rede (via ARP Spoofing ou monitoramento de porta), ele pode ver os números de sequência reais e injetar o RST com precisão cirúrgica.

### **2. Blind Reset Attack (Ataque Remoto)**

Se o atacante não puder ver o tráfego, ele deve adivinhar ou "brutar" o número de sequência correto. Embora difícil, ataques modernos exploram falhas em implementações de pilha TCP (como o **SACK Panic**) para facilitar a descoberta do número de sequência.

### **3. Ataque de Censura**

Muitos sistemas de censura estatal (como o "Great Firewall of China") usam injeção de pacotes RST para interromper conexões que acessam palavras-chave proibidas ou domínios bloqueados.

***

## **🚀 Cenários de Exploração Prática**

### **Cenário A: Derrubando conexões SSH com Scapy**

Usando Python e a biblioteca Scapy, um atacante pode automatizar a injeção.

```python
from scapy.all import *

def reset_connection(packet):
    if packet.haslayer(TCP) and packet[TCP].flags == 'A':
        # Cria pacote RST forjando a origem
        rst_pkt = IP(src=packet[IP].dst, dst=packet[IP].src) / \
                  TCP(sport=packet[TCP].dport, dport=packet[TCP].sport, \
                      flags="R", seq=packet[TCP].ack)
        send(rst_pkt, verbose=0)
        print(f"[*] Reset enviado para {packet[IP].src}")

# Escuta tráfego e executa a função
sniff(filter="tcp", prn=reset_connection)
```

***

## **🔍 Detecção e Ferramentas**

### **1. Wireshark / Tcpdump**

Procure por padrões de muitos pacotes RST seguidos, especialmente de IPs que estavam em uma conversa estável.

* **Filtro Wireshark:** `tcp.flags.reset == 1`

### **2. Análise de Logs do Sistema**

Logs que mostram "Connection reset by peer" de forma massiva e injustificada.

***

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

### **1. Uso de Criptografia (VPN/TLS)**

Embora o ataque RST ocorra na Camada 4 (TCP), o uso de túneis encriptados torna mais difícil para um atacante externo monitorar e injetar pacotes precisos, embora ainda seja suscetível se ele puder ver o cabeçalho TCP.

### **2. TCP MD5 Signature (RFC 2385)**

Usado principalmente em sessões BGP, onde cada pacote TCP é assinado com um hash MD5, impedindo que um atacante sem a chave secreta injete pacotes válidos.

### **3. IPS/Firewalls Inteligentes**

Firewalls que detectam padrões anômalos de pacotes RST e bloqueiam a origem ou usam validação de estado (Stateful Inspection) avançada.

***

> A injeção de RST é uma ferramenta poderosa para ataques de negação de serviço direcionados. Entender o funcionamento dos números de sequência TCP é fundamental para defender contra essa manipulação de protocolo.


---

# 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/injecao-de-segmento-rst-reset.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.
