Páginas

Mostrando entradas con la etiqueta WiFi. Mostrar todas las entradas
Mostrando entradas con la etiqueta WiFi. Mostrar todas las entradas

15 agosto, 2018

Seguridad en redes Wifi: Fuerza bruta al sistema WPA (Wi-Fi Protected Access)

Actualmente ya hay suficiente información sobre este tipo de técnicas de ataque para comprometer al seguridad de redes WPA. Recientemente he tenido que realizar una auditoría a redes Wi-Fi y revisando entradas del blog aún no había comentado nada sobre esto por lo que a modo de guía comentaré el procedimiento habitual en una conocido y funcional ataque de deautenticación (Wi-Fi deauth attack) donde habrá que desconectar a un cliente previamente conectado a la red que vamos a realizar el ataque, capturar el WPA handshake y finalmente aplicar fuerza bruta al fichero de captura de tráfico .cap obtenido.

A día de hoy pocas redes inalámbricas están operando bajo el sistema de protección WEP (Wired Equivalent Privacy) o el estándar "IEEE 802.11" debido a las debilidades que este mecanismo de protección presenta. 

En la actualidad la mayoría ya están configuradas con WPA (Wi-Fi Protected Access) o el estándar "IEEE 802.11i" la cual mejora sustancialmente su seguridad respecto a WEB, aunque igualmente sigue siendo igual de susceptible a ataques de fuerza bruta y de ahí la importancia de proteger estas redes a través de una contraseña muy robusta y establecer el algoritmo de cifrado más robusto disponible como por ejemplo PSK y no la combinación de ambos (PSK-TKIP) ya que TKIP presenta principalmente la vulnerabilidad de ataques de recuperación de keystream al contrario que PSK.

En este escenario se ha utilizado un adaptador USB Alfa Network AWUS036NH como interface de red para la captura inalámbrica. Usaremos Aircrack-ng una suite de herramientas para la evaluación de seguridad en redes inalámbricas.

macchanger

MAC Changer nos permite la manipulación de las direcciones MAC de las interfaces de red. Nos podremos encontrar redes inalámbricas en las que están configuradas restricciones de conexión según la dirección MAC origen. Es decir, que solo una whitelist conocida de direcciones MAC se puedan conectar a ese AP (Access Point).

Vamos a ver que estas limitaciones no es una buena medida de seguridad. Ya que podremos suplantar o cambiar la MAC por otro de los dispositivos que ya esté previamente conectado y que podamos conocer su MAC simplemente analizando el tráfico estemos o no conectados al AP. 

El cambiar la dirección MAC (aunque sea a una aleatoria como veremos en este caso) de nuestra inferface evitará que dejemos rastros en los logs de conexión del AP de nuestra verdadera MAC.

ifconfig wlan0 down
macchanger -A wlan0
ifconfig wlan0 up

Figura 1: macchanger - cambiar dirección MAC en la interface de red de captura de tráfico.

Airmon-ng

Airmon-ng nos permite activar o desactivar el modo monitor de nuestra interface de red. En este caso tendremos que habilitar el modo monitor para nuestra interface de red wlan0 donde quedará establecida como wlan0mon.

  • Modo monitor: Este modo permite la captura de los paquetes de una red inalámbrica sin estar asociados o conectados a una red.
  • Modo promiscuo: Este modo permite la captura de los paquetes tanto en red cableada como inalámbrica que esté previamente conectado a una red.

airmon-ng start wlan0

Figura 2: Habilitar el modo monitor en la interface de red inalámbrica wlan0.

Airodump-ng

Airodump-ng se usa para capturar paquetes inalámbricos y es útil para ir acumulando vectores de inicialización IVs con el fin de intentar usarlos con Aircrack-ng y obtener la clave WEP o WPA. Puedes convertir archivos .cap / .dump a formato .ivs o juntarlos.

