Ataque y defensa en
redes Wi-Fi
PLANIFICACIÓN, OBTENCIÓN, EXPLOTACIÓN
Y DEFENSA PASIVA
José García
Curso – Seguridad Informática
9 de junio 2017
Ante todo, mucha calma.
Obtener acceso al interior de una red inalámbrica no
es tan fácil como generalmente se cree.
La estrategia de aproximación indirecta
• El capitán del Ejército Británico
Sir Basil Henry Liddell Hart (31
de Octubre de 1895 – 29 de
enero de 1970) desarrolló la
Estrategia de aproximación
indirecta, que utilizaremos
como base teórica y guía de
acción a la hora de atacar y
defender una red Wi-Fi
utilizando métodos sutiles que
no alerten al objetivo y
economía de medios para
defender nuestras redes
inalámbricas.
Las ideas-fuerza son:
•Los objetivos que queremos lograr
definen la estrategia.
•La estrategia define los medios.
•Los medios definen la táctica.
•El empleo de la táctica conquista los
objetivos.
¿Qué necesitamos?
• Gran capacidad de computación.
• Conocimientos de Linux, de teoría de radiofrecuencia y del protocolo
802.11.
• Una distribución de Kali Linux.
• Tarjetas de red inalámbricas con chipset compatible con:
• Modo monitor (promiscuo).
• Inyección de paquetes.
• Antenas de alta ganancia (pueden ser direccionales).
• Inmensa paciencia.
Dos tarjetas inalámbricas compatibles
ALPHA NETWORKS
AWUS036AC – 30€
ALPHA NETWORKS
AWUS036ACH – 60€
¿Qué hemos usado?
• Un ordenador con arquitectura de 32 bits.
• Procesador Pentium 4 mononúcleo a 3,40 GHz.
• 2 Gb de RAM DDR2.
• Una tarjeta gráfica de 64 Mb.
• Un distribución de Kali Linux Live.
• Una tarjeta inalámbrica D-Link con conexión PCI y tres antenas de 2
dBi.
• En resumen, atacar unaWi-Fi está al alcance de cualquiera.
• El éxito está en la capacidad de optimizar el ataque, en conocer las
herramientas (medios) y emplearlas con éxito (táctica).
¿Cómo funciona la seguridad Wi-Fi?
• En este caso, se realizarán ataques sobre Wi-Fi con seguridad WPA y
WPA2 con cifrado AES256 (CCMP) con la finalidad de obtener la clave
de acceso a la red inalámbrica objetivo.
• BONUS: Las redes WPA + TKIP (Temporal Key Integrity Protocol) tienen
vulnerabilidades que permite obtener la clave en segundos.
• El método de ataque actual conocido a este tipo de redes es
mediante fuerza bruta, con un diccionario.
• Para ello, hay dos vías:
• Realizar con un cliente autenticaciones directas al router (si el router no limita los
intentos de autenticación).
• Obtener el handshake, lo que nos permite obtener la clave de manera off-line,
utilizando procedimientos de fuerza bruta.
Un ataque de diccionario clásico
Primer paso:
Activar modo monitor en la tarjeta
inalámbrica
# Pone la tarjeta inalámbrica en
modo monitor y elimina los
procesos problemáticos.
echo "Introduzca la interfaz a
utilizar [wlan0]:“
read INTERFAZ
airmon-ng check kill
airmon-ng start $INTERFAZ
• Lo primero, debemos terminar
los procesos que puedan causar
problemas con el modo monitor
(network-manager,
wpa_supplicant, avahi, etc.)
• Debemos poner la tarjeta
inalámbrica en modo monitor
para poder ver las tramas que
están en el aire y poder
proceder posteriormente a su
captura.
Segundo paso:
Spoofear la MAC de la tarjeta inalámbrica
# Realiza el spoof de la MAC
de la tarjeta inalámbrica.
echo "Spoofeando la MAC
de la interfaz en modo
monitor...“
MONITOR=$(ifconfig -a |
grep wlan | cut -f1 -d:)
ifconfig $MONITOR down
macchanger -r -b
$MONITOR
• Dado que una red Wi-Fi
generalmente da acceso a una
LAN con direccionamiento IPv4
privado con un servicio DHCP,
debemos spoofear la dirección
MAC de la tarjeta inalámbrica
para:
• Evitar dejar pruebas directas en la
red atacada.
• Que se detecte la MAC desde la que
estamos realizando la intrusión y
que se filtre del router.
• Para ello, apagamos la interfaz
en modo monitor, ejecutamos
Tercer paso:
Ejecutar airodump-ng para esnifar tráfico
# Ejecuta
airodump-ng
para escuchar
el AP y obtener
el handshake.
echo
• airodump-ng esnifa tráfico Wi-
Fi, en el cual veremos el
handshake. En este caso,
usamos los siguientes
modificadores:
• -w -> Nombre del fichero donde
guardaremos los paquetes
capturados.
• -o -> el tipo de fichero que
guardaremos. En este caso,
pcap, para poder usarlo
posteriormente conWireshark.
• BONUS: Esto permite, una vez
PAUSA:
Un apunte sobre WPS
• Wi-Fi Protected Setup (WPS) sirve para conectar fácilmente una
estación a unAP, sólo pulsando un botón.
• Por la manera en que se ha implementado, el número máximo de
pines es 11.000, los cuales pueden calcularse en unas horas con un
ordenador normal.
• Herramientas como reaver o pixiewps permiten atacar un AP a través
deWPS de forma bastante eficiente.
• En los routers domésticos, el PIN está grabado en el hardware, por lo
que si un atacante descubre el PIN, podrá acceder a la red inalámbrica
siempre, aunque cambiemos la clave.
• En cualquier caso, la única opción es deshabilitar WPS.
¿Y si el ESSID está oculto?
# Ejecuta wifi-honey para
crear AP falsos y poder
capturar handshakes.
# Este método, junto a
airodump, permite revelar el
ESSID de los AP.
echo “Ejecutando wifi-honey.“
wifi-honey 1 ESSID_FALSO
• Si el ESSID está oculto,
podemos forzar que sea
revelado.
• Con airodump, deautenticando
clientes o creando un AP falso,
podemos acabar viendo el
ESSID de un AP, ya que en algún
momento debe emitirse
durante el proceso de
autenticación.
• wifi-honey permite obtener
handshakes de un AP, aunque ni
siquiera estemos cerca de él,
Cuarto paso (opcional):
Deautenticar clientes
# Ejecuta mdk3 para
forzar la obtención
del handshake.
# Este método es
muy poco sutil.
echo
• mdk3 permite realizar diversas
acciones. Entre ellas, permite
enviar tramas de
deautenticación a todos los AP
al alcance de la tarjeta
inalámbrica (puede
configurarse para atacar
únicamente las estaciones
asociadas al AP objetivo,
haciendo un ataque más
silencioso y selectivo).
• Este método de ataque directo
es muy poco sutil, ya que
rompe la conexión con todas las
Quinto paso:
Comprobar la integridad del handshake
# Ejecuta wifite para
comprobar la integridad del
handshake.
echo "Comprobando
integridad del handshake...“
wifite --check
HANDSHAKE.cap -e $ESSID
-b $BSSID
• WiFite es una herramienta que
automatiza ataques a redes Wi-
Fi.
• Sin embargo, permite otras
acciones, como utilizar otras
herramientas integradas en Kali
Linux para comprobar la
integridad del handshake.
Con WiFite, tenemos más
seguridad de haber capturado
correctamente el handshake al
pasarlo por más herramientas.
• También podemos utilizar otras
Sexto paso:
Limpiar el handshake
# Ejecuta wpaclean para filtar
únicamente los paquetes del
handshake.
echo "Limpiando el handshake...“
wpaclean
HANDSHAKE_LIMPIO.cap
HANDSHAKE.cap
• wpaclean aplica un filtro al
archivo que contiene los
paquetes capturados y deja sólo
aquellos que corresponden al
handshake.
CUIDADO:
• Algunas herramientas no
admiten el handshake limpio,
por lo que no serviría para
atacar la claveWi-Fi.
Séptimo paso:
Generar un diccionario
# Ejecuta crunch para crear un
diccionario.
echo "Generando diccionario
de números telefónicos para
Madrid (España)...“
crunch 10 10 0123456789 -t
091@@@@@@@ -o
DICCIONARIO_TLF.txt
• Utilizaremos crunch para
generar un diccionario que
permita utilizarlo con aircrack-
ng para atacar la claveWi-Fi.
• En este caso, el diccionario
recogerá todos los número de
teléfono de la Comunidad de
Madrid (prefijo 91).
• El 0 (cero) delante sirve par
generar claves con una longitud
de 10 caracteres. Los routers de
XXXXX y algunas pyme utilizan
el número de teléfono del
Octavo paso (opcional):
Precomputar el diccionario
# Ejecuta genpmk para
precomputar el diccionario y
acelerar el crackeo.
echo "Precomputando claves,
esto tardará bastante
tiempo...“
genpmk -f
DICCIONARIO_TLF.txt -d
DICCIONARIO_GENPMK.txt -s
$ESSID
• Para optimizar el ataque a la
contraseña Wi-Fi, podemos
precomputar las claves que
hemos creado en el diccionario.
• El objetivo es optimizar la
velocidad de ataque a la
contraseña Wi-Fi, ya que no
será necesario realizar un hash
de la contraseña antes de
compararla, simplemente
comparará el resultados,
agilizando la crackeo.
• aircrack-ng no acepta
Noveno paso:
Atacar la clave Wi-Fi
# Ejecuta aircrack-ng para
obtener la claveWi-Fi.
echo "Realizando el crackeo
por fuerza bruta del
objetivo, espere...“
aircrack-ng -w
DICCIONARIO_TLF.txt -e
$ESSID
HANDSHAKE_LIMPIO.cap
• Utilizaremos aircrack-ng para
atacar la claveWi-Fi.
• -w -> Indica que diccionario
utilizaremos.
• -e -> Indica el ESSID de la Wi-Fi
objetivo.
• El último parámetro es el
archivo que contiene el
handshake (en este caso, el que
hemos pasado por wpaclean).
• Si nuestra planificación y la
optimización del ataque ha sido
Bonus
Crackear la clave on-the-fly
# Ejecuta aircrack-ng para
obtener la claveWi-Fi.
echo "Realizando el crackeo
on-the-fly. Esto puede ser
eterno…“
crunch 10 10 0123456789 -t
091@@@@@@@ |
aircrack-ng -w- -e $ESSID
HANDSHAKE_LIMPIO.cap
• Pasaremos las claves que vaya
generando crunch, una por una,
a través de un pipe ( | ) a
aircrack-ng para atacar la clave
Wi-Fi.
• -w- -> indica a aircrack-ng que
utilice el stdout como
“diccionario”.
• En este supuesto, crunch
generará las contraseñas
indicadas y, por cada
contraseña que genere,
aircrack-ng ejecutará el hash
Defensa pasiva
Una vez visto cómo ejecutar un ataque sobre unaWi-Fi, las medidas
pasivas de protección son:
• Habilitar como cifrado únicamenteWPA2-PSK-CCMP.
• Cambiar el ESSID y ocultar su difusión (aunque es muy fácil
obtenerlo, como hemos visto).
• Limitar el número de intentos que una estación puede tratar de
conectar a unAP.
• Poner la máxima longitud de clave posible que admita el AP,
indicando letras mayúsculas y minúsculas, números, caracteres
especiales y, si lo admite, caracteres no imprimibles.
• Generalmente, losAP domésticos admiten claves con un máximo de 16
caracteres.
¿Preguntas?

