Redes Wifi.
● ¿Qué es una red wifi?
- Una red wifi es un conjunto de equipos conectados entre sí mediante tarjetas de red inalámbricas que se comunican con “bridges” o puntos de acceso.
● Dispositivos
- Tarjetas de red.- Puntos de acceso.- Antenas.
Redes Wifi
● Topología básica:– Infraestructura
● Las comunicaciones están gestionadas por un access point o una tarjeta en modo Master.
– Ad-hoc● Las estaciones se conectan entre si.● Aumentan las colisiones -> Baja el
rendimiento.
Tarjetas de Red.
● Modos:– Master
● Modo infraestructura, la tarjeta actúa como un punto de acceso, gestiona el tráfico de la red.
● Todos los equipos “ven” al AP.● Con este modo la tarjeta (o AP) sería el
equivalente a un HUB en una red cableada.
Tarjetas de Red.
● Modos:– Managed
● Los clientes se asocian/autentifican contra un access point o tarjeta en modo Master.
● Es necesario conocer el ESSID de la red– Detectamos el ESSID entrando en modo
Monitor
Tarjetas de Red.
● Modos:– Ad-hoc
● En este modo los equipos se conectan entre si.
● Similar al crossover en redes cableadas pero permite conectar mas de 2 equipos.
● No existe un AP que gestione todo el tráfico de la red.
● La cobertura de la red depende del alcance de los equipos.
Tarjetas de Red.
● Modos:– Monitor
● La tarjeta escucha en un canal específico sin enviar ningún paquete.
● No le importan los CRC's de los paquetes.● ¡No es lo mismo que el modo promiscuo!
Tarjetas de Red.
● Uso de Wireless-tools:– iwconfig <interfaz> <opciones>
● Modo: <mode {master,managed,monitor..}>● Frecuencia: <freq {frecuencia}>● Canal: <channel {canal}>● Velocidad: <rate>● Clave: <key {s:ascii | hex }>● ... (man iwconfig)
Tarjetas de Red.
● Uso de Wireless-tools:– iwpriv <interfaz> <comando>
iwpriv ath0ath0 Available private ioctls :
wpa (000A) : set 1 int & get 0 get_wpa (000A) : set 0 & get 1 int driver_caps (0010) : set 1 int & get 0 get_driver_caps (0010) : set 0 & get 1 int maccmd (0011) : set 1 int & get 0 hide_ssid (0013) : set 1 int & get 0 get_hide_ssid (0013) : set 0 & get 1 int
Tarjetas de Red.
● Uso de Wireless-tools:– Iwlist <interfaz> <comando>
iwlist ath0 scanningath0 Scan completed : Cell 01 - Address: 00:12:D9:B3:7C:50 ESSID:"alumnos" Mode:Master Frequency:2.437 GHz (Channel 6) Quality=31/94 Signal level=-64 dBm Noise level=-95 dBm Encryption key:off
Tarjetas de Red.
● Uso de Wireless-tools:– Iwevent
● Recolecta los eventos que ocurren en la interfaz wifi.
● Cambios de SSID● Frecuencia● Canal● ...
Tarjetas de Red.
● Uso de Wireless-tools:– Iwspy
● Similar a /proc/net/wireless● Recolecta estadísticas de uno o varios AP o
de varias interfaces de red
cat /proc/net/wireless Inter-| sta-| Quality | Discarded packets | Missed | WE face | tus | link level noise | nwid crypt frag retry misc | beacon | 17 ath0: 0004 30. 191. 161. 0 0 0 1 1 0
Detección de Redes Wireless
Detección de redes Wifi
● Necesitamos...– Modo normal:
● Portátil● Tarjeta Wifi ● Antena (en caso de tener conector externo
en la tarjeta)● GPS● Sniffer (AirSnort, Kismet, NetStumbler...)
Detección de redes Wifi
● Necesitamos...– Modo Friki:
● Lo mismo de antes pero con algún añadido:
● Kismet+festival● Cascos ● Bicicleta● Mochila para el portátil
Detección de redes Wifi
● Pasos a seguir:● Primero y muy importante:
1.Salir a la calle.
2.Poner la tarjeta en modo monitor.
3.Arrancar un sniffer.
Detección de redes Wifi
● Para poner la tarjeta en modo monitor:
● Iwconfig ath0 mode monitor
– Quizás esto no funcione, entonces:● Iwpriv wlan0 monitor 1 1
– Normalmente todos los sniffer ponen la tarjeta en modo monitor automáticamente.
Detección de redes Wifi
● Sniffers:– GNU/Linux:– Airtraf - AirSnort - Kismet – Windows:– NetStumbler - AiroPeek - AirLine– MAC OS:– KisMac - MacStumbler - iStumbler– Otros:– MiniStumbler (PocketPC) - WiStumble(BSD)
Detección de redes Wifi
● Kismet
– Fácil de usar– En modo texto.
● Airtraf
– En modo texto.– Similar a iptraf.
● AirSnort
– Quizás el más sencillo de todos– Modo Gráfico
Detección de redes Wifi
● Kismet
– No funciona por defecto● Editar kismet.conf
– suiduser=username– source=cardtype,iface,name– Cardtype {madwifi_b | prism2– Orinoco }– channelhop=true
Detección de redes Wifi
● Kismet
– Shortcuts:● H – menú de ayuda● I – Info detallada de la red● S – Diferentes maneras de ordenar las redes
● D – Muestra las cadenas de datos● P – Muestra los tipos de paquetes
Detección de redes Wifi
● Kismet
Detección de redes Wifi
● AirSnort
Autentificación en redes Wifi
Autentificación en redes Wifi
● Conceptos básicos.
– ESSID ● Extended Service Set IDentifier● Nombre identificativo de la red● Es necesario conocerlo para pasar a ser un usuario “legítimo” (asociación) de la red
● Muchos administradores piensan que el ESSID es un password -> CRASO ERROR
Autentificación en redes Wifi
● Conceptos básicos.
– Beacon Frames ● Tramas que anuncian la red.● Portan el ESSID y son enviadas cada 100 milisegundos.
Autentificación en redes Wifi
● Conceptos básicos.
– Management Frames ● Tramas usadas en el proceso de autentificación.
● El cliente y el AP intercambian varios management frames en dicho proceso.
Autentificación en redes Wifi
● Tipos de autentificación:
– Open System● Autentifica a cualquier cliente que quiera autentificarse a pesar de tener cifrado WEP activado.
● ¿De risa? Pues es el default– Shared key
● Utiliza una llave que debe de ser conocida por todos los clientes para autentificarse.
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación:
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Authentication Challenge
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Authentication Challenge
Authentication Response
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Authentication Challenge
Authentication Response
Authentication Result
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Authentication Challenge
Authentication Response
Authentication Result
Authentication Challenge
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Authentication Challenge
Authentication Response
Authentication Result
Authentication Challenge
Authentication Response
Autentificación en redes Wifi:Shared key System
● Proceso de Autentificación/Asociación: Cliente Access Point
Beacon Frame Authentication Request
Authentication Challenge
Authentication Response
Authentication Result
Authentication Challenge
Authentication Response
Authentication Result
WEPWired Equivalent Privacy
Wep: Conceptos Básicos
● Nace con el objetivo de proporcionar seguridad equivalente a la de las redes cableadas
● Basado en el algoritmo RC4● Usa claves de 64,128 y 256 bits
– En realidad son 40,104 y 232 bits– 24 bits -> IV (Vector de inicialización)– Uso de checksums (CRC's)
Wep: Funcionamiento
● Basado en RC4.● Uso de llaves (realmente) de 40,104,
232 bits.● Esta llave se genera a partir de una
passphrase automáticamente.● Existe software que permite introducir
la llave manualmente.● La llave o passphrase deben conocerla
todos los clientes (!!)
Wep: Como se genera la llave
Se realiza una operación XOR sobre la passphrasecomo se ve en la figura.
M y P a s s p h r a s e4d792050617373706872617365
4d XOR 61 XOR 68 XOR 65 = 2179 XOR 73 XOR 72 = 7820 XOR 73 XOR 61 = 3250 XOR 70 XOR 73 = 53
Semilla
Wep: Como se genera la llave
La semilla es usada por el PRNG para generar 40 cadenasde 32 bits
De estas cadenas se escogerá un bit para generar 4 llaves de 40 bits.
De estas solo se utilizará una en el cifrado WEP.
Wep: Encriptación
● Encriptación de una trama:
– Se calcula un CRC de 32 bits del payload– El CRC se añade en la trama como ICV
(Integrity Check Value)
Wep: Encriptación
● Encriptación de una trama:
– Se escoge una de las 4 llaves:
Se antepone un IV a la llave escogida
Wep: Encriptación
● Encriptación de una trama:– IV = Valor de 24 bits.
– IV puede ir variando a medida que se generan tramas.
– Aunque según el standar el valor del IV también puede ser siempre CERO!!
– Aplicamos RC4 al IV+Key y conseguiremos el KeyStream.
– XOR entre KeyStream y el Payload+ICV
Wep: Encriptación
● Se utiliza el IV y la llave (KeyStream) para encriptar el Payload.
Finalmente añadimos los Headers y el IV+KeyNumbery obtenemos la trama final.
Wep: Desencriptación
● Se usa el KeyNumber enviado en claro en la trama encriptada junto con el IV
● Se antepone el IV a la llave obteniéndose así los 64,128 o 256 bits de rigor
● Se aplica RC4 al IV+Key = KeyStream
● Con este KeyStream obtendremos el plaintext final:
● Ciphertext = KeyStream XOR Payload+ICV● Plaintext = Payload+ICV● KeyStream XOR Ciphertext = Plaintext
Wep: Desencriptación
Selección de la llave:
Obtención del Plaintext:
Finalmente se recalcula el ICV
Vulnerabilidades en WEP
Vulnerabilidades en WEP
● Deficiencias en la encriptación– Características lineales del CRC
● Descubierto en la Univ. de Berkeley● Se calcula el CRC del payload● Dos graves problemas:
– El ICV no es independiente de la clave y del IV
– El CRC es lineal:– CRC(m xor k) = CRC(m) xor CRC(k)– Uso de “bit flipping”
Vulnerabilidades en WEP
● MIC independiente de la llave:
– No existe un mecanismo de chequeo dependiente de la llave (MIC)
– Conocido el plaintext de una trama es posible inyectar en la red.
Vulnerabilidades en WEP
● Tamaño del IV demasiado corto
– El tamaño del IV son 24 bits, luego– 2^24 = 16.777.216 posibles IV's– 16.777.216 tramas se generan en
pocas horas con tráfico intenso.● Si un AP envia paquetes de 1500 bytes completaría todo el espacio de 16M posibilidades en 1500*8/(11*10^6)2^24 =~ 1800 segundos (5 horas)
Vulnerabilidades en WEP
● Reutilización del IV
– WEP no utiliza el algoritmo RC4 con cuidado
● Distintos ciphertexts pueden tener el mismo IV -> ataques estadísticos
– Esto deriva en análisis estadísticos que permiten obtener la clave
Vulnerabilidades en WEP
● Reutilización del IV– Debido al corto espacio de los IV's (16M) es
probable que se intercepten dos tramas con el mismo IV
– El estándar define que cambiar el IV es opcional
– El IV es normalmente un contador que comienza desde cero y aumenta de uno en uno
● Rebotar causa reutilización de IV's● Conclusion: Un atacante con suficientes
paquetes puede descifrar ciphertext incluso sin conocer la llave.
Vulnerabilidades en WEP
● Reutilización del IV
– Supongamos Z = RC4(key,IV)● Los ciphertext son:
– C=P xor Z ; C'=P' xor Z– C xor C' =(P xor Z)xor(P' xor Z) => (P xor P') xor (Z xor Z) = (P xor P')
Si conocemos uno de los plaintexts es fácil conocer el otro estadísticamente.
Vulnerabilidades en WEP
● Ataque por fuerza bruta:
– La passphrase suelen ser caracteres ASCII escribibles por lo que el bit de más peso es siempre '0'
– Solo tendremos que buscar desde 00:00:00:00 a 7F:7F:7F:7F
– El PRNG es un generador lineal congruente por lo que sólo las semillas de 00:00:00:00 a 00:FF:FF:FF son únicas!!
Vulnerabilidades en WEP
● Ataque inductivo de Arbaugh– Se basa en características lineales del CRC
– MIC independiente de la llave
– Necesitamos conocer parte del texto cifrado -> es fácil reconocer por ejemplo un DHCPDISCOVER (en los headers) origen 0.0.0.0 destino 255.255.255.255
– Creamos un ICMP con el tamaño del texto capturado mas un byte
● Si obtenemos respuesta conocemos un parte más del keystream, sino probamos con otro (solo hay 255 posibilidades)
Vulnerabilidades en WEP
● Debilidades del algoritmo de Key Scheduling de RC4 (FMS)– IV vulnerable:
● El desarrollo de RC4 sólo afecta a bytes ya conocidos
● Resolved condition: (A,B+3,X) no es necesario desarrollar RC4 (9000 de los 16.777.216 posibles)
– Necesitamos capturar● 1500 a 400 IV's debiles● 5 a 10 millones de paquetes cifrados● 5 a 6 horas a varios días
Vulnerabilidades en WEP
● Debilidades del algoritmo de Key Scheduling de RC4 (FMS)– Esta vulnerabilidad fue publicada en 2001
– Desde entonces los fabricantes han ido modificando el firmware hasta hacerlo invulnerable
– Últimamente el FMS “Strikes back” ya que los fabricantes parecen haberse olvidado de él.
Vulnerabilidades en WEP
● Vulnerabilidades nuevas Korek Attacks:– Estadísticos
– Requieren de 300.000 a 500.000 paquetes (Muchísimos menos que los demás ataques!!)
– Se requieren muchos IV's diferentes, el resto del ataque se hace estadísticamente sobre las tramas capturadas.
– Si se intenta con pocos IV's diferentes es como la fuerza bruta.
Vulnerabilidades en WEP
● Herramientas en GNU/Linux:
– Antiguas vulnerabilidades:
● WepCrack● AirSnort
– Nuevas Vulnerabilidades (Korek):
● chopchop● AirCrack● Weplab
Vulnerabilidades en WEP
● Herramientas en GNU/Linux:
– Inyectores de paquetes:
● AirCrack: aireplay● Airpwn● AirJack
Vulnerabilidades en el Filtrado
● Saltarse los filtros basados en IP o MAC:– Utilizaremos un Sniffer para capturar la lista de
IP's o MAC's que forman la WhiteList
– Dos opciones:
– Esperar a que un cliente se desconecte– Suplantar la IP/MAC de uno de los clientes
– Cambiar la MAC:
– Ifconfig eth1 hw ether MAC– Usar macchanger
● macchanger -m MAC
Vulnerabilidades en el Filtrado
● Establecer filtros por MAC
– Iwpriv ath0 maccmd <0,1,2,3,4>● 0: open policy● 1: allow● 2: deny● 3: flush ACL● 4: kick all
-iwpriv ath0 addmac MAC
-iwpriv ath0 delmac MAC
-iwpriv ath0 kickmac MAC
Vulnerabilidades en el Filtrado
● Establecer filtros por MAC
– Iwpriv ath0 maccmd <0,1,2,3,4>● 0: open policy● 1: allow● 2: deny● 3: flush ACL● 4: kick all
-iwpriv ath0 addmac MAC
-iwpriv ath0 delmac MAC
-iwpriv ath0 kickmac MAC
Ocultar ESSID
● Descubrir ESSIDs Ocultados:– Algunos administradores entienden el ESSID
como una contraseña -> NO!!
– Los ESSID se pueden ocultar -> No emitiendo Beacon Frames (Beacon Broadcasting: Off)
– Eliminando el ESSID de los Beacon Frames
– Cuando un cliente se conecta podemos ver el ESSID en la trama PROVE REQUEST
● Podemos esperar● Desconectar a un cliente DoS
Ocultar ESSID
● FakeAP:
– Script escrito en perl – Envia Beacon Frames en diferentes
canales con ESSID falsos– Problemas: Es un cantazo
● Requisitos:– Hostap >= 31/7/2002– Módulos PERL (Getopt::Long, Time::HiRes): perl -MCPAN -e shell >install nombre::módulohttp://www.blackalchemy.to/project/fakeap/
Dos En redes Wifi
● DoS – Configurar nuestra tarjeta en modo Master
con la MAC del AP● Enviar tramas de desasociación:
while true; do iwpriv ath0 kickmac MAC; done● Ataque DoS masivo:
while true; do iwpriv ath0 maccmd 4; done
Vulnerabilidades en el Filtrado
● En resumen:
– Ocultar el ESSID– ACL's (MAC/IP)– Shared key authentication– WEP
● 64 bit● 128 bit● 256 bit
Todas Vulnerables!
Soluciones de Seguridad
● Soluciones actuales:
– Portales Cautivos– 802.1x– WPA (WEP2)– WPA2
Portales Cautivos
● Sistema de validación para clientes en nodos wireless
● Según el usuario otorga ancho de banda diferente y acceso a servicios distintos
● Basados en tokens
● Uso de http/SSL
Portales Cautivos
● Diferentes implementaciones:– NoCat Auth: http://nocat.net
– LANRoamer: http://www.lanroamer.net
– Wireless Heartbeat: http://www.river.com/tools/authhb/
– NetLogon - Linköping University
– FisrtSpot (PatronSoft): http://www.patronsoft.com/firstspot/
– WiCap (OpenBSD): http://www.geekspeed.net/wicap/
WPA
● Apareció como solución provisional a la aprobación final de 802.11i (WPA2).
● También conocido como WEP2.● Distribución dinámica de claves:
● duración limitada (TKIP).● IV más robusto:
● 48 bits, minimizando la reutilización de claves.● Técnicas de integridad y autenticación:
● MIC o Michael
WPA
● Incluye, parcialmente:– 802.1X:
● Control de Acceso por puerto.● Solo permite tráfico EAP hasta autenticación.
– EAP● Autenticación:
– Estación.– Servidor de autenticación (RADIUS).
– TKIP
– MIC● Integridad de los datos.
WPA
● TKIP (Temporal Key Integrity Protocol)– Sigue empleando RC4, pero sin compartir la
clave entre todos los clientes.
– Cambio de clave cada 10.000 paquetes aproximadamente.
– Solamente requiere una actualización de firmware.
– ¡Solución temporal! Hasta la llegada de 802.11i.
– Información sobre el estado del proyecto:● http://grouper.ieee.org/groups/802/11/Reports/tgi
_update.htm
WPA
● TKIP, Mejoras:
– Enhanced IV (EIV): ● Incremento de 32 bits en el IV, dejando un
byte (dummybyte) para evitar IVs débiles (48 bits de IV).
– TKIP Secuence Counter (TSC):● El IV como número de secuencia.● Si un IV ha sido recibido previamente, se
descarta.● Evita reply-attacks.
WPA
● Implementación:– Empresas: WPA-Enterprise.
● Servidor RADIUS.
– Usuarios Domésticos: WPA-Personal.● También conocido como WPA-PSK (Pre-
Shared Key): Clave inicial compartida para autenticación (PSK).
802.11i
● Aprobado por el IEEE y aceptado por Wi-Fi Alliance en Sept 2004.
● También conocido como WPA2.● Utiliza algoritmo AES con claves de 128
bits:– ¡Requiere nuevo hardware!
● Nuevo sistema de Integridad.– CCMP.
● Soporte para redes ad-hoc.● Compatible con WPA.
802.11i
● Requerimiento de nuevo hardware:
– Se precisa un nuevo chip en las tarjetas para la criptografía necesaria de este protocolo (AES).
– Atheros ya lo incluye en sus tarjetas
802.11i
● Características técnicas:– Mecanismos de autenticación
mejorados para el punto de acceso y para el
– cliente.– Algoritmos de manejo de claves.– Claves dinámicas.– Métodos de encriptación de datos
mejorados llamados CCMP y TKIP.
Comparativa
Referencias
● Presentaciones y trabajos de Pablo Garaizar,Irontec, PoF, Dmescal, Tony F. Díaz, Santiago Estepa y Arturo Martínez, Ricardo Galli, Cisco Networks, Lucent, Avaya, Intel.
● Todas las imágenes son propiedad de sus respectivos dueños.
Top Related