Como conceptos principales debemos saber que es un SSID y BSSID. 

  • SSID o ESSID (Service Set Identifier): Compuesto por un máximo de 32 octetos será el nombre que identifica la red inalámbrica.
  • BSSID (Basic Service Set Identifier): Será la dirección MAC del punto de acceso.
Si el SSID estuviese oculto en la red inalámbrica Airodump-ng intentará averiguarlo analizando los paquetes "probe responses" y "association requests" (son paquetes enviados desde un cliente al AP).

En este escenario nos enfocaremos en la red con ESSID "testing"
airodump-ng wlan0mon
Figura 3: Capturar tráfico y descubrir redes inalámbricas con Airodump-ng.
airodump-ng -c 8 –-bssid 72:B4:E6:CE:01:2D --write wpa2-salida-01 wlan0mon
-c: Número del canal de la red que aparece en la columna CH. En este caso es 8.
--bssid: Dirección MAC de la red objetivo. En este caso "testing" y el BSSID 72:B4:E6:CE:01:2D.
--write: Archivo de captura en la que se guardarán los paquetes. En este caso "wpa2-salida-01".
wlan0mon: Nombre de la interface inalámbrica.

Aireplay-ng

Aireplay-ng se usa para inyectar paquetes. Su función principal es generar tráfico para usarlo más tarde con aircrack-ng y poder crackear claves WEP y WPA-PSK. Hay varios ataques diferentes que se pueden utilizar para hacer deautenticaciones con el objetivo de capturar un handshake WPA, para realizar una falsa autenticación, un reenvío interactivo de un paquete, o una reinyección automática de un ARP-request. Con el programa packetforge-ng es posible crear paquetes "ARP request" de forma arbitraria.

En este escenario usaremos el tipo de ataque deautth que consiste en enviar paquetes de deautenticación a uno o más clientes que están actualmente asociados a un punto de acceso (este ataque es totalmente inútil si no existen clientes wireless asociados).

aireplay-ng -0 1 -a 72:B4:E6:CE:01:2D -c 70:3A:51:01:62:A3 wlan0mon

-0: Significa deautenticación.
1: Número de deautenticaciones a enviar (puedes enviar todas las que quieras), 0 significa enviarlas continuamente.
-a: Dirección MAC del punto de acceso (72:B4:E6:CE:01:2D).
-c: Dirección MAC del cliente previamente conectado a deautenticar (STATION: 70:3A:51:01:62:A3), si se omite o con el parámetro -e se especifica el SSID (nombre de la red) serán deautenticados todos los clientes.
wlan0mon: Nombre de la interface inalámbrica.

Figura 4: Ataque deauth para capturar el handshake con Aireplay-ng.

Aircrack-ng

Aircrack-ng será la herramienta principal para el descifrado de claves 802.11 WEP y 802.11i WPA/WPA2-PSK.

aircrack-ng -w /usr/share/wordlist/rockyou.txt wpa2-salida-01.cap

Con el parámetro -w indicaremos el diccionario (será uno de los diccionarios más utilizados y por defecto en máquinas Kali "rockyou.txt") que se utilizará para llevar a cabo el ataque de fuerza bruta y posteriormente indicamos el fichero .cap que se obtuvo con Aireplay-ng.

Figura 5: Usando Aircrack-ng para descifrar la clave de la red inalámbrica.

En este escenario de ejemplo para hacerlo más formativo y rápido se estableció una contraseña sencilla y común en prácticamente cualquier diccionario empleado para fuerza bruta. Se puede ver como se encontró con éxito la clave de la red inalámbrica en unos 5 segundos.

Figura 6: Descifrado con éxito y clave inalámbrica encontrada.

Más info sobre la suite de Aircrack-ng: https://www.aircrack-ng.org/doku.php?id=Main

Recomendaciones para mejorar la seguridad de redes inalámbricas

En escenarios empresariales existen muchos otros mecanismos e integraciones así como la posibilidad de añadir capas adicionales de seguridad perimetral, segmentación y monitoreo continuo de puntos de red inalámbricas.

Pero estas recomendaciones van más enfocadas a las redes domésticas de hogar para intentar proteger lo máximo posible dentro su limitado alcance tecnológico y de configuración.

1. Deshabilitar WPS (Wi-Fi Protected Setup)

Se trata de un mecanismo de seguridad wifi para conectar a un router con otro dispositivo a través de un WPS PIN (una clave de 8 dígitos) la cual se puede introducir manualmente o autenticarse automáticamente dependiendo el tipo de dispositivo. Esto es verdad que facilita la autenticación en una primera vez entre dispositivos a la red pero también es un punto muy débil de seguridad tenerlo habilitado existen multitud de herramientas para realizar fuerza bruta a este tipo de autenticaciones WPSPinGenerator, Wash, Reaver, Bullycioso, PixieWPS, entre las más conocidas.

2. Establecer una contraseña de autenticación robusta

En tecnologías inalámbricas Wifi es la medida principal de protección a día de hoy. Considero que es el punto más importante, en ataques WEP no es así, pero en WPA/2 independientemente de la técnica realizada finalmente todo se resume en capturar un handshake y aplicar fuerza bruta a través de diccionarios. Por lo que cambiar la contraseña por defecto a una contraseña lo suficientemente robusta y compleja (alfanumérica, signos, longitud mínima de 35 caracteres en el caso de WPA) es un básico a realizar para que sea difícilmente costoso o prácticamente imposible por cuestión de tiempo físico poder ser crackeada o descifrada.

3. Usar los sistemas y cifrados más robustos disponibles

Toda contraseña tiene que estar protegida por un buen cifrado. Será fundamental acompañar la contraseña compleja comentada anteriormente con el último sistema de autenticación disponible como puede ser WPA2 con cifrado PSK (AES). Sistemas WEP o cifrados TKIP ya han sido ampliamente vulnerados y no se consideran seguros.

4. Mantener actualizado el software del punto de acceso o enrutador

Recomendación de seguridad básica para cualquier tecnología o servicio. Intenta mantener actualizados todos tus dispositivos.

5. Apagar la red inalámbrica si no la usas

Alto ten sencillo como "Si no lo usas, desactívalo".

6. Recomendaciones de seguridad adicionales 

Ahora podría indicar una serie de recomendaciones adicionales que se pueden encontrar en la mayoría de webs cuando buscas sobre esto como puede ser: "cambia el nombre SSID del dispositivo, no permitas que el dispositivo inalámbrico indique su presencia (ocultar SSID), disponer de un whitelist de direcciones MAC permitidas para conectarse, etc.

Como ya hemos visto en este artículo mostrando un sencillo ataque deauth. Opciones como limitar a las MAC conocidas y ocultar el SSID es algo que no no resta seguridad pero tampoco nos aporta gran protección, ya que es fácil suplantar direcciones MAC (macchanger) y poder encontrar redes ocultas (airodump-ng). 

Saludos!

11 julio, 2018

Ver las passwords Wifis almacenadas a las que nos hemos conectado

Cada vez que desde nuestro equipo Windows nos conectamos a una red inalámbrica WiFi y recordamos la password de indentificación de la red, esta se alamacena en el sistema.

Con el uso de la utilidad de comandos netsh (en la sección de wlan) podemos visualizar las redes que tenemos almacenadas y también la password de acceso que en su momento le indicáramos para autenticarnos en dicha red.

Visualizar los nombres de las redes alamacenadas por Windows en el equipo.
netsh wlan show profile
Establecemos el nombre de la red (SSID - Service Set Identifier) y el valor clear para key.
netsh wlan show profile name=SSID key=clear
Para este ejemplo se usó la red con SSID "prueba".

Figura 1: Netsh - Ver perfiles wlan y obtención de password wifi almacenada.

