# WPA2-PSK / Red personal

En las redes personales cuando se realiza la autenticación contra el punto de acceso, el cliente envía 4 paquetes para realizar la conexión contra el punto de acceso.

Estos paquetes pueden ser capturados y posteriormente realizar un proceso de *cracking* para obtener la contraseña. Si la contraseña es débil, se encuentra en los diccionarios utilizados para el ataque o se realiza un ataque de fuerza bruta con la suficiente capacidad de cómputo, sería posible obtener la contraseña de acceso a la red.

Para poder capturar los paquetes de conexión, sería necesario que el dispositivo utilizado para las pruebas se encuentre lo más cercano posible al cliente/dispositivo víctima y punto de acceso más cercano, de forma que podamos interceptarlos "al vuelo" cuando se realice la conexión.

Esto se puede realizar en varias condiciones:

* Sin deautenticación:
  * El cliente/dispositivo acaba de encenderse y se quiere conectar.
  * El cliente/dispositivo acaba de entrar al espacio físico donde nos encontramos con la máquina virtual a la escucha.
* Con deautenticación:
  * Obligando a deautenticarse al cliente/dispositivo objetivo de forma que se fuerce un intento de conexión automático tras la desconexión.

Los dos primeros casos no son invasivos, ya que simplemente se capturaría el intento de conexión inicial al conectarse el dispositivo.&#x20;

En el tercer caso sería invasivo ya que se forzaría la desconexión del dispositivo. No obstante, sería un tiempo de desconexión ínfimo que sería casi transparente al usuario víctima, similar a cuando se pierde la conexión de forma legítima durante "un segundo".

## <mark style="color:red;">Captura de handshake / 4-way handshake</mark>

{% hint style="info" %}
Consiste en capturar los paquetes enviados durante el handshake para posteriormente intentar crackear la contraseña.
{% endhint %}

Según las casuísticas y la cercanía del AP, se pude realizar de dos formas:

* Con el AP legítimo.
* Sin AP legítimo.&#x20;

Antes de nada habrá que identificar la MAC y canal de los APs objetivo. Para ello se realiza una captura básica de paquetes:

```bash
airodump-ng --write capture wlan0
```

Lo ideal será capturar paquetes de los APs que cuenten con mayor cantidad de clientes conectados, para ello se puede observar por ejemplo la cantidad de datos enviados, lo que indicará un mayor uso de la red.

### Sin deautenticación

Los mejores momentos para capturar *handshakes* sin deautenticación son aquellos en los cuales las personas acceden al espacio donde nos encontramos (o se encuentre el dispositivo utilizado durante las pruebas). Por ejemplo:

* Primeras horas del día durante la entrada a la oficina.
* Acceso a espacios de reuniones.
* Vuelta de la comida.

Para realizar la captura de paquetes se utiliza airodump, indicando el ESSID objetivo, las bandas utilizadas (por ejemplo, abg, que engloba las de 2,4Ghz y 5Ghz) y el fichero PCAP donde se guardará la información:

```bash
IFACE=wlan0
ESSID=test
PCAP=capture-$ESSID
airodump-ng --band abg --essid-regex $ESSID --write $PCAP $IFACE
```

Se espera hasta que se capture un *handshake*, cuando esto ocurra, arriba a la derecha aparecerá un mensaje "`[ WPA handshake: XX:XX:XX:XX:XX:XX ]`".

Para comprobar si se ha capturado el handshake:

```bash
aircrack-ng $PCAP
```

### Con deautenticación

Para capturar un handshake deautenticando un cliente se utilizará la herramienta aireplay-ng mientras se capturan *handshakes* como en la sección [#sin-deautenticacion](#sin-deautenticacion "mention").

```bash
IFACE=wlan0
ESSID=test
PCAP=capture-$ESSID
airodump-ng --essid-regex $ESSID --write $PCAP $IFACE
```

Según la agresividad con la que se quiera realizar los argumentos variarán, pero para realizar una deautenticación de 4 peticiones, que suele ser ínfima de cara al usuario, se puede realizar lo siguiente:

<pre class="language-bash"><code class="lang-bash"><strong>IFACE=wlan0
</strong>BSSID=11:22:33:44:55:66
STATION=66:55:44:33:22:11
aireplay-ng --deauth 4 -a $BSSID -c $STATION $IFACE
</code></pre>

Y se repite esto contra el mismo cliente u otros clientes hasta conseguir un handshake.

{% hint style="warning" %}
Mientras se realiza el ataque con aireplay-ng se estará forzando al cliente a desconectarse de la red, por lo que se le "denegará el servicio". Si se realiza de forma puntual no debería causar mayor problema que el similar a una simple desconexión puntual de la red de forma legítima, pero si se realiza de forma continuada se le impedirá al usuario acceder a la red, con el impacto que conlleva.
{% endhint %}

Recuerda asegurarte de que:

* La tarjeta se encuentra en modo monitor.
* La tarjeta se encuentra en el mismo canal que el punto de acceso.
* Estás físicamente cerca del punto de acceso.

## <mark style="color:red;">Comprobación de handshake capturado</mark>

Luego para comprobar que se ha capturado el *handshake*:

* aircrack-ng:

```bash
aircrack-ng $PCAP
```

* wireshark: Se abre el fichero PCAP y se usa el filtro "eapol" para ver los paquetes capturados.

## <mark style="color:red;">Creación de un AP falso / Fake AP</mark>

```bash
IFACE=wlan0
CH=120
BSSID=11:22:33:44:55:66
ESSID=testwifi
airebase-ng -a $BSSID --essid $ESSID -c $CH $IFACE
```


---

# 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://www.xtormin.com/pentesting-en-infraestructuras/redes-wi-fi/wpa2-psk-red-personal.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.
