Descargo de responsabilidad
La herramienta todavía está activamente en construcción. La utilidad Sniffer debería funcionar bien con un ancho de banda de 125 kHz, así que siéntase libre de probarlo. Tenga en cuenta que las funciones de transmisión requieren más pruebas, ya que actualmente no tengo una puerta de enlace de Lorawan.
Si encuentra algún problema, no dude en plantear un problema.
Atata
Este repositorio proporciona un conjunto de herramientas para evaluar la seguridad de la red de Lorawan. Esto es lo que ofrece:
- Sniffing multicanal: capturar el tráfico de Lorawan a través de múltiples canales utilizando un SDR (radio definida de software).
- Captura basada en sesiones: Crear y administrar sesiones. Los apretones de manos capturados dentro de una sesión se almacenan automáticamente para un análisis posterior.
- Derivación clave: deriva las claves criptográficas de los datos de apretón de manos capturados específicos de una sesión, lo que permite el descifrado de paquetes pertenecientes a esa sesión.
- Compatibilidad de Wireshark: las tiendas capturaron el tráfico en archivos PCAP con un número DLT modificado, asegurando un análisis sin problemas con Wireshark.
- Prueba de vulnerabilidad: reproducir cargas útiles específicas para investigar las vulnerabilidades de Lorawan conocidas durante las evaluaciones de seguridad.
- Guía de ataque: acceda a descripciones detalladas de ataques y guías paso a paso para optimizar su proceso de prueba.

Tabla de contenido
- Instalación
- Uso
- Sesión
- Oledor
- Oler
- Configurar
- Decodificación y descifrado
- Almacenamiento de paquetes
- Analizador
- Ataque
- Repetición
- Paquetes de artesanía
- Salida
Instalación
Requisitos:
- Sistema Linux (probado con Ubuntu, Debian)
- Radio definido por software USRP por Ettus Research (probado con B200, B205mini)
1. Instale la radio y las dependencias GNU:
Siga las instrucciones en la wiki de radio GNU para su distribución de Linux: https://wiki.gnuradio.org/index.php/installinggr
2. Instale controladores de hardware USRP:
Agregue el repositorio de Ettus Research USRP:
sudo add-apt-repository ppa:ettusresearch/uhd
sudo apt-get update
sudo apt-get install libuhd-dev uhd-host
3. Clon the Lora Attack Toolkit Repository:
git clone https://github.com/konicst1/lorattack.git
4. Instalar dependencias:
Navegue al directorio de kit de herramientas e instale dependencias:
cd lorattack
source venv/bin/activate
pip install -r requirements.txt
sudo apt-get update
sudo apt-get install bittwist
También instale bibliotecas Gr-lora desde:
- https://github.com/rpp0/gr-lora
- https://github.com/tapparelj/gr-lora_sdr
5. Actualizar rutas de Python (si usa el entorno virtual):
Este paso asegura que el entorno virtual pueda acceder a Gnuradio instalado fuera del entorno.
export PYTHONPATH=/usr/local/lib/python3.10/dist-packages:/usr/lib/python3.10/site-packages: $PYTHONPATH
export PYTHONPATH= " /usr/lib/python3/dist-packages: $PYTHONPATH "
# Update library path (if necessary)
export LD_LIBRARY_PATH=/usr/local/lib: $LD_LIBRARY_PATH
Nota: Reemplace /usr/local/lib/python3.10 con la ruta real a su directorio de instalación de Python 3 si es diferente. Ajuste la actualización de la ruta de la biblioteca ( export LD_LIBRARY_PATH... ) solo si se encuentra con problemas relacionados con las bibliotecas faltantes.
6. Ejecute el kit de herramientas de ataque de Lora:
Nota: Consulte la documentación del conjunto de herramientas (si está disponible) para obtener instrucciones de uso detalladas.
Uso
Sesión
- Nueva sesión: cree una nueva sesión con un nombre descriptivo cada vez que comience a oler el tráfico de Lorawan. Esto asegura que cada captura tenga su propio conjunto de claves para el descifrado más adelante.
- Elija Sesión: seleccione una sesión existente para activarla para un análisis posterior o ataques de reproducción. Lorattack utiliza datos de apretón de manos de la sesión elegida para derivar claves de descifrado específicas de esa captura.
Las sesiones separadas son importantes para el descifrado. Cada sesión en Lorattack extrae datos de apretón de manos para derivar claves únicas para paquetes capturados dentro de esa sesión, lo que permite un análisis detallado.
Para editar datos de sesión, editar el archivo Session/Data/<session_name> /data.json .
Oledor
Sniffer de Lorattack captura el tráfico de Lorawan a través de múltiples canales alrededor de una frecuencia central especificada, lo que permite la decodificación y el descifrado en tiempo real (si hay claves disponibles).