Otra opción sería usar el "Centro de redes y recursos compartidos" del "Panel control". Una opción con entorno gráfico de Windows 7 es que podíamos ver las redes almacenadas y editar su configuración, en Windows 10 solo podemos ver las redes almacenadas pero no editar su configuración sino estamos conectados en ese momento a esa red. Por lo que hacerlo de una forma gráfica solo nos servirá para ver la password almacenada de la Wifi actual en la que estemos conectados.

Seleccionamos la red Wifi en la que actualmente estemos conectados. Propiedades inalámbricas > Pestaña Seguridad > Mostrar carácteres (nos saltará el UAC por seguridad, para ejecutar esto con privilegios administrativos).

Figura 2: Ver password wifi conectada actualmente.


Saludos!

25 junio, 2018

Crear un punto de acceso Wifi (WAP) compartido desde una conexión cableada Ethernet (IEEE 802.3)

En esta entrada se detalla el procedimiento de creación para una zona Wifi a través del adaptador de red cableada de Windows, compartiendo la conexión de este al adaptador inalámbrico que hará de WAP (Wireless Access Point) y puente de conexión.

Será necesario disponer de dos tarjetas de red, una conectada a través de una conexión cableada Ethernet 802.11 y otra tarjeta inalámbrica ya sea mediante un zócalo interno PCI o conectada por un USB.

El esquema que comentaré será para el siguiente ejemplo:

Un dispositivo inalámbrico con el que nos conectaremos (smartphone en este caso) a un punto de acceso que proporciona la adaptador Wifi y que a su vez este mediante una conexión compartida de Internet que proporciona nos proporciona el adaptador de conexión cableada Ethernet.

Figura 1: Esquema de conexión WAP Windows.

Para toda la configuración haremos uso de la herramienta de comandos Netsh (Network Shell) nativa en Windows. 

Comprobamos las interfaces disponibles.
netsh wlan show interfaces

Figura 2: Netsh - Listar interfaces wlan.

Será necesario comprobar que el driver de la tarjeta de red inalámbrica admita red hospedada.
netsh wlan show drivers
Figura 3: Netsh - Conocer la compatibilidad de interface wlan para red hospedada.

Si el resultado es una "Red hospedada admitida: si". Procedemos a crear el hostednetwork con su SSID (Service Set Identifier) y contraseña de acceso.
netsh wlan set hostednetwork mode=allow ssid=nombre_wap key=password
Sustituyendo en cada caso el nomre y la contraseña que deseemos.

Figura 4: Netsh - Crear hostednetwork (WAP).

En este punto creamos el "puente de conexión" entre el adaptador inalámbrico (Conexión de área local* 4 en este caso) y el adaptador de red cableada (Ethernet).

En las propiedades de la interface Ethernet, pestaña de "Uso compartido", compartimos la conexión a Internet permitiendo que los usuarios que se conecten desde la red de la interface inalámbrica (Conexión de área local* 4).

Figura 5: Compartir conexión Internet entre dos interfaces de red (cableada e inalámbrica).

Iniciamos el hostednetwork.
netsh wlan start hostednetwork
Podemos consultar su estado.
netsh wlan show hostednetwork

Figura 6: Activar el hostednetwork (WAP).

Para comprobar su funcionamiento me conectaré desde un dispositivo smartphone. Vemos como estoy conectado al WAP con SSID zonasystem.

Figura 7: Conexión desde un terminal inalámbrico a la nueva red inalámbrica creada.

Vemos la MAC y dirección IP que nos está otorgando por DHCP. Generando la propia interface un ámbito de red 192.168.137.0/24. Cuando la red original es de un ámbito 10.0.0.0/24. Por defecto la propia interface crea su propia subred.

Figura 8: Comrobación de información de red de la conexión.

Comprobamos de nuevo el estado del hostednetwork de la wlan. Vemos como hay un dispositivo conectado o autenticado, se trata del smartsphone conectado anteriormente. Consultamos la tabla ARP (arp -a) para contrastar la información.

Figura 9: Verificación del cliente autenticado en el nuevo hostednetwork (WAP).

