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.
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.
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.
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.