- Sniff: este submenú le permite capturar el tráfico de Lorawan:
- Sniff de enlace hacia arriba/hacia abajo (bidireccional): comienza a capturar el tráfico de enlace ascendente (dispositivos a red) y de enlace descendente (red a dispositivos). Nota: La captura bidireccional puede dar lugar a paquetes duplicados si se envían los mismos datos en ambas direcciones.
- Sniff Uplink: comienza a capturar solo el tráfico de enlace ascendente.
- Sniff la enlace descendente: comienza a capturar solo el tráfico de enlace descendente.
- Configurar: este submenú le permite editar el archivo de configuración de sniffer (
config/sniffer.config ) que define la configuración de captura:- Frecuencia (frecuencia central): especifique la frecuencia central (por ejemplo, "868.6e6") para oler. Lorattack también capturará canales alrededor de esta frecuencia central basada en el ancho de banda elegido.
- Ancho de banda: configure el ancho de banda del canal (por ejemplo, "125000") para definir el rango de frecuencias capturadas alrededor de la frecuencia central.
- Velocidad de muestreo: Defina la velocidad de muestreo (por ejemplo, "1000000") para el hardware SDR.
- Factor de propagación: especifique el factor de propagación (7 - 12) utilizado por la red Lorawan (afecta la velocidad y el rango de datos).
- Gane (dB): establezca la ganancia (p. Ej., "10 dB") de la antena SDR para ajustar la intensidad de la señal.
Decodificación y descifrado:
- Los paquetes capturados se decodifican en tiempo real, proporcionando información sobre la estructura de comunicación de Lorawan.
- El descifrado es posible y se realiza automáticamente si las claves criptográficas están presentes en el archivo de configuración de la sesión:
- Las teclas se pueden especificar manualmente.
- Las claves se pueden derivar automáticamente si la solicitud de unión y los mensajes de aceptación de unión se capturan dentro (AppKey debe configurarse manualmente)

Almacenamiento de paquetes:
- Todos los paquetes olfateados se almacenan en formato PCAP dentro del directorio de la sesión actual.
- Los PCAP con el prefijo de Wireshark tienen el encabezado UDP despojado y DLT está configurado en Lorawan (147) para un fácil análisis con Wireshark.
Analizador
El submenú analizador muestra una lista de archivos PCAP asociados con su sesión activa. Seleccionar un archivo PCAP inicia un proceso de análisis:

- Análisis de tráfico: el analizador examina la estructura del paquete y decodifica los valores de la sesión de comunicación y actualización de Lorawan si se encuentran mensajes de solicitud/aceptación de unión.
- Decryción (si corresponde): si la configuración de la sesión contiene las claves criptográficas necesarias (NWKSKey y AppSkey), el analizador intenta descifrar las cargas útiles de paquetes.
Ataque

Repetición:
- Desde PCAP: seleccione un archivo PCAP (que contenga paquetes capturados) de las opciones enumeradas para reproducir una secuencia de paquetes.
- Editar secuencia de repetición: edite manualmente la secuencia de paquetes del PCAP elegido para reproducir.
Paquetes de artesanía:
- Solicitud de unión de parodia: Craft un mensaje de solicitud de unión basado en los valores de la sesión actual (Joineui, Deveui) y lo transmite con SDR. Si algunos de ellos no están presentes, se aplican valores predeterminados. Se requiere AppKey/NWKKey para calcular el micrófono.
- Spoof Join ACEPT: Craft un mensaje de solicitud de unión basado en los valores de la sesión actual (NETID, DevadDR) y lo transmite con SDR. Si algunos de ellos no están presentes, se aplican valores predeterminados. Se requiere AppKey/NWKKey para calcular el micrófono y el cifrado.
- Mensaje ACK falso: Crafts y Mensaje ACK basado en valores de los datos de la sesión (DevadDR, FCNT se establece en 0xfff0 a buenas posibilidades para DOS) y lo transmite con SDR. Se requiere NWKSKEY para el cálculo de MIC.
Configurar transmisor: consulte la sección Configuración de SNIFfer para obtener detalles sobre la configuración de los parámetros del transmisor utilizados durante los ataques de repetición (por ejemplo, frecuencia, ganancia).
Pautas de simulación de ataque
TBD