Ahora bien, si se trata de un sistema operativo Windows 10, todo lo anterior no tendría sentido. Windows 10 incorpora una característica para hacer esto de forma muy sencilla. Igualmente está bien conocer lo anterior para entender este funcionamiento.

De forma automática Windows configurará un WAP en el que podremos personalizar tanto el SSID como la passphrase.

Desde el nuevo panel de control de Windows 10 (Tecla Windows + i) > "Red e Internet" > "Zona con cobertura inalámbrica móvil". Tendremos que estar conectados a internet ya bien sea por que compartimos nosotros la conexión de un adaptador de red a otro o por que nos autenticamos en una red inalámbrica directamente. Habilitamos este modo y listo.

Figura 10: Crear WAP de forma sencilla "Zona con cobertura inalámbrica móvil" en Windows 10.

Saludos!

16 julio, 2010

Detectar equipos conectados a una misma LAN (ping broadcast)

En ocasiones durante el mantenimiento de sistemas, necesitamos ver que equipos tenemos conectados a nuestra red local (LAN), esto también es útil para saber quien está conectado a tu red Wireless "¿Cómo saber si el vecino te está robando la WiFi?".

Vamos a utilizar para ello la dirección de red: 192.168.1.1/24 el 24 representaría los bits a '1' de modo que quedaría una IP de clase C con máscara de 255.255.255.0, es decir solo el último octeto para hosts finales menos el 0 que sería la dirección de red, que sería reservada siempre para ese fin, el 1 que sería el gateway o puerta de enlace (no está reservada para este fin pero es casi siempre utilizable y en una red domestica sería la configuración por defecto) y el 255 que sería la dirección broadcast, y está si está reservada para este fin. Por lo tanto, nos quedarían direcciones para hosts finales desde la 2-254 (incluyendo estos).

Antes mencionar que este tip es para OS Windows pero antes explicaré como se realiza en OS Linux, debido a que su uso es más fácil.

En Linux bastaría con abrir una terminal y escribir: ping 192.168.0.255 -b
Después solo quedaría consultar la table ARP (Address Resolution Protocol): arp -a
Ya tendríamos la lista de IP y direcciones MAC (Media Access Control).

En windows es un poco más "complicado". Ya que no existe la opción de broadcast como tal en el comando ping, y no nos permite ninguna posibilidad dentro de sus argumentos para hacer por ejemplo un: ping 192.168.1.255.
Así que tenemos dos opciones:
Aprendernos de memoria la siguiente línea de código o generar un fichero .bat, (que podremos guardar y ejecutar siempre que deseemos) que contenga esta línea de código:
for /l %i in (1,1,254) do ping -w 50 -n 1 192.168.1.%i
Breve explicación:
  • for: Realizamos un bucle, para que recorra todas las direcciones IP posibles de nuestra red.
  • /l: Con este argumento estaríamos especificando que se trataría de un bucle que recorre una sucesión de números que va desde una inicio hasta un fin.
  • %i: El % inicia una variable que en este caso le llame i.
  • in: marcamos los parámetros que queremos que se recorran del bucle for.
  • (1,1,254): Los parámetros están entre paréntesis y separados por coma en un orden especifico: (inicio, paso, fin). Por lo tanto, en este caso recorrerá desde el número 1 hasta el 254.
  • do: Indicamos el comando DO para determinar lo que queremos que recorra.
  • ping -w 50 -n 1: Realizará un ping con (-n 1) tan solo 1 respuesta de echo y con (-w 50) un tiempo de solicitud de 50 milisegundos.
  • 192.168.1.%i: La dirección IP que recorrerá el for indicándole que el %i (colocada en el último octeto) es la variable que tiene que ir recorriendo hasta el limite marcado en los parámetros del IN (254).
Luego realizamos un arp -a y nos mostrará todas las entradas IP y address MAC en nuestra tabla ARP.

Saudos!

Entradas Populares