Ataque y defensa en redes Wi-Fi

  • 1.
    Ataque y defensaen redes Wi-Fi PLANIFICACIÓN, OBTENCIÓN, EXPLOTACIÓN Y DEFENSA PASIVA José García Curso – Seguridad Informática 9 de junio 2017
  • 2.
    Ante todo, muchacalma. Obtener acceso al interior de una red inalámbrica no es tan fácil como generalmente se cree.
  • 3.
    La estrategia deaproximación indirecta • El capitán del Ejército Británico Sir Basil Henry Liddell Hart (31 de Octubre de 1895 – 29 de enero de 1970) desarrolló la Estrategia de aproximación indirecta, que utilizaremos como base teórica y guía de acción a la hora de atacar y defender una red Wi-Fi utilizando métodos sutiles que no alerten al objetivo y economía de medios para defender nuestras redes inalámbricas.
  • 4.
    Las ideas-fuerza son: •Losobjetivos que queremos lograr definen la estrategia. •La estrategia define los medios. •Los medios definen la táctica. •El empleo de la táctica conquista los objetivos.
  • 5.
    ¿Qué necesitamos? • Grancapacidad de computación. • Conocimientos de Linux, de teoría de radiofrecuencia y del protocolo 802.11. • Una distribución de Kali Linux. • Tarjetas de red inalámbricas con chipset compatible con: • Modo monitor (promiscuo). • Inyección de paquetes. • Antenas de alta ganancia (pueden ser direccionales). • Inmensa paciencia.
  • 6.
    Dos tarjetas inalámbricascompatibles ALPHA NETWORKS AWUS036AC – 30€ ALPHA NETWORKS AWUS036ACH – 60€
  • 7.
    ¿Qué hemos usado? •Un ordenador con arquitectura de 32 bits. • Procesador Pentium 4 mononúcleo a 3,40 GHz. • 2 Gb de RAM DDR2. • Una tarjeta gráfica de 64 Mb. • Un distribución de Kali Linux Live. • Una tarjeta inalámbrica D-Link con conexión PCI y tres antenas de 2 dBi. • En resumen, atacar unaWi-Fi está al alcance de cualquiera. • El éxito está en la capacidad de optimizar el ataque, en conocer las herramientas (medios) y emplearlas con éxito (táctica).
  • 8.
    ¿Cómo funciona laseguridad Wi-Fi? • En este caso, se realizarán ataques sobre Wi-Fi con seguridad WPA y WPA2 con cifrado AES256 (CCMP) con la finalidad de obtener la clave de acceso a la red inalámbrica objetivo. • BONUS: Las redes WPA + TKIP (Temporal Key Integrity Protocol) tienen vulnerabilidades que permite obtener la clave en segundos. • El método de ataque actual conocido a este tipo de redes es mediante fuerza bruta, con un diccionario. • Para ello, hay dos vías: • Realizar con un cliente autenticaciones directas al router (si el router no limita los intentos de autenticación). • Obtener el handshake, lo que nos permite obtener la clave de manera off-line, utilizando procedimientos de fuerza bruta.
  • 9.
    Un ataque dediccionario clásico
  • 11.
    Primer paso: Activar modomonitor en la tarjeta inalámbrica # Pone la tarjeta inalámbrica en modo monitor y elimina los procesos problemáticos. echo "Introduzca la interfaz a utilizar [wlan0]:“ read INTERFAZ airmon-ng check kill airmon-ng start $INTERFAZ • Lo primero, debemos terminar los procesos que puedan causar problemas con el modo monitor (network-manager, wpa_supplicant, avahi, etc.) • Debemos poner la tarjeta inalámbrica en modo monitor para poder ver las tramas que están en el aire y poder proceder posteriormente a su captura.
  • 13.
    Segundo paso: Spoofear laMAC de la tarjeta inalámbrica # Realiza el spoof de la MAC de la tarjeta inalámbrica. echo "Spoofeando la MAC de la interfaz en modo monitor...“ MONITOR=$(ifconfig -a | grep wlan | cut -f1 -d:) ifconfig $MONITOR down macchanger -r -b $MONITOR • Dado que una red Wi-Fi generalmente da acceso a una LAN con direccionamiento IPv4 privado con un servicio DHCP, debemos spoofear la dirección MAC de la tarjeta inalámbrica para: • Evitar dejar pruebas directas en la red atacada. • Que se detecte la MAC desde la que estamos realizando la intrusión y que se filtre del router. • Para ello, apagamos la interfaz en modo monitor, ejecutamos
  • 16.
    Tercer paso: Ejecutar airodump-ngpara esnifar tráfico # Ejecuta airodump-ng para escuchar el AP y obtener el handshake. echo • airodump-ng esnifa tráfico Wi- Fi, en el cual veremos el handshake. En este caso, usamos los siguientes modificadores: • -w -> Nombre del fichero donde guardaremos los paquetes capturados. • -o -> el tipo de fichero que guardaremos. En este caso, pcap, para poder usarlo posteriormente conWireshark. • BONUS: Esto permite, una vez
  • 20.
    PAUSA: Un apunte sobreWPS • Wi-Fi Protected Setup (WPS) sirve para conectar fácilmente una estación a unAP, sólo pulsando un botón. • Por la manera en que se ha implementado, el número máximo de pines es 11.000, los cuales pueden calcularse en unas horas con un ordenador normal. • Herramientas como reaver o pixiewps permiten atacar un AP a través deWPS de forma bastante eficiente. • En los routers domésticos, el PIN está grabado en el hardware, por lo que si un atacante descubre el PIN, podrá acceder a la red inalámbrica siempre, aunque cambiemos la clave. • En cualquier caso, la única opción es deshabilitar WPS.
  • 21.
    ¿Y si elESSID está oculto? # Ejecuta wifi-honey para crear AP falsos y poder capturar handshakes. # Este método, junto a airodump, permite revelar el ESSID de los AP. echo “Ejecutando wifi-honey.“ wifi-honey 1 ESSID_FALSO • Si el ESSID está oculto, podemos forzar que sea revelado. • Con airodump, deautenticando clientes o creando un AP falso, podemos acabar viendo el ESSID de un AP, ya que en algún momento debe emitirse durante el proceso de autenticación. • wifi-honey permite obtener handshakes de un AP, aunque ni siquiera estemos cerca de él,
  • 26.
    Cuarto paso (opcional): Deautenticarclientes # Ejecuta mdk3 para forzar la obtención del handshake. # Este método es muy poco sutil. echo • mdk3 permite realizar diversas acciones. Entre ellas, permite enviar tramas de deautenticación a todos los AP al alcance de la tarjeta inalámbrica (puede configurarse para atacar únicamente las estaciones asociadas al AP objetivo, haciendo un ataque más silencioso y selectivo). • Este método de ataque directo es muy poco sutil, ya que rompe la conexión con todas las
  • 28.
    Quinto paso: Comprobar laintegridad del handshake # Ejecuta wifite para comprobar la integridad del handshake. echo "Comprobando integridad del handshake...“ wifite --check HANDSHAKE.cap -e $ESSID -b $BSSID • WiFite es una herramienta que automatiza ataques a redes Wi- Fi. • Sin embargo, permite otras acciones, como utilizar otras herramientas integradas en Kali Linux para comprobar la integridad del handshake. Con WiFite, tenemos más seguridad de haber capturado correctamente el handshake al pasarlo por más herramientas. • También podemos utilizar otras
  • 31.
    Sexto paso: Limpiar elhandshake # Ejecuta wpaclean para filtar únicamente los paquetes del handshake. echo "Limpiando el handshake...“ wpaclean HANDSHAKE_LIMPIO.cap HANDSHAKE.cap • wpaclean aplica un filtro al archivo que contiene los paquetes capturados y deja sólo aquellos que corresponden al handshake. CUIDADO: • Algunas herramientas no admiten el handshake limpio, por lo que no serviría para atacar la claveWi-Fi.
  • 35.
    Séptimo paso: Generar undiccionario # Ejecuta crunch para crear un diccionario. echo "Generando diccionario de números telefónicos para Madrid (España)...“ crunch 10 10 0123456789 -t 091@@@@@@@ -o DICCIONARIO_TLF.txt • Utilizaremos crunch para generar un diccionario que permita utilizarlo con aircrack- ng para atacar la claveWi-Fi. • En este caso, el diccionario recogerá todos los número de teléfono de la Comunidad de Madrid (prefijo 91). • El 0 (cero) delante sirve par generar claves con una longitud de 10 caracteres. Los routers de XXXXX y algunas pyme utilizan el número de teléfono del
  • 37.
    Octavo paso (opcional): Precomputarel diccionario # Ejecuta genpmk para precomputar el diccionario y acelerar el crackeo. echo "Precomputando claves, esto tardará bastante tiempo...“ genpmk -f DICCIONARIO_TLF.txt -d DICCIONARIO_GENPMK.txt -s $ESSID • Para optimizar el ataque a la contraseña Wi-Fi, podemos precomputar las claves que hemos creado en el diccionario. • El objetivo es optimizar la velocidad de ataque a la contraseña Wi-Fi, ya que no será necesario realizar un hash de la contraseña antes de compararla, simplemente comparará el resultados, agilizando la crackeo. • aircrack-ng no acepta
  • 41.
    Noveno paso: Atacar laclave Wi-Fi # Ejecuta aircrack-ng para obtener la claveWi-Fi. echo "Realizando el crackeo por fuerza bruta del objetivo, espere...“ aircrack-ng -w DICCIONARIO_TLF.txt -e $ESSID HANDSHAKE_LIMPIO.cap • Utilizaremos aircrack-ng para atacar la claveWi-Fi. • -w -> Indica que diccionario utilizaremos. • -e -> Indica el ESSID de la Wi-Fi objetivo. • El último parámetro es el archivo que contiene el handshake (en este caso, el que hemos pasado por wpaclean). • Si nuestra planificación y la optimización del ataque ha sido
  • 43.
    Bonus Crackear la claveon-the-fly # Ejecuta aircrack-ng para obtener la claveWi-Fi. echo "Realizando el crackeo on-the-fly. Esto puede ser eterno…“ crunch 10 10 0123456789 -t 091@@@@@@@ | aircrack-ng -w- -e $ESSID HANDSHAKE_LIMPIO.cap • Pasaremos las claves que vaya generando crunch, una por una, a través de un pipe ( | ) a aircrack-ng para atacar la clave Wi-Fi. • -w- -> indica a aircrack-ng que utilice el stdout como “diccionario”. • En este supuesto, crunch generará las contraseñas indicadas y, por cada contraseña que genere, aircrack-ng ejecutará el hash
  • 46.
    Defensa pasiva Una vezvisto cómo ejecutar un ataque sobre unaWi-Fi, las medidas pasivas de protección son: • Habilitar como cifrado únicamenteWPA2-PSK-CCMP. • Cambiar el ESSID y ocultar su difusión (aunque es muy fácil obtenerlo, como hemos visto). • Limitar el número de intentos que una estación puede tratar de conectar a unAP. • Poner la máxima longitud de clave posible que admita el AP, indicando letras mayúsculas y minúsculas, números, caracteres especiales y, si lo admite, caracteres no imprimibles. • Generalmente, losAP domésticos admiten claves con un máximo de 16 caracteres.
  • 47.