Post on 09-Oct-2020
Redes Inalámbricas
Laboratorio Seguridad
Esteban De La Fuente Rubio
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Índice de contenido 1 Introducción............................................................................................................................4
1.1 Objetivos...........................................................................................................................4 2 Tarjeta inalámbrica para auditoría..........................................................................................5 3 Captura de tráfico...................................................................................................................6
3.1 Wireshark.........................................................................................................................6 3.1.1 Captura de paquetes.................................................................................................8
3.2 Modo monitor...................................................................................................................8 3.3 Ataque ARP.....................................................................................................................9 3.4 Driftnet............................................................................................................................11 3.5 DroidSheep....................................................................................................................11 3.6 Kismet............................................................................................................................12
3.6.1 Instalación y configuración......................................................................................12 3.6.2 Uso de kismet.........................................................................................................12
3.7 Ejercicios........................................................................................................................14 4 Mecanismos de seguridad...................................................................................................15
4.1 Autenticación..................................................................................................................15 4.2 Cifrado............................................................................................................................15 4.3 WEP...............................................................................................................................15 4.4 WPA...............................................................................................................................16 4.5 Configuración en GNU/Linux.........................................................................................16 4.6 Ejercicios........................................................................................................................16
5 Atacando a WEP..................................................................................................................17 5.1 Realización del ataque utilizando aircrackng................................................................18 5.2 Ejercicios........................................................................................................................18
6 WPA2Personal....................................................................................................................19 6.1 Ejercicios........................................................................................................................19
7 WPA2Enterprise..................................................................................................................20 7.1 RADIUS..........................................................................................................................20 7.2 Funcionamiento..............................................................................................................21 7.3 Instalación FreeRADIUS................................................................................................22 7.4 Certificados para el servidor..........................................................................................22 7.5 Configuración.................................................................................................................23 7.6 Prueba de conexión.......................................................................................................24 7.7 Registro..........................................................................................................................24 7.8 Configuración Linksys WAP54G....................................................................................25 7.9 Ejercicios........................................................................................................................25
8 Portal cautivo........................................................................................................................26 8.1 CoovaChilli.....................................................................................................................26
20121114 Esteban De La Fuente Rubio 2/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
8.2 Instalación......................................................................................................................27 8.3 Iniciar automáticamente CoovaChilli.............................................................................28 8.4 Configuración.................................................................................................................29
8.4.1 Configuración red GNU/Linux.................................................................................29 8.4.2 Configuración CoovaChilli......................................................................................29 8.4.3 Instalación haserl....................................................................................................30
8.5 Ejercicios........................................................................................................................30 9 Recursos..............................................................................................................................31
20121114 Esteban De La Fuente Rubio 3/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
1 IntroducciónEl uso de tecnologías inalámbricas para las telecomunicaciones se ha masificado
enormemente en la actualidad, numerosos dispositivos hacen uso de esta para poder conectarse entre sí, controlar aparatos, videovigilancia, acceder a Internet o compartir recursos. La proliferación de estas redes en ciudades ha experimentado un aumento considerable en la última década, donde ya no son solo empresas quienes las utilizan, sino también hogares y lugares públicos que dan acceso a las mismas para, principalmente, obtener una conexión hacia Internet.
Generalmente la operación de los dispositivos inalámbricos requiere una ubicación próxima al radio que emite la señal electromagnética, sin embargo estas ondas no quedaran confinadas al espacio de una sala, oficina o edificio. El estándar IEEE 802.11 hace uso de microondas las cuales pueden atravesar paredes y escapar de los límites físicos para donde han sido pensadas.
El uso del aire como medio de transmisión, sumado al hecho que las potencias utilizadas, a pesar de ser bajas, permiten que las ondas viajen fuera de los límites físicos, permite que un usuario potencialmente pueda conectarse a la red desde fuera, o en el peor de los casos capturar tráfico y analizarlo.
Durante este laboratorio se verán riesgos, métodos de encriptación, ataques conocidos y medidas de seguridad que se pueden utilizar para proteger la red inalámbrica.
1.1 Objetivos
• Realizar escucha pasiva de paquetes cursados por una red inalámbrica desprotegida.
• Conocer tipos de autenticación y encriptación disponibles para redes inalámbricas IEEE 802.11bg
• Atacar redes inalámbricas que utilicen WEP (Wired Equivalent Privacy) para obtener la clave de la misma.
• Configuración de seguridad mediante WPA2Personal.
• Instalación y configuración de un servidor de autenticación para ser utilizado con WPA.
• Instalación y configuración de un portal cautivo para la autenticación de usuarios en una red inalámbrica.
20121114 Esteban De La Fuente Rubio 4/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
2 Tarjeta inalámbrica para auditoríaSe utilizará una tarjeta inalámbrica AIR802 USBADG2 (Imagen 1), ya que es
soportada fácilmente en GNU/Linux, se puede colocar en modo monitor, y posee un conector RSMA lo que permite añadirle una antena externa de mayor ganancia a la que trae por defecto incorporada.
Imagen 1: AIR802 USBADG2
Conocer tarjeta conectada al puerto USB (salida filtrada):
$ lsusb
Bus 001 Device 007: ID 0ace:1215 ZyDAS ZD1211B 802.11g
Instalacón del driver en Debian GNU/Linux (repositorio nonfree):
# apt-get install zd1211-firmware
Reconocimiento del kernel (salida filtrada):
$ dmesg
[13296.694286] usb 1-1: Product: USB2.0 WLAN
[13296.694292] usb 1-1: Manufacturer: ZyDAS
[13297.366155] usbcore: registered new interface driver zd1211rw
La tarjeta se encuentra disponible para su uso:
# sudo ifconfig wlan1 up
# iwconfig wlan1
Para escanear se puede utilizar
# iwlist wlan1 scan
20121114 Esteban De La Fuente Rubio 5/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
3 Captura de tráficoUna red inalámbrica sin un mecanismo de autenticación ni encriptación es el peor
escenario respecto a la seguridad, ya que:
• Cualquier usuario podría conectarse a la red y hacer un uso indiscriminado de los recursos de la misma.
• Usuarios podrían tener acceso a recursos que no están destinados a ellos.
• Usuarios malintencionados podrían analizar el tráfico cursado por la red y obtener, por ejemplo, datos personales o contraseñas.
Es en este tipo de redes, donde el tráfico circula libremente por el aire y cualquiera en el alcance de la red puede tomarlo, cuando estamos expuestos.
3.1 WiresharkWireshark, antiguamente denominado Ethereal, corresponde a una herramienta que
permite realizar análisis de los protocolos utilizados en una red de computadores. Destaca la facilidad de uso mediante su interfaz gráfica (Screenshot 1) y las grandes opciones de filtrado disponible (Screenshot 2 y Screenshot 3).
Screenshot 1: Ventana principal de Wireshark
20121114 Esteban De La Fuente Rubio 6/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Screenshot 2: Opciones de filtrado básicas
Screenshot 3: Listado completo de expresiones para filtrado
20121114 Esteban De La Fuente Rubio 7/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Instalación de la herramienta en distribuciones basadas en GNU/Linux Debian
# apt-get install wireshark
Ejecución
$ sudo wireshark
3.1.1 Captura de paquetesEl escenario propuesto corresponde a dos equipos conectados a una red inalámbrica
sin encriptación, donde el equipo A navegará por Internet utilizando el protocolo HTTP y el equipo B capturará el tráfico transmitido por el primero.
1. Abrir las interfaces disponibles para captura (Ctrl+I), verificar en las opciones que la interfaz inalámbrica tenga el modo promiscuo habilitado. Luego iniciar la captura en dicha interfaz.
2. Lo anterior comenzara a mostrar todo el tráfico capturado, ya que solo nos interesa el tráfico HTTP, aplicaremos dicho filtro a la captura.
3.2 Modo monitorTarjeta inalámbrica debe soportar el modo monitor (o promiscuo) para la escucha
efectiva de todos los paquetes cursados por el medio compartido, de otra forma solo se lograría obtener el tráfico destinado a la máquina que ejecuta el software de captura. Lo anterior debido a que si una tarjeta (ya sea inalámbrica o cableada) recibe tráfico que no esta destinada a ella, lo descarta. El modo monitor evita que este tráfico sea descartado.
Imagen 2: Captura en medio compartido
En las opciones de configuración de la interfaz en Wireshark este puede poner la tarjeta en modo promiscuo, es importante notar que hay tarjetas que no soportan este modo.
20121114 Esteban De La Fuente Rubio 8/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
3.3 Ataque ARPUn ataque a la tabla ARP (ARPSpoofing o envenenamiento ARP) consiste en enviar
paquetes ARP falsos a la red, esto con el fin de poder lograr la asociación de la IP de un nodo a la MAC del nodo atacante (generalmente), de esta forma el tráfico enviado a la IP legítica será enviado al nodo que esta haciendo la captura de paquetes.
Recordar que en un medio compartido todos los paquetes son recibidos por todos, sin embargo en una red inalámbrica con infraestructura un host inalámbrico (con modo promiscuo activado) recibirá todos los paquetes que el punto de acceso genere, no así los que genere cada uno de los otros nodos. Con este tipo de ataques, por ejemplo, el nodo B podría recibir tráfico generado por el nodo A destinado al punto de acceso.
Se definen dos tipos de ataques:
• Pasivo: escuchar el tráfico y reenviarlo al destinatario legítimo.
• Activo: escuchar y modificar el tráfico y reenviarlo al destinatario legítimo.
Se utilizarán las siguientes herramientas:
• arpspoof: para realizar un ataque ARP e interceptar los paquetes
Instalación de paquete para utilizar arpspoof y webspy
# apt-get install dsniff
Sintaxis arpspoof
arpspoof [-i interface] [-t target] host
Iniciar ataque ARP
# arpspoof -i wlan0 -t 172.16.2.39 172.16.2.1
Si ahora nos registramos en la víctima en algún sitio web veremos el tráfico que este envía (claro, siempre que pase por la puerta de enlace), obteniendo el usuario y la contraseña (Screenshot 6).
Notar que aparecen 3 paquetes capturados al menos (Screenshot 5), el paquete enviado por la víctima, el envío del paquete al host legítimo (ataque pasivo), y luego la respuesta desde la puerta de enlace al host legítimo. Este último paquete es el que se recibirá solamente sin el ataque ARP.
Si queremos visualizar los sitios que la víctima esta visitando se puede abrir el navegador Firefox (Iceweasel en Debian GNU/Linux) y luego utilizar el siguiente comando:
$ sudo webspy -i wlan0 172.16.2.39
Notar que esto abrirá las URL utilizando las IP, no el dominio, por lo cual en servidores compartidos mediante host virtuales esto no dará los resultados esperados.
20121114 Esteban De La Fuente Rubio 9/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Screenshot 4: Captura realizada gracias al ataque ARP
Screenshot 5: Paquetes capturados
Screenshot 6: Datos obtenidos, incluyendo la contraseña
20121114 Esteban De La Fuente Rubio 10/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
3.4 DriftnetDesde Wireshark se pueden exportar tramas para obtener, por ejemplo, las imágenes
descargadas por un usuario, sin embargo este es un proceso lento ya que se deben buscar los paquetes correspondientes y además exportarlas una a una.
Driftnet es una herramienta, inspirada en EtherPEG, que permite escuchar el tráfico de la red, detectar las imágenes y mostrarlas.
Instalación
# apt-get install driftnet
Uso
$ sudo driftnet -i wlan0
3.5 DroidSheepDroidSheep es una herramienta para el sistema operativo Android que permite
capturar sesiones (hijacking) creadas por otros usuarios en la red inalámbrica, utilizando ataques ARP. Para protegernos de este tipo de ataques el mismo autor provee DroidSheep Guard.
El uso de esta herramienta es muy sencillo, basta iniciar el programa y empezar a recibir datos de las sesiones creadas por otros usuarios de la red. Luego al hacer click en alguna de estas sesiones se abrirá, sin pedir autenticación, la página que visitaba el usuario legítimo.
Imagen 3: Pantalla DroidSheep
20121114 Esteban De La Fuente Rubio 11/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
3.6 KismetKismet es un sniffer, husmeador de paquetes y un sistema de detección de intrusos
para redes inalámbricas 802.11. Se mostrará lo básico para escanear redes con este.
3.6.1 Instalación y configuraciónInstalación
# apt-get install kismet
Configuración de la interfaz inalámbrica a utilizar
# /etc/kismet/kismet.conf
# [...]
source=zd1211,wlan1,zyair
# [...]
3.6.2 Uso de kismetEjecución
# kismet
La pantalla principal del programa se puede apreciar en la Screenshot 7. El programa puede ser controlado por comandos (teclas) que se introducen, en la Tabla 1 se adjuntan algunos de ellos.
Comando Descripción
Q Salir de la aplicación
s Ordenar redes inalámbricas encontradas
z Cambia a pantalla completa la vista de redes
t Marca la red inalámbrica seleccionada
i Obtener información de la red inalámbrica
g Agrupar redes seleccionadas
u Desagrupar redes seleccionadas
+ Expandir contraer grupos
a Mostrar estadísticas (interesante datos sobre el uso de los canales)
h Mostrar lista de comandos
Tabla 1: Comandos básicos
20121114 Esteban De La Fuente Rubio 12/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Screenshot 7: Pantalla principal Kismet1. Presionar “s” para menú de ordenamiento y luego “s” para ordenar por ESSID (esto
para poder utilizar el scroll y movernos entre las redes detectadas).
2. Seleccionar un ESSID.
3. Presionar “i” Para ver la información detallada de este (Screenshot 8).
Screenshot 8: Información detallada de una red
20121114 Esteban De La Fuente Rubio 13/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
3.7 Ejercicios1. ¿Por qué la ejecución de wireshark debe ser realizada usando el comando sudo?
2. ¿Se puede utilizar este mismo método para escuchar el tráfico de una red cableada? Explique.
3. Filtrar los paquetes http por aquellos destinados al host A.
4. ¿Se pueden obtener los usuarios y contraseñas enviados por el host A a un sitio detrás del punto de acceso? ¿por qué?
5. ¿Se pueden capturar paquetes enviados por el host A a un host C, desde un host B, todos en la misma red inalámbrica?
6. ¿Qué método se puede utilizar para evitar que un usuario malintencionado pueda capturar datos personales en el tráfico cursado por la red?
7. ¿Por qué aparece un paquete “TCT “Retransmission” en el ataque mostrado?
8. Utilizando DroidSheep secuestrar una sesión de alguna red social, ejemplo identica.
9. ¿Qué sucede si capturamos el tráfico de una red encriptada con WEP? ¿y de una encriptada con WPA2?
20121114 Esteban De La Fuente Rubio 14/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
4 Mecanismos de seguridadLa seguridad en redes inalámbricas implica dos procesos diferentes: autenticación y
cifrado.
4.1 AutenticaciónCorresponde al control de los accesos, o sea ¿quién puede acceder al recurso?
Mientras más fuerte sea el control de acceso, menor posibilidades tendrán usuarios no autorizados de comunicarse a través de la red inalámbrica.
Frecuentemente se pueden encontrar sistemas que utilizan el estándar IEEE 802.11 sin métodos de autenticación, para el usuario basta indicar la red a la que se desea conectar y podrá hacerlo. Lo anterior tiene el gran problema de que cualquier usuario puede hacer uso indiscriminado de la red, adicionalmente esto implicará problemas de privacidad.
Medidas de autenticación comunes:
• Listas de control de acceso por MAC (blancas o negras).
• Ocultación de SSID (Service Set ID).
• Claves de autenticación (WEP, WPA, WPA2).
4.2 CifradoPor defecto, al utilizar un sistema sin autenticación (red abierta), las redes
inalámbricas envían los datos sin utilizar ningún método de cifrado. Al utilizar la opción de una clave de autenticación, como WEP, la misma es utilizada para el proceso de cifrado, incorporando un vector de inicialización.
Actualmente WEP ha sido considerado como inseguro y no debe utilizarse, a menos que no exista ninguna otra alternativa. Métodos más potentes deben ser considerados, como WPA, o idealmente WPA2.
4.3 WEPWEP o Wired Equivalent Privacy corresponde al método original para autenticación y
cifrado propuesto por el estándar IEEE 802.11. La principal ventaja de WEP es su alta compatibilidad, los equipos que utilizan el estándar inalámbrico utilizarán al menos WEP como sistema de autenticación y cifrado. Sin embargo sus deficiencias en la generación del vector de inicialización, el largo de la contraseña y el hecho que la misma sea necesariamente compartida, entre otros, lo hace un sistema muy inseguro.
20121114 Esteban De La Fuente Rubio 15/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Algunos de los ataques realizables sobre WEP son:
• Ataques pasivos basados en el análisis de paquetes para intentar descifrar el tráfico.
• Ataques activos basados en la introducción de paquetes.
• Ataques activos basados en el ataque y engaño al punto de acceso.
• Ataques de diccionario.
4.4 WPAWPA o Wireless Protected Access se inicio a raíz de los problemas detectados en
WEP. El proceso de encriptación es similar al utilizado por WEP, sin embargo el largo tanto del vector de inicialización como el largo de las claves es mayor, lo cual hace al protocolo más resistente a ataques.
La versión WPA2, estándar IEEE 802.11i, es la versión considerada actualmente segura para redes inalámbricas, la cual posee diferentes modos de operación, destacándose el modo Personal (utilizando una clave compartida) y el modo Enterprise (utilizando un servidor de autenticación).
4.5 Configuración en GNU/LinuxConfiguración de WEP con clave hexadecimal
# iwconfig wlan1 essid “wireless.sasco.cl” mode master enc 1A2B3C4D5E
Configuración de WEP con clave ASCII
# iwconfig wlan1 essid “wireless.sasco.cl” mode master enc “s:clave”
4.6 Ejercicios1. Configurar una lista blanca de MAC para la conexión a una red inalámbrica.
2. Falsear la MAC de un equipo para coincidir con una de la lista blanca y conectar.
3. Evitar la propagación del SSID desde el radio y conectar.
4. Configurar autenticación y cifrado utilizando WEP.
5. ¿Qué otros métodos de autenticación y cifrado pueden ser utilizados?
6. ¿Cómo se configura un cliente GNU/Linux con autenticación/cifrado WEP?
7. ¿Cuál es el largo de los IV utilizados en WPA?
8. Explique una vulnerabilidad del protocolo WPA.
20121114 Esteban De La Fuente Rubio 16/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
5 Atacando a WEPEl crackeado de WEP se ha realizado mediante diferentes tipos de ataques, los cuales
se diferencian básicamente por la cantidad de datos que deben utilizar y el tiempo que demoran en la obtención de la clave.
Una de las herramientas existentes corresponde a Aircrack el cual fue creado por el francés Christophe Devine. Básicamente se divide en tres componentes, utilizadas durante las fases para obtener la clave:
• airodump: herramienta de sniffing, permite capturar los paquetes de la red inalámbrica.
• aireplay: herramienta de inyección de paquetes.
• aircrack: crackeador de claves WEP que hace uso de los datos recogidos por airodump.
El uso de esta herramienta es vía terminal, se describen a continuación los pasos para el uso de la misma, sin embargo es importante también mencionar que existe una interfaz gráfica que funciona utilizando las herramientas mencionadas denominada aircrackGUI, una captura de pantalla se adjunta en la Screenshot 9.
Screenshot 9: AircrackGUI, pantalla de airodump
20121114 Esteban De La Fuente Rubio 17/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
5.1 Realización del ataque utilizando aircrackngSe asumirá el siguiente escenario:
• ESSID: wireless.sasco.cl
• Canal: 6
• AP MAC: 00:23:69:78:18:43
• Key 1: 1324354657
Poner tarjeta inalámbrica en modo monitor
$ sudo airmon-ng start wlan1
Lo anterior creará la interfaz mon0 que será utilizada para la captura de paquetes.
Iniciar la captura de paquetes (capturando solo IVs)
$ sudo airodump-ng --write captura --ivs --channel 6 --bssid \
00:23:69:78:18:43 mon0
Una vez se hayan obtenidos suficientes paquetes (columna data), crackear contraseña
$ aircrack-ng -x captura-01.ivs
El proceso de crackeo de la contraseña WEP puede ser llevado a cabo paralelamente con la captura de paquetes. Ya que aircrackng leerá cada cierto tiempo nuevamente el archivo con la información de IVs.
En el caso que la columna de datos no se incremente, o lo haga muy lentamente, se puede recurrir a la alternativa de inyectar paquetes, esto lamentablemente no funciona con todas las tarjetas inalámbricas. En el caso de la tarjeta Zydas mostrada anteriormente, debe ser parchada para poder funcionar correctamente. El proceso de inyección de paquetes no será revisado en este laboratorio.
5.2 Ejercicios1. ¿Cómo obtener el canal de la red a la que se quiere atacar?
2. ¿Cómo obtener la dirección MAC de la red a la que se quiere atacar?
3. Describir los pasos para obtener la clave de una red WEP utilizando aircrack mediante la GUI.
20121114 Esteban De La Fuente Rubio 18/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
6 WPA2PersonalEn la configuración de WPA2Personal se utiliza una clave compartida (PSK, Pre
Shared Key). Básicamente consiste en que todos los usuarios utilizarán la misma clave para autenticación en la red inalámbrica.
El mayor problema de WPAPersonal ocurre al momento de que un empleado abandona la empresa, la única opción segura para evitar que dicho usuario vuelva a autenticarse en la red será el cambio de la contraseña. Lo anterior implicará que todos los usuarios deberán volver a autenticarse en la red inalámbrica con la nueva clave.
Además supongamos que se desea habilitar un acceso temporal a la red inalámbrica para una visita en la empresa, o un consultor externo. Este usuario deberá utilizar la misma clave que utilizan los empleados regulares. Se cae nuevamente en el problema descrito anteriormente.
6.1 Ejercicios1. Habilitar seguridad utilizando WPA2Personal.
2. Suponiendo que su jefe insiste en utilizar WPA2Personal en la empresa, pero también le indica que se requiere acceso inalámbrico a consultores externos y clientes que llegan a la empresa, además de sus empleados. ¿Qué sugeriría usted hacer para mejorar la seguridad de la red manteniendo un equilibrio con la usabilidad?
3. Si su jefe quiere utilizar WEP por compatibilidad, como le explica a él, alguien que no entiende de informática, el por que debe utilizar WPA2 y que medidas se pueden tomar frente a sus dispositivos que no soportan este protocolo.
20121114 Esteban De La Fuente Rubio 19/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
7 WPA2EnterpriseWPA2Enterprise o WPA2Corporativo hace uso de un servidor de manejo de llaves,
los usuarios ya no compartirán una clave, sino que se podrá generar para cada uno de los usuarios de la red una clave de autenticación.
Este método será la opción más segura a utilizar en la protección de una red inalámbrica, cada usuario poseerá su propia clave de acceso. Esto implicará que si un usuario se retira de la empresa bastará quitar su clave de acceso del sistema de autenticación y no tener que cambiar la clave a todos los usuarios, como ocurre usando WPA2Personal.
7.1 RADIUSRADIUS (Remote Authentication DialIn User Server), corresponde a un protocolo de
autenticación para aplicaciones de acceso a la red o movilidad IP, definido en la RFC 2865. El servidor comprueba las credenciales entregadas por el usuario y si corresponde le brinda acceso a la red inalámbrica.
Ilustración 1: Autenticación utilizando RADIUS
Se utilizará la implementación FreeRADIUS del protocolo RADIUS, el cual posee una licencia de software libre y, según su página web, es el servidor RADIUS más desarrollado y utilizado en el mundo. Se implementará sobre CentOS 6.2. Como punto de acceso inalámbrico se utilizara un equipo Linksys WAP54G.
20121114 Esteban De La Fuente Rubio 20/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
7.2 FuncionamientoEAP (Extensible Authentication Protocol) es un protocolo para utilizar autenticación en
redes computacionales, frecuentemente en redes inalámbricas. Provee mecanismos para el método de autenticación elegido, estos mecanismos son llamados métodos EAP, existiendo diferentes, tanto estándares como específicos de ciertos proveedores comerciales. En la Tabla 2 se pueden observar métodos comúnmente utilizados.
Método Descripción
PEAP Uso de usuario y contraseña
EAPTLS Utilización de certificados en el lado del cliente
Tabla 2: Algunos de los métodos utilizados en redes inalámbricas
EAP no requiere conectividad IP para operar, por lo cual su ejecución, y por ende la autenticación, se realiza previo a cualquier negociación de IP que permita al cliente navegar por la red. El proceso de autenticación se realiza intercambiando paquetes EAP con el cliente donde el resultado puede ser una autenticación exitosa o un fallo, en ambos casos se le informa al cliente de la situación resultante.
Se utilizará el método PEAP, ya que este no requiere por defecto la instalación de certificados en el lado del cliente, esto permitirá que un usuario de la red inalámbrica se pueda conectar fácilmente desde múltiples dispositivos sin tener que realizar ninguna instalación en ellos. El uso de certificados digitales mediante el método EAPTLS es considerado más seguro, sin embargo también presenta una menor usabilidad, ya que se deberán generar certificados, pasarlos al usuario cliente y que este los instale.
Imagen 4: Diagrama autenticación RADIUS
20121114 Esteban De La Fuente Rubio 21/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
7.3 Instalación FreeRADIUSInstalación de FreeRADIUS en CentOS
# yum install freeradius
El directorio de configuración de FreeRADIUS es /etc/raddb/
Iniciar servicio
# service radiusd start
Habilitar servicio al inicio
# chkconfig radiusd on
7.4 Certificados para el servidorSi bien el modo PEAP no utiliza certificados por defecto en el lado del cliente, estos
son requeridos en el lado del servidor. Lo anterior ya que el modulo PEAP para utilizar túneles TLS en el paquete EAP necesita que el módulo EAPTLS este configurado correctamente.
El directorio por defecto para los certificados se encuentra en la ruta /etc/raddb/certs, en dicha ubicación ya existen, por defecto, los archivos necesarios para el funcionamiento del servidor en el modo que se configurará. Los archivos de interés están listados en la Tabla 3, si el usuario es familiar con certificados para OpenVPN estos archivos le serán conocidos.
Archivo Descripción
ca.pem Lista de CA de confianza, se recomienda solo la CA que auto firma.
dh Utilizado para el intercambio de llaves Diffie–Hellman
random Utilizado para el intercambio de llaves Diffie–Hellman
server.pem Clave privada el servidor
Tabla 3: Archivos usados por EAPTLS
20121114 Esteban De La Fuente Rubio 22/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
7.5 ConfiguraciónEl archivo principal de configuración es /etc/raddb/radiusd.conf, se utilizará la
configuración por defecto entregada en este archivo, solo se hará el siguiente cambio para aumentar el nivel de log:
# /etc/raddb/radiusd.conf
# [...]
log {
# [...]
stripped_names = yes # registrar el nombre de usuario
auth = yes # registrar solicitudes de autenticación
# [...]
A continuación se debe especificar el método EAP a utilizar y la configuración de los clientes.
Especificar el método EAP a utilizar:
# /etc/raddb/eap.conf
# [...]
default_eap_type = peap
# [...]
La configuración de los clientes indicará aquellos equipos que pueden realizar consultas al servidor RADIUS, en este caso los puntos de acceso. A continuación se muestra la configuración para un punto de acceso, notar que se utiliza el secreto compartido “secretpassword”, el cual deberá ser cambiado por uno más seguro en un ambiente de producción.
# /etc/raddb/clients.conf
# [...]
client 172.16.2.2 {
secret = secretpassword
shortname = wap54g
nastype = other
}
20121114 Esteban De La Fuente Rubio 23/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Finalmente editar el archivo de configuración de los usuarios, en este se deberán agregar los nombres de usuarios y contraseñas que se requieren autenticar:
# /etc/raddb/users
# [...]
hunterd Auth-type := EAP, Cleartext-Password := "hunterd123"
Reply-Message := "Hola, %{User-Name}"
delaf Auth-type := EAP, Cleartext-Password := "delaf123"
Reply-Message := "Hola, %{User-Name}"
DEFAULT Auth-type := Reject
Reply-Message := "Acceso denegado"
Adicionalmente a una definición solo por usuarios, estos pueden ser eventualmente agrupados y realizar acciones por grupo de usuarios. Esto permite reducir las instrucciones que se deben escribir.
Es importante notar que en el archivo de usuarios se han definido las contraseñas de los mismos en texto plano, por lo cual se debe evitar que cualquier usuario pueda leer el archivo. Los permisos deberán ser (estos son por defecto):
-rw-r-----. 1 root radiusd 6,7K feb 23 17:04 /etc/raddb/users
Desactivar iptables (asumiendo que esta activo y no es necesario):
# service iptables stop
Reiniciar RADIUS
# service radiusd restart
20121114 Esteban De La Fuente Rubio 24/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
7.6 Configuración Linksys WAP54GEn el punto de acceso se debe definir la IP del servidor RADIUS y la clave compartida
que se utiliza para acceder a este. En la se observa la pantalla de configuración.
Screenshot 10: Configuración WAP54G para utilizar el modo Enterprise
7.7 Prueba de conexiónPara las pruebas se puede utilizar un equipo con sistema operativo Android. En este
se debe especificar el método EAP, la identidad y la contraseña. Otros campos se dejan sin especificar.
7.8 RegistroEl archivo de log puede ser encontrado en /var/log/radius/radius.log (ubicación por
defecto).
Registro en caso de autenticación exitosa:
Thu Feb 23 16:40:09 2012 : Auth: Login OK: [delaf] (from client 172.16.2.2 port 41 cli 3816d1473f11)
20121114 Esteban De La Fuente Rubio 25/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
Registro en caso de autenticación fallida:
Thu Feb 23 16:39:20 2012 : Auth: Login incorrect: [hunterd] (from client 172.16.2.2 port 41 cli 3816d1473f11)
7.9 Ejercicios1. ¿Qué problema puede tener el utilizar los archivos de certificados por defecto?
2. ¿Cuál es el largo máximo del nombre de usuario?
3. Deshabilitar al usuario hunterd y tratar de conectar, ver registro para ver que sucede.
4. ¿Cómo se crea un grupo para los usuarios y se desactivan desde este?
5. ¿Cuáles son los pasos para realizar una autenticación mediante el método EAPTLS?
6. ¿Cuál es la ventaja de utilizar AES en vez de TKIP para la encriptación?
20121114 Esteban De La Fuente Rubio 26/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
8 Portal cautivoUn portal cautivo capturará las solicitudes web que realice un cliente y presentará una
página donde el mismo podrá proveer las credenciales de autenticación necesarias para poder navegar por la red.
El portal cautivo puede ser utilizado conjuntamente con un sistema de autenticación mediante una clave como WPA2, de esta forma se puede hacer pública la clave de autenticación para que cualquier usuario que se conecte pueda tener una conexión cifrada, y se utiliza el portal cautivo para verificar que el usuario es quien se espera que sea.
Otro uso del portal cautivo puede ser simplemente el mostrar información de la red inalámbrica, política de uso o publicidad. Un mecanismo de ingresos para la red inalámbrica, pensando por ejemplo en redes comunitarias, puede ser la redirección a un portal cautivo cada cierto tiempo que el usuario lleve navegando, en dicha página el usuario debe esperar una cantidad de segundos para poder acceder a navegar nuevamente, durante ese tiempo que el usuario espera se le puede presentar publicidad la cual ayuda con la mantención de la red.
8.1 CoovaChilliCoovaChilli es un software libre de control de acceso, basado en el proyecto ChilliSpot,
y es mantenido por uno de los programadores de dicho proyecto. Provee un ambiente de portal cautivo y utiliza RADIUS para la autenticación y contabilidad.
En la Imagen 5 se puede observar a grandes rasgos como funciona la aplicación. Un cliente solicita acceso a los recursos de la red, el software CoovaChilli captura las solicitudes y se direcciona el usuario al portal cautivo para que realice el proceso de autenticación. Una vez el usuario haya entregado las credenciales correctas se le concede el acceso a los recursos, en el ejemplo a la WAN (Internet).
Imagen 5: Funcionamiento de CoovaChilli
20121114 Esteban De La Fuente Rubio 27/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
8.2 InstalaciónLa instalación de CoovaChilli en CentOS debe ser realizada a partir de las fuentes del
mismo, a continuación se muestran los pasos necesarios. La versión a utilizar es 1.2.9 y para la construcción del paquete RPM se utilizará rpmbuild.
Crear directorio para fuentes
# mkdir -p /root/rpmbuild/SOURCES
Descargar CoovaChilli
# wget http://ap.coova.org/chilli/coova-chilli-1.2.9.tar.gz
Descomprimir
# tar xzf coova-chilli-1.2.9.tar.gz
Mover archivo descargado al directorio de fuentes de rpmbuild
# mv coova-chilli-1.2.9.tar.gz /root/rpmbuild/SOURCES/
Modificar archivo SPEC
# vim /root/coova-chilli-1.2.9/distro/redhat/coova-chilli.spec
Reemplazar, líneas 69 y 70:
%{_libdir}/*.so*
%{_libdir}/python/CoovaChilliLib.py
Por:
%{_libdir}/*
%{_libdir}/python/*
El archivo descomprimido pertenece al usuario con uid 1000 y grupo con gid 1000, por lo cual al ejecutar rpmbuild se generará un error si no existe un usuario y grupo con dichos id en el sistema. Se puede cambiar el propietario y grupo de los archivos de la siguiente forma:
# chown root: coova-chilli-1.2.9/ -R
Generar paquete RPM
# rpmbuild -ba coova-chilli-1.2.9/distro/redhat/coova-chilli.spec
Lo anterior dejará en /root/rpmbuild/RPMS/x86_64 los paquetes generados
Crear grupo para CoovaChilli
# groupadd chilli
Instalación del paquete RPM creado
# rpm -ivh /root/rpmbuild/RPMS/x86_64/coova-chilli-1.2.9-1.x86_64.rpm
20121114 Esteban De La Fuente Rubio 28/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
8.3 Iniciar automáticamente CoovaChilliEl script de inicialización automática de CoovaChilli verifica si existe la herramienta
startstopdaemon (usada en sistema basados en Debian GNU/Linux), al no encontrarla se genera un error del script en CentOS y el programa no inicia. Para corregir esto se debe modificar el script de inicio de la siguiente forma:
# /etc/init.d/chilli
# [...]
# Línea 77, comentar como se muestra a continuación
# if [ "$(which start-stop-daemon)" = "" ]; then
[ -n "`pidof chilli`" ] || \
/usr/sbin/chilli -c $CONFIG --pidfile=$pidfile &
# else
# start-stop-daemon -S --pidfile=$pidfile --user=chilli \
# --exec /usr/sbin/chilli -- -c $CONFIG &
# fi
# [...]
# Línea 107, comentar como se muestra a continuación
# if [ "$(which start-stop-daemon)" != "" ]; then
# start-stop-daemon -K --pidfile=$pidfile --user=chilli \
# /usr/sbin/chilli
# fi
# [...]
Activar al inicio
# chkconfig chilli on
Iniciar servicio
# service chilli start
20121114 Esteban De La Fuente Rubio 29/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
8.4 ConfiguraciónEl directorio de configuración de CoovaChilli se encuentra en /etc/chilli, a continuación
se muestran los pasos para lograr la autenticación de usuarios a través del portal cautivo.
Se asume un equipo con dos tarjetas de red, una interfaz (eth0) conectada hacia la red externa y otra (eth1) a la interna, esta última con IP 10.0.0.1/24.
8.4.1 Configuración red GNU/LinuxSe asume que la máquina ya posee conectividad hacia la interfaz conectada hacia la
red externa. Lo que se muestra a continuación es para poner operativa la red interna.
Asignación de IP a la interfaz de red
# ifconfig eth1 10.0.0.1/24
Habilitación reenvío de paquetes
# echo 1 > /proc/sys/net/ipv4/ip_forward
Activación de enmascaramiento de la “LAN”.
# iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
8.4.2 Configuración CoovaChilliEn el archivo principal de configuración se definen las interfaces de red, las
direcciones IP y el acceso al servidor RADIUS.
# /etc/chilli/defaults
# [...]
HS_WANIF=eth0
HS_LANIF=eth1
HS_NETWORK=10.0.0.0
HS_NETMASK=255.255.255.0
HS_UAMLISTEN=10.0.0.1
La configuración del secreto compartido con RADIUS se deja por defecto, ya que se asume se utilizará el servidor FreeRADIUS configurado anteriormente, de no ser el caso se deberá modificar según corresponda en el archivo /etc/chilli/defaults.
HS_RADIUS=localhost
HS_RADSECRET=testing123
20121114 Esteban De La Fuente Rubio 30/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
8.4.3 Instalación haserlCoovaChilli utiliza haserl para servir las páginas web, el cual no viene incluido por
defecto en CentOS y no hay un paquete disponible en los repositorios para su instalación.
Descargar la última versión desde:
http://sourceforge.net/projects/haserl/files/haserldevel/0.9.27/haserl0.9.27.tar.gz/download
Descomprimir
# tar xzf haserl-0.9.27.tar.gz
Ingresar al directorio descomprimido
# cd haserl-0.9.27
La compilación de haserl requiere el paquete de desarrollo de lua.
# yum install lua-devel.x86_64
Preparar compilación
# ./configure --with-lua
Compilar
# make
Instalar
# make install
Lo anterior instalara haserl en /usr/local/bin/haserl, editar archivo wwwsh
# /etc/chilli/wwwsh
haserl=/usr/local/bin/haserl
8.5 Ejercicios1. ¿Se puede utilizar CoovaChilli para controlar el acceso de usuarios cableados a los
recursos de la red?
2. ¿Por qué la interfaz eth1 queda sin IP y aparece una nueva interfaz tun0?
3. ¿Qué cambios se deben realizar en el servidor RADIUS para permitir la autenticación de los usuarios respecto a la configuración descrita en la sección 7.5?
20121114 Esteban De La Fuente Rubio 31/32
SASCO http://sasco.cl Redes Inalámbricas Laboratorio Seguridad (licencia GFDL)
9 Recursos• http://www.reviewninja.com/2008/08/howtokismetwirelesssnifferandyour.html
• http://lobobinario.blogspot.com/2011/01/icapturasconwiresharkenunared.html
• http://blog.hackxcrack.es/2011/05/arpspoofwebspywireshark.html
• http://droidsheep.de/
• http://es.wikipedia.org/wiki/ARP_Spoofing
• http://es.wikipedia.org/wiki/Hijacking
• http://www.exparrot.com/~chris/driftnet/
• http://es.wikipedia.org/wiki/RADIUS
• http://es.wikipedia.org/wiki/Extensible_Authentication_Protocol
• http://www.smallnetbuilder.com/wireless/wirelesshowto/30210howtosettingup freeradiusforwpaawpa2enterprisepart1
• http://www.smallnetbuilder.com/content/view/30213/98/
• http://coova.org/CoovaChilli
• http://www.coova.org/CoovaChilli/DistroBuilding
• http://coova.org/node/4006
20121114 Esteban De La Fuente Rubio 32/32