domingo, agosto 30, 2020

Cómo activar el Modo Promiscuo de red en Raspberry Pi

Un factor importante a tener en cuenta a la hora de utilizar una Raspberry Pi en proyectos de auditorias en redes, ya sea WiFi o Ehternet , es comprobar si la tarjeta de red - en nuestro ejemplo la WiFi que trae Raspberry Pi - soporta el funcionamiento en “Modo Monitor”, conocido también como “Modo Escucha” o “Modo Promiscuo”.

Figura 1: Cómo activar el Modo Promiscuo de red en Raspberry Pi

Siempre ha estado el problema de que para utilizar un Kit de Raspberry Pi o de Raspberry Pi Zero W, las cuales tienen interfaces inalámbricas, no era posible activar el modo monitor y realizar ataques que necesitaran de la inyección de paquetes. Esta característica, por lo tanto, limita mucho su potencia como dropboxes o como puntos de ataque en auditorías de seguridad. Y nosotros, queremos sacar el máximo siempre en nuestros proyectos de Hacking & Making.

Figura 2: Libro de Raspberry Pi para hackers & Makers
PoCs & Hacks Just for Fun en 0xWord escrito por
Pablo Abel Criado, Hector Alonso y Amador Aparicio

En la siguiente imagen se muestra cómo obtener y comprobar si el chipset de nuestra Raspberry Pi soporta el modo monitor, necesario en cualquier proyecto de auditoría de seguridad en redes WiFi. El comando “sudo airmon-ng” muestra las interfaces de red WiFi de la Raspberry Pi, su alias, wlan0 en este caso, el driver y el chipset de la interfaz de red WiFi, que para este ejemplo es “Broadcom 43430”.

Figura 3: Pruebas para comprobar si la RBPi soporta por defecto el modo monitor

Ejecutando el comando “sudo airmon-ng start wlan0” puede comprobarse a través del mensaje “Operation not supported (-95)” cómo la interfaz de red WiFi wlan0 no soporta el modo monitor en nuestra Raspberry Pi 3 B.

Modificando los drivers de la Raspberry Pi

Existen proyectos que permiten modificar los drivers que trae la Raspberry Pi de serie por otros mejorados. Uno de ellos es el proyecto Re4son-Pi-Kernel, que cuenta con la ventaja de facilitar mucho el proceso de instalación de los nuevos drivers.

Figura 4: Página del proyecto Re4son-Pi-Kernel

Permite la instalación de un kernel adaptado para proyectos de seguridad, que también está presente dentro del proyecto Kali-Pi orientado al entorno de pruebas de penetración Kali sobre Raspberry Pi. La instalación se llevará a cabo sobre una Raspberry Pi 3B con sistema operativo Raspbian. Es recomendable tener el sistema operativo actualizado.

Figura 5: Actualización de los paquetes del sistema operativo

Como dice la página del proyecto, debemos ejecutar los siguientes comandos para agregar un repositorio nuevo a nuestro source.list e instalar los nuevos paquetes. Se recomienda hacerlo directamente desde el usuario “root”, en lugar de usar el comando “sudo” antes de la ejecución de los comandos.

echo "deb http://http.re4son-kernel.com/re4son/ kali-pi main" 
> /etc/apt/sources.list.d/re4son.list

Figura 6: Actualización del nuevo repositorio a raspian para actualizar el kernel

El siguiente paso es descargar el fichero con la clave de confianza de los paquetes actualizar la lista de claves APT

wget -O - https://re4son-kernel.com/keys/http/archive-key.asc | apt-key add -

Figura 7: Inserción de la nueva clave de confianza y actualización del listado de claves válidas en la autenticación de paquetes

Posteriormente se realiza una actualización del listado de repositorios para que en una instalación posterior de paquetes se tenga en cuenta el nuevo repositorio para la descarga de los nuevos drivers necesarios para la actualización del kernel con un  "apt update".  

Figura 8: Actualización del listado de repositorios

Por último se procederá a la descarga e instalación de los drivers necesarios para la actualización del kernel a través del siguiente comando:

apt install -y kalipi-kernel kalipi-bootloader kalipi-re4son-firmware 
kalipi-kernel-headers libraspberrypi0 libraspberrypi-dev 
libraspberrypi-doc libraspberrypi-bin

Figura 9: Instalación de los nuevos drivers

Si todo ha ido bien, tras un reinicio deberíamos tener el R4ason-Pi_Kernel instalado. Tardará un rato, pero finalmente tendremos instalado el nuevo kernel.

Interfaz nativa WiFi en “modo Monitor”

Tras la finalización de la instalación del nuevo kernel y reinicio de la Raspberry Pi, se procede a realizar las pruebas necesarias para comprobar que realmente se han instalado los nuevos drivers que permite a la interfaz de red WiFi funcionar en modo monitor. Si esto es así, luego ya podríamos construir todos los ataques de red IPv4&IPv6 que quisiéramos.

Figura 10: Ataques en redes de datos IPv4 & IPv6 (3ª Edición)
de Juan Luis Rambla, Chema Alonso y Pablo González

Con el comando “airmon-ng” colocaremos la interfaz wlan0 en modo monitor. Antes hay que asegurarse de eliminar cualquier proceso que hubiera quedado haciendo uso de la interfaz de red anteriormente. Para ello ejecutamos el comando “sudo airmon-ng check kill

Figura 11: Borrado de procesos previos que pudieran están bloqueando la interfaz de red

Aparecerá un pequeño error diciendo que no se pudo colocar wlan0 en modo monitor, pero sí se ha creado la interfaz virtual wlan0mon que es la que tendrá realmente el modo monitor activo.

Figura 12: Inicio de la interfaz WiFi wlan0 en modo monitor

Podemos comprobar con el comando de configuración iwconfig que la nueva interfaz wlan0mon está funcionando en modo monitor.

Figura 13: Modo monitor para la interfaz wlan0mon

Y ahora ya podemos pasar a probar en algún caso completo el uso del Modo Promiscuo en nuestro Raspberry Pi.

Escaneo de los puntos de acceso cercanos

Como pequeña prueba de concepto, se realizará un escaneo a través de la interfaz de red wlan0mon para conocer qué puntos de acceso se encuentran en nuestra zona de cobertura y características de los mismos: BSSID, dirección MAC, canal de emisión, potencia de la señal, protocolo de cifrado, etcétera.

Figura 14: Características WiFi de los puntos de acceso (AP) dentro del espacio de cobertura

Para ello bata ejecutar el comando “sudo airodump-ng wlan0mon”, tal y como se puede ver en la Figura 14. Y ahora toca probar a inyectar tramas de red desde nuestra Raspberry Pi.

Prueba de inyección de tramas desde nuestra Raspberry Pi


Ahora es posible comprobar fácilmente que la inyección también está activada ejecutando el comando “sudo aireplay-ng --test wlan0mon”.

Figura 15: Prueba para comprobar que la interfaz wlan0 es capaz de realizar inyección de tramas

Es importante mencionar es que la inyección de tramas a un punto de acceso (AP) es extremadamente lenta debido a las características del driver, así que algunos ataques como la re-inyección ARP podrían no ser viables utilizando para ello la interfaz WiFi de la Raspberry Pi

Saludos,  

Autor: Amador Aparicio (@amadapa), escritor de los libros “Raspberry Pi para Hackers & Makers: PoCs & Hacks Just for Fun!” y "Hacking Web Technologies 2ª Edición" , CSE (Chief Security Envoy) de ElevenPaths

No hay comentarios:

Publicar un comentario