Radio

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support 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. Soporta 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 pestaña) puedes seleccionar el dispositivo SDR o seleccionar un archivo para leer y qué frecuencia sintonizar y la tasa de muestreo (recomendado hasta 2.56Msps si tu PC lo soporta)\

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

Si te das cuenta de que tu PC no está capturando cosas, intenta deshabilitar OpenGL y reducir la tasa de muestreo.

Usos

  • Solo para capturar algún tiempo de una señal y analizarla, solo mantén presionado el botón "Push to capture" tanto tiempo como 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).

Sincronizar con el canal de radio

Con SigDigger sincroniza con el canal que deseas escuchar, configura la opción "Baseband audio preview", configura el ancho de banda para obtener toda la información que se envía y luego ajusta el sintonizador al nivel antes de que el ruido comience a aumentar realmente:

Trucos interesantes

  • Cuando un dispositivo está enviando ráfagas de información, generalmente la primera parte será un preámbulo, así que no necesitas preocuparte si no encuentras información allí o si hay algunos errores.

  • En los tramos de información, generalmente deberías encontrar diferentes tramos bien alineados entre ellos:

  • Después de recuperar los bits, es posible que necesites procesarlos de alguna manera. Por ejemplo, en la codificación Manchester, un up+down será un 1 o 0 y un down+up será el otro. Así que pares de 1s y 0s (ups y downs) serán un 1 real o un 0 real.

  • Incluso si una señal está usando codificación Manchester (es imposible encontrar más de dos 0s o 1s en fila), ¡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 a continuación), 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 que se están utilizando.

  • Detectando PM: Al igual que en la imagen anterior, si encuentras pequeños círculos no relacionados entre sí, probablemente significa 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 están utilizando 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 misma, no verás diferentes fases claramente diferenciadas.

  • Detectando FM: IQ no tiene un campo para identificar frecuencias (la distancia al centro es amplitud y el ángulo es fase). Por lo tanto, para identificar FM, deberías ver básicamente un círculo en este gráfico. Además, una frecuencia diferente es "representada" por el gráfico IQ mediante una aceleración de velocidad a través del círculo (así que en SysDigger, al seleccionar 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

52MB
sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw

Descubriendo AM

Revisando la envoltura

Revisando la información AM con SigDigger y solo mirando la envoltura, 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, solo encuentras 1 frecuencia (no hay forma de que la información modulada en frecuencia esté usando solo 1 frecuencia).

Si encuentras muchas frecuencias, potencialmente esto no será un FM, probablemente la frecuencia de la señal solo se modificó 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 la Tasa de Símbolos

Con un símbolo

Selecciona el símbolo más pequeño que puedas encontrar (así te aseguras de que sea solo 1) y revisa 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 el número de símbolos que vas a seleccionar y SigDigger calculará la frecuencia de 1 símbolo (cuantos más símbolos seleccionados, mejor probablemente). En este escenario seleccioné 10 símbolos y la "Frecuencia de selección" es 1.004 Khz:

Obtener Bits

Habiendo encontrado que esta es una señal modulada en AM y la tasa de símbolos (y sabiendo que en este caso algo arriba significa 1 y algo abajo significa 0), es muy fácil obtener los bits codificados en la señal. Así que, selecciona la señal con información y configura el muestreo y la decisión y presiona muestrear (verifica que Amplitud esté seleccionada, la Tasa de símbolos descubierta esté configurada y la recuperación de reloj de Gardner esté seleccionada):

  • Sincronizar a 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 deben seleccionarse y calcula la tasa de símbolos a partir de ello.

  • Recuperación de reloj de Gardner suele ser la mejor opción, pero aún necesitas indicar alguna tasa de símbolos aproximada.

Al presionar muestrear, esto aparece:

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 habido, por ejemplo, 4 niveles diferentes de amplitud, deberías haber configurado los Bits por símbolo a 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 qué símbolo es 00, 01, 10, 11, así que usará diferentes escalas de grises para representar cada uno (y si copias los bits, usará números del 0 al 3, necesitarás tratarlos).

Además, usa codificaciones como Manchester, y up+down puede ser 1 o 0 y un down+up puede ser un 1 o 0. En esos casos necesitas tratar los ups obtenidos (1) y downs (0) para sustituir los pares de 01 o 10 como 0s o 1s.

Ejemplo de FM

64MB
sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw

Descubriendo FM

Revisando las frecuencias y la forma de onda

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

En la imagen anterior puedes observar bastante bien 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:

Revisando el histograma

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

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

Y este sería el histograma de fase (lo que deja muy 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 amplitud y el ángulo es fase). Por lo tanto, para identificar FM, deberías ver básicamente un círculo en este gráfico. Además, una frecuencia diferente es "representada" por el gráfico IQ mediante una aceleración de velocidad a través del círculo (así que en SysDigger, al seleccionar 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):

Obtener la Tasa de Símbolos

Puedes usar 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 llevan símbolos.

Obtener Bits

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

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Last updated