# SSL Stripping

## **📋 Índice**

1. [Conceitos Fundamentais](#-conceitos-fundamentais)
2. [O que é SSL Stripping?](#-o-que-é-ssl-stripping)
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**

O **SSL Stripping**, também conhecido como ataque de **Downgrade HTTP**, é uma técnica que força um navegador a se comunicar com um servidor via **HTTP** (sem criptografia) mesmo quando o servidor suporta ou exige **HTTPS**. Isso permite que um atacante em uma posição de Man-in-the-Middle (MitM) intercepte senhas, cookies e dados sensíveis em texto claro.

***

## **❓ O que é SSL Stripping?**

Muitos sites redirecionam o tráfego HTTP para HTTPS. O SSL Stripping atua nesse redirecionamento:

1. O usuário tenta acessar `http://banco.com`.
2. O servidor responde com um redirecionamento (301/302) para `https://banco.com`.
3. O atacante intercepta esse redirecionamento e fornece à vítima a versão `http://banco.com`, enquanto ele próprio mantém a conexão HTTPS com o servidor real.

Para a vítima, o site parece normal, mas o cadeado de segurança na barra de endereços está ausente (ou substituído por um favicon falso de cadeado).

***

## **🏗️ Mecanismo do Ataque**

```mermaid
graph TD
    V[Vítima] -- HTTP Request --> A[Atacante - MitM]
    A -- HTTPS Request --> S[Servidor Real]
    S -- HTTPS Response --> A
    A -- Modifica links HTTPS para HTTP --> A
    A -- HTTP Response --> V
```

***

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

### **1. ARP Spoofing + SSLStrip**

O atacante se coloca entre a vítima e o roteador e usa a ferramenta `sslstrip` (criada por Moxie Marlinspike).

```bash
# Habilitar encaminhamento de IP
echo 1 > /proc/sys/net/ipv4/ip_forward

# Redirecionar tráfego da porta 80 para a porta do sslstrip (ex: 10000)
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 10000

# Rodar o sslstrip
sslstrip -l 10000
```

### **2. Bettercap (A ferramenta moderna)**

O `bettercap` integra todas as fases do ataque (ARP Spoofing, DNS Spoofing e SSL Stripping) em uma única ferramenta.

```bash
# No bettercap
set http.proxy.sslstrip true
http.proxy on
arp.spoof on
```

***

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

### **Cenário A: Redes Wi-Fi Públicas**

Atacantes configuram um "Evil Twin" (Wi-Fi falso) e realizam SSL Stripping em todos os usuários conectados para capturar credenciais de redes sociais e e-mails.

### **Cenário B: Substituição de Favicon**

Alguns scripts de SSL Stripping substituem o favicon do site por um ícone de cadeado verde para enganar usuários desatentos que procuram por esse sinal visual de segurança.

***

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

### **1. Observação da URL**

A forma mais simples de detectar é notar que o site está rodando em `http://` em vez de `https://`.

### **2. Wireshark**

Monitorar tráfego HTTP (porta 80) contendo dados sensíveis como `POST` requests com campos `password` ou `cookie`.

***

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

### **1. HSTS (HTTP Strict Transport Security)**

Esta é a defesa definitiva. O servidor envia um cabeçalho que instrui o navegador a **nunca** usar HTTP para aquele domínio.

```
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
```

Mesmo que o atacante tente forçar o HTTP, o navegador recusará a conexão.

### **2. HSTS Preload List**

Os navegadores modernos (Chrome, Firefox) vêm com uma lista pré-carregada de sites que **precisam** ser HTTPS desde o primeiro acesso. Isso evita o ataque mesmo na primeira visita do usuário.

### **3. Cookies "Secure" e "HttpOnly"**

Garantir que os cookies de sessão tenham a flag `Secure`, o que impede que eles sejam enviados através de uma conexão HTTP não criptografada.

***

> O SSL Stripping é um ataque de engenharia social e manipulação de rede. Com a adoção massiva do **HSTS**, ele se tornou muito menos eficaz em sites populares, mas continua perigoso em aplicações internas e sistemas legados.


---

# 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/ssl-stripping.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.
