Herramientas para probar y auditar redes ZigBee e IEEE 802.15.4
|
IoT, el Internet de las cosas: red de dispositivos que están conectados a Internet, controlados a través de él y pueden comunicarse entre sí. Pero a veces el dispositivo se puede clasificar como parte de internet de cosas sin conexión a internet. El número total de dispositivos conectados a Internet es de 23 mil millones con la perspectiva de aumentar a 30 mil millones para 2020. Una parte importante de los dispositivos tiene problemas de seguridad. Ignorar estos problemas conduce a la creación de botnets (Mirai, Satori) y a la fuga de datos personales.
En este tipo de dispositivos se deben controlar tres aspectos en base a la seguridad de los mismos:
- Seguridad de hardware.
- Seguridad del software.
- Seguridad de radio.
En lo que a seguridad radio se refiere uno de los protocolos mas usado por los dispositivos IoT es Zigbee. Que corresposnde a a especificación de un conjunto de protocolos de alto nivel de comunicación inalámbrica, para su utilización con radiodifusión digital de bajo consumo, basada en el estándar IEEE 802.15.4 de redes inalámbricas de área personal (wireless personal area network, WPAN).
KillerBee de River Loop Security, es un marco y herramientas para probar y auditar redes ZigBee e IEEE 802.15.4. Está desarrollado y probado en sistemas Linux. El uso de MacOS es posible pero no es compatible.
También tenga en cuenta que esta es una plataforma de ataque bastante avanzada y poco amigable. Esto no es Caín y Abel. Está destinado a desarrolladores y analistas avanzados que están atacando las redes ZigBee e IEEE 802.15.4. Le recomiendo que comprenda algo del protocolo ZigBee (el libro ZigBee Wireless Networks and Transceivers de Shahin Farahani es razonable, aunque aún no excelente) y esté familiarizado con el lenguaje Python antes de profundizar en este marco.
KillerBee está diseñado para simplificar el proceso de detección de paquetes desde la interfaz aérea o un archivo de captura de paquetes compatible (libpcap o Daintree SNA), y para inyectar paquetes arbitrarios. También están disponibles funciones auxiliares que incluyen decodificadores de paquetes IEEE 802.15.4, ZigBee NWK y ZigBee APS.
La estructura del directorio para el código KillerBee se describe a continuación:
- doc: documentación HTML sobre la biblioteca KillerBee, cortesía de epydoc.
- firmware: firmware para dispositivos de hardware KillerBee compatibles.
- killerbee: fuente de la biblioteca de Python.
- sample: capturas de paquetes de muestra, referenciadas a continuación.
- scripts: scripts de Shell utilizados en el desarrollo.
- tools: herramientas de ataque ZigBee e IEEE 802.15.4 desarrolladas utilizando este marco.
El marco KillerBee se está expandiendo para admitir múltiples dispositivos. Actualmente hay soporte para River Loop ApiMote, Atmel RZ RAVEN USB Stick, MoteIV Tmote Sky, TelosB mote, Sewino Sniffer y varios hardware que ejecutan el firmware de Silicon Labs Node Test.
KillerBee incluye varias herramientas diseñadas para atacar las redes ZigBee e IEEE 802.15.4, construidas utilizando el marco KillerBee. Cada herramienta tiene sus propias instrucciones de uso documentadas ejecutando la herramienta con el argumento «-h», y resumidas a continuación.
- zbid: identifica las interfaces disponibles que pueden ser utilizadas por KillerBee y las herramientas asociadas.
- zbwireshark: similar a zbdump, pero expone una tubería con nombre para capturar y ver en tiempo real en Wireshark.
- zbdump: se utilizó un tcpdump para capturar tramas IEEE 802.15.4 en un archivo de captura de paquetes libpcap o Daintree SNA. No muestra estadísticas en tiempo real como tcpdump cuando no se escribe en un archivo.
- zbreplay: implementa un ataque de reproducción, leyendo un archivo de captura de paquetes Daintree DCF o libpcap especificado, retransmitiendo las tramas. Las tramas ACK no se retransmiten.
- zbstumbler: herramienta de descubrimiento de red Active ZigBee e IEEE 802.15.4. Zbstumbler envía tramas de solicitud de baliza mientras salta el canal, graba y muestra información resumida sobre los dispositivos descubiertos. También puede registrar resultados en un archivo CSV.
- zbpanidconflictflood: requiere dos interfaces killerbee, una interfaz killerbee escucha los paquetes y marca su ID de PAN. La otra interfaz envía constantemente paquetes de balizas con los ID de PAN encontrados. Los paquetes de baliza con la misma ID de PAN hacen que el coordinador de PAN crea que hay un conflicto de ID de PAN, y el coordinador comienza el proceso de realinear la red en una nueva ID de PAN. El proceso se repite. Por lo general, los dispositivos de red no pueden mantenerse al día con el cambio rápido y después de varios segundos la red se desmorona.
- zborphannotify: falsifica un paquete de notificación huérfano del dispositivo de destino a un Coordinador PAN para probar el comportamiento del Coordinador.
- zbrealign: falsifica un marco de realineación de PAN 802.15.4 del coordinador a un dispositivo de destino. Puede restablecer la ID o canal PAN del dispositivo
- zbfakebeacon: falsifica tramas de baliza, ya sea enviándolas por correo no deseado o en respuesta a la recepción de una solicitud de baliza.
- zbopenear: ayuda a capturar datos donde los dispositivos operan en múltiples canales o saltos de frecuencia rápida. Asigna múltiples interfaces secuencialmente en todos los canales.
- zbassocflood: asocie repetidamente al PANID de destino en un esfuerzo por hacer que el dispositivo se bloquee desde demasiadas estaciones conectadas.
- zbconvert – Convierte una captura de paquetes de Libpcap al formato Daintree SNA, o viceversa.
- zbdsniff: captura el tráfico de ZigBee, buscando tramas NWK y aprovisionamiento de claves inalámbricas. Cuando se encuentra una clave, zbdsniff imprime la clave en stdout. La muestra de captura de paquetes de “
sample/zigbee-network-key-ota.dcf”
se puede utilizar para demostrar esta funcionalidad. - zbfind: una aplicación GTK GUI para rastrear la ubicación de un transmisor IEEE 802.15.4 midiendo RSSI. zbfind puede ser pasivo en el descubrimiento (solo escuchar paquetes) o puede estar activo enviando tramas de solicitud de baliza y grabando las respuestas de los enrutadores y coordinadores de ZigBee. Si obtiene un montón de errores después de iniciar esta herramienta, asegúrese de que su variable
DISPLAY
esté configurada correctamente. - zbgoodfind: implementa una función de búsqueda de clave utilizando una captura de paquetes cifrada y un volcado de memoria de un dispositivo ZigBee o IEEE 802.15.4 legítimo. Esta herramienta acompaña a la herramienta de ataque de hardware GoodFET de Travis Goodspeed u otros datos binarios que podrían contener información clave de cifrado, como el rastreo de bus con chips heredados (como el CC2420). El archivo de búsqueda de Zbgoodfind debe estar en formato binario (no se admiten los archivos hex del obj). Para convertir del formato de archivo hexadecimal a un archivo binario, use la herramienta objcopy.
- zbwardrive: descubre las interfaces disponibles y usa una para inyectar solicitudes de baliza y escuchar las respuestas en todos los canales. Una vez que se encuentra una red en un canal, asigna otro dispositivo para capturar continuamente el tráfico en ese canal a un archivo PCAP. Scapy debe estar instalado para ejecutar esto.
- zbscapy: proporciona un shell Scapy interactivo para interactuar a través de una interfaz KillerBee. Scapy debe estar instalado para ejecutar esto.
- kbbootloader: cambia el dispositivo al modo DFU/BOOTLOADER (si el dispositivo es capaz)
Más información y descarga de Killerbee: