
Una herramienta de ataque de radio definida por software
/ |_ _ _ ___ | | / |___ __ | |_ ___ _ _ ___ | (/ _ \ ' (-</ _ \ / -) | (/ _ \ V V / '_ / _ \ || (-< __/||//_/_| __/_/_/|_./_/_, // |/ ___ ___ ___ _ ___ | _ \ / | _ __ _ | | || | / _| (| '/ ` / | / / ||_| ___|| _,_|_\
Bienvenido a RFCrack - Una herramienta de ataque por radio definida por software
Desarrollador: @Ficti0n - http://ConsoleCowboys.com
CCLabs: http://cclabs.io
Blog: console-cowboys.blogspot.com
Tutorial de lanzamiento: https://www.youtube.com/watch?v=H7-g15YZBiI
Inversión de señales con RFCrack: https://www.youtube.com/watch?v=XqKoVFyOst0
Lanzamiento: 1.6 - Manejo de errores y correcciones de errores para Py3 y código de generación Bruijn + método de interferencia actualizado
Hardware necesario: (1 Yardstick o 2 para RollingCode)
YardStick: https://goo.gl/wd88sr
RFCrack es mi banco de pruebas RF personal, fue desarrollado para probar comunicaciones RF
entre cualquier dispositivo físico que se comunique sobre frecuencias sub GHz. Dispositivos IoT,
automóviles, sistemas de alarma, etc... Las pruebas se realizaron con Yardstick One en OSX, pero
RFCrack debería funcionar bien en Linux. Se agregará soporte para otras pruebas relacionadas con RF
según sea necesario en mis pruebas. Actualmente estoy investigando bypass de entrada sin llave y
otras funcionalidades de análisis de señales. Se agregarán nuevas funcionalidades en el futuro con
requisitos de hardware adicionales para algunos ataques avanzados.
Siéntase libre de usar este software tal cual solo para uso personal. No use este código
en otros proyectos o productos comerciales. No me responsabilizo por sus acciones con este código.
Sus decisiones de vida son suyas.
Funcionalidad actual compatible:
---------------------------------
- Ataques de repetición -i -F
- Enviar payloads guardados -s -u
- Ataques de bypass de código rodante -r -F -M
- Dirigido -t -F
- Interferencia -j -F
- Escaneo incremental a través de frecuencias -b -v -F
- Escaneo de frecuencias comunes -k
- Comparar señales entrantes en vivo con señal anterior -k -c -f -u
- Graficar señal -n -g -u
Ejemplos de uso / Ataques:
-------------------------
Repetición en vivo: python RFCrack.py -i
Código rodante: python RFCrack.py -r -M MOD_2FSK -F 314350000
Ajustar valores RSSI: python RFCrack.py -r -M MOD_2FSK -F 314350000 -U -100 -L -10
Interferencia: python RFCrack.py -j -F 314000000
Escanear frecuencias comunes: python RFCrack.py -k
Escanear con tu lista: python RFCrack.py -k -f 433000000 314000000 390000000
Escaneo incremental: python RFCrack.py -b -v 5000000
Enviar payload guardado: python RFCrack.py -s -u ./captures/test.cap -F 315000000 -M MOD_ASK_OOK
Con configuración cargada: python RFCrack.py -l ./device_templates/doorbell.config -r
Graficar una señal: python RFCrack.py -n -g -u 1f0fffe0fffc01ff803ff007fe0fffc1fff83fff07
Identificación y comparación de señales en vivo (Use 2 ventanas de consola):
-----------------------------------------------------------------
Configurar sniffer: python RFCrack.py -k -c -f 390000000
Configurar análisis: python RFCrack.py -c -u 1f0fffe0fffc01ff803ff007fe0fffc1fff83fff07f -n
Argumentos útiles:
------------------------
-M Cambia la modulación, usualmente MOD_2FSK o MOD_ASK_OOK
-F Cambia la frecuencia utilizada en los ataques
-U Valor de intensidad de señal RSSI superior para código rodante
-L Valor de intensidad de señal RSSI inferior para código rodante
-S Cambia el espaciado de canales
-V Cambia la desviación de la modulación
-a Variación de frecuencia de interferencia desde el sniffer
-s Envía paquete desde un archivo fuente
-d Guarda la configuración actual del dispositivo en una plantilla cargable después de que el ataque se complete
-l Carga la configuración del dispositivo previamente guardada con el ataque
-n Estás usando funcionalidad que no requiere un yardstick conectado
-u Usa datos guardados en tu ataque
Directorios explicados:
----------------------
¡Las capturas guardadas se guardan en el directorio ./captures por defecto!
Las capturas de identificación de señales en vivo también se guardan en el directorio ./captures en capturedClicks.log
Las plantillas de dispositivos se guardan y cargan en ./device_templates por defecto
Los registros de escaneo se guardan en ./scanning_logs nombrados según la fecha y hora de inicio del escaneo
Las imágenes de comparación de gráficos se guardan en imageOutput en 2 formatos
- En vivo: LiveComparison.png se sobrescribirá en cada análisis de señal
- Análisis de registro: se usa el formato Comparison1 Comparison2 y se sobrescribe en cada análisis de registro
Otras notas:
------------------------
Entienda que el código rodante es impredecible debido a su naturaleza con interferencia y sniffing
al mismo tiempo, pero funciona. Simplemente use el llavero cerca de los yardsticks como si estuviera
acechando a su objetivo. También requerirá 2 yardsticks, uno para sniffing mientras el otro
está interfiriendo. Los yardsticks no envían y reciben al mismo tiempo.
Y una nota final, este es mi propio banco de pruebas para hacer investigación y desarrollo, si tienes ideas
para mejorar RFCrack basadas en escenarios de casos de uso realistas, no dudes en contactarme. Si
las ideas son realistas, bien pensadas y casos de uso reutilizables, las implementaré.