hacktricks/todo/hardware-hacking/radio.md

13 KiB

Radio

Aprende a hackear AWS de cero a héroe con htARTE (Experto en Equipo Rojo de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

SigDigger

SigDigger es un analizador de señales digitales gratuito para GNU/Linux y macOS, diseñado para extraer información de señales de radio desconocidas. Admite una variedad de dispositivos SDR a través de SoapySDR, y permite la demodulación ajustable de señales FSK, PSK y ASK, decodificar video analógico, analizar señales intermitentes y escuchar canales de voz analógicos (todo en tiempo real).

Configuración Básica

Después de instalar, hay algunas cosas que podrías considerar configurar.
En la configuración (el segundo botón de la pestaña) puedes seleccionar el dispositivo SDR o seleccionar un archivo para leer y a qué frecuencia sintonizar y la tasa de muestreo (se recomienda hasta 2.56Msps si tu PC lo soporta)\

En el comportamiento de la GUI se recomienda habilitar algunas cosas si tu PC lo soporta:

{% hint style="info" %} Si te das cuenta de que tu PC no está capturando cosas, intenta deshabilitar OpenGL y reducir la tasa de muestreo. {% endhint %}

Usos

  • Solo para capturar un tiempo de una señal y analizarla mantén presionado el botón "Presionar para capturar" todo el tiempo que necesites.

  • El Sintonizador de SigDigger ayuda a capturar mejores señales (pero también puede degradarlas). Idealmente comienza con 0 y sigue aumentándolo hasta que encuentres que el ruido introducido es mayor que la mejora de la señal que necesitas).

Sincronización con canal de radio

Con SigDigger sincronízate con el canal que deseas escuchar, configura la opción "Vista previa de audio de banda base", configura el ancho de banda para obtener toda la información enviada y luego ajusta el Sintonizador al nivel antes de que el ruido realmente comience a aumentar:

Trucos interesantes

  • Cuando un dispositivo está enviando ráfagas de información, generalmente la primera parte será un preámbulo por lo que no necesitas preocuparte si no encuentras información allí o si hay algunos errores.
  • En tramas de información generalmente deberías encontrar diferentes tramas bien alineadas entre sí:

  • Después de recuperar los bits es posible que necesites procesarlos de alguna manera. Por ejemplo, en la codificación Manchester un arriba+abajo será un 1 o 0 y un abajo+arriba será el otro. Por lo tanto, pares de 1s y 0s (arribas y abajos) serán un 1 real o un 0 real.
  • Incluso si una señal está utilizando la codificación Manchester (es imposible encontrar más de dos 0s o 1s seguidos), podrías encontrar varios 1s o 0s juntos en el preámbulo!

Descubriendo el tipo de modulación con IQ

Hay 3 formas de almacenar información en señales: Modulando la amplitud, frecuencia o fase.
Si estás revisando una señal hay diferentes formas de intentar averiguar qué se está utilizando para almacenar información (encuentra más formas abajo) pero una buena es revisar el gráfico IQ.

  • Detectando AM: Si en el gráfico IQ aparecen por ejemplo 2 círculos (probablemente uno en 0 y otro en una amplitud diferente), podría significar que esta es una señal AM. Esto se debe a que en el gráfico IQ la distancia entre el 0 y el círculo es la amplitud de la señal, por lo que es fácil visualizar diferentes amplitudes siendo utilizadas.
  • Detectando PM: Como en la imagen anterior, si encuentras pequeños círculos no relacionados entre sí probablemente signifique que se está utilizando una modulación de fase. Esto se debe a que en el gráfico IQ, el ángulo entre el punto y el 0,0 es la fase de la señal, lo que significa que se utilizan 4 fases diferentes.
  • Ten en cuenta que si la información está oculta en el hecho de que se cambia una fase y no en la fase en sí, no verás diferentes fases claramente diferenciadas.
  • Detectando FM: IQ no tiene un campo para identificar frecuencias (la distancia al centro es la amplitud y el ángulo es la fase).
    Por lo tanto, para identificar FM, deberías ver básicamente solo un círculo en este gráfico.
    Además, una frecuencia diferente se "representa" en el gráfico IQ por una aceleración de velocidad a través del círculo (así que en SysDigger seleccionando la señal el gráfico IQ se llena, si encuentras una aceleración o cambio de dirección en el círculo creado podría significar que esto es FM):

Ejemplo de AM

{% file src="../../.gitbook/assets/sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw" %}

Descubriendo AM

Revisando el sobre

Revisando la información AM con SigDigger y solo mirando el sobre puedes ver diferentes niveles de amplitud claros. La señal utilizada está enviando pulsos con información en AM, así es como se ve un pulso:

Y así es como se ve parte del símbolo con la forma de onda:

Revisando el Histograma

Puedes seleccionar toda la señal donde se encuentra la información, seleccionar el modo Amplitud y Selección y hacer clic en Histograma. Puedes observar que solo se encuentran 2 niveles claros

Por ejemplo, si seleccionas Frecuencia en lugar de Amplitud en esta señal AM encontrarás solo 1 frecuencia (no hay forma de que la información modulada en frecuencia esté utilizando solo 1 frec).

Si encuentras muchas frecuencias, potencialmente esto no será FM, probablemente la frecuencia de la señal fue modificada debido al canal.

Con IQ

En este ejemplo puedes ver cómo hay un gran círculo pero también muchos puntos en el centro.

Obtener Tasa de Símbolos

Con un símbolo

Selecciona el símbolo más pequeño que puedas encontrar (para asegurarte de que es solo 1) y verifica la "Frecuencia de selección". En este caso sería 1.013kHz (así que 1kHz).

Con un grupo de símbolos

También puedes indicar la cantidad de símbolos que vas a seleccionar y SigDigger calculará la frecuencia de 1 símbolo (probablemente cuanto más símbolos selecciones, mejor). En este escenario seleccioné 10 símbolos y la "Frecuencia de selección" es 1.004 Khz:

Obtener Bits

Habiendo encontrado que es una señal modulada en AM y la tasa de símbolos (y sabiendo que en este caso algo hacia arriba significa 1 y algo hacia abajo significa 0), es muy fácil obtener los bits codificados en la señal. Entonces, selecciona la señal con información y configura el muestreo y la decisión y presiona muestrear (verifica que se haya seleccionado Amplitud, que se haya configurado la Tasa de símbolos descubierta y que se haya seleccionado la Recuperación de reloj de Gadner):

  • Sincronizar con intervalos de selección significa que si previamente seleccionaste intervalos para encontrar la tasa de símbolos, esa tasa de símbolos se utilizará.
  • Manual significa que se utilizará la tasa de símbolos indicada.
  • En Selección de intervalo fijo indicas el número de intervalos que se deben seleccionar y calcula la tasa de símbolos a partir de ello.
  • Recuperación de reloj de Gadner suele ser la mejor opción, pero aún así necesitas indicar una tasa de símbolos aproximada.

Al presionar muestrear, aparece esto:

Ahora, para hacer que SigDigger entienda dónde está el rango del nivel que lleva información, necesitas hacer clic en el nivel más bajo y mantener presionado hasta el nivel más alto:

Si hubiera, por ejemplo, 4 niveles diferentes de amplitud, deberías haber necesitado configurar los Bits por símbolo en 2 y seleccionar desde el más pequeño hasta el más grande.

Finalmente, aumentando el Zoom y cambiando el tamaño de la fila puedes ver los bits (y puedes seleccionar todo y copiar para obtener todos los bits):

Si la señal tiene más de 1 bit por símbolo (por ejemplo 2), SigDigger no tiene forma de saber cuál símbolo es 00, 01, 10, 11, por lo que usará diferentes escalas de grises para representar cada uno (y si copias los bits usará números del 0 al 3, tendrás que tratarlos).

Además, el uso de codificaciones como Manchester, y arriba+abajo puede ser 1 o 0 y un abajo+arriba puede ser un 1 o 0. En esos casos necesitas tratar los arribas (1) y abajos (0) obtenidos para sustituir los pares de 01 o 10 como 0s o 1s.

Ejemplo de FM

{% file src="../../.gitbook/assets/sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw" %}

Descubriendo FM

Verificación de las frecuencias y la forma de onda

Ejemplo de señal enviando información modulada en FM:

En la imagen anterior puedes observar claramente que se utilizan 2 frecuencias, pero si observas la forma de onda es posible que no puedas identificar correctamente las 2 frecuencias diferentes:

Esto se debe a que capturé la señal en ambas frecuencias, por lo tanto una es aproximadamente la otra en negativo:

Si la frecuencia sincronizada está más cerca de una frecuencia que de la otra, puedes ver fácilmente las 2 frecuencias diferentes:

Verificación del histograma

Al verificar el histograma de frecuencia de la señal con información, puedes ver fácilmente 2 señales diferentes:

En este caso, si verificas el histograma de amplitud encontrarás solo una amplitud, por lo que no puede ser AM (si encuentras muchas amplitudes puede ser porque la señal ha ido perdiendo potencia a lo largo del canal):

Y este sería el histograma de fase (lo que deja claro que la señal no está modulada en fase):

Con IQ

IQ no tiene un campo para identificar frecuencias (la distancia al centro es la amplitud y el ángulo es la fase).
Por lo tanto, para identificar FM, deberías ver básicamente solo un círculo en este gráfico.
Además, una frecuencia diferente es "representada" en el gráfico IQ por una aceleración de velocidad a través del círculo (así que en SysDigger seleccionando la señal, el gráfico IQ se llena, si encuentras una aceleración o cambio de dirección en el círculo creado, podría significar que se trata de FM):

Obtener Tasa de Símbolos

Puedes utilizar la misma técnica que la utilizada en el ejemplo de AM para obtener la tasa de símbolos una vez que hayas encontrado las frecuencias que transportan los símbolos.

Obtener Bits

Puedes utilizar la misma técnica que la utilizada en el ejemplo de AM para obtener los bits una vez que hayas encontrado que la señal está modulada en frecuencia y la tasa de símbolos.