
Interceptación remota de video mediante una plataforma de radio definida por software
Este proyecto es un conjunto de herramientas de software para espiar de forma remota monitores de vídeo mediante un receptor de radio definida por software (SDR). Aprovecha las emanaciones comprometedoras de los cables que transportan señales de vídeo.
El vídeo rasterizado normalmente se transmite una línea de píxeles a la vez, codificada como una corriente variable. Esto genera una onda electromagnética que puede ser captada por un receptor SDR. El software asigna en tiempo real la intensidad de campo recibida de un píxel a un tono de escala de grises. Esto forma una estimación de color falso de la señal de vídeo original.
El kit de herramientas utiliza hardware comercial sin modificar, lo que reduce los costes y aumenta la movilidad en comparación con las soluciones existentes. Permite un postprocesado adicional que mejora la relación señal-ruido. El atacante no necesita tener conocimientos previos sobre la pantalla de vídeo objetivo. Todos los parámetros, como la resolución y la frecuencia de refresco, se estiman con la ayuda del software.
El software consiste en una biblioteca escrita en C, una colección de complementos para diversos front-ends de radio definida por software (SDR) y una interfaz gráfica de usuario (GUI) basada en Java. Es una aplicación multiplataforma, con todas las bibliotecas nativas precompiladas y empaquetadas en un único archivo jar de Java.
Haz doble clic en el archivo JTempestSDR.jar para iniciarlo. Si no se inicia, tendrás que recompilar el proyecto.
Este es el wrapper de Java y la GUI. Compila todos los proyectos y los complementos compatibles, incluida la propia GUI de Java. Entra en la carpeta JavaGUI y escribe
make all
Si no encuentra "jni.h", deberías ejecutar uno de los siguientes comandos:
make all JAVA_HOME=path_to_jdk_installation
En Windows 8 x64 podría ser algo como
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45
Para forzar la compilación para X64 o X32 (en caso de que tu compilador lo admita), haz lo siguiente
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45 ARCHNAME=X64
En Ubuntu con openjdk podría ser algo como
make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
En Mac OSX el comando podría ser algo como
make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
Nota: Esto también compilará los complementos. ¡Algunos requieren bibliotecas adicionales! Puedes deshabilitar la compilación de los complementos editando el Makefile en JavaSDR.
Necesitas tener MinGW instalado.
En Windows, esto también compilará el complemento SDRplay RSP. Primero necesitas instalar el controlador SDR desde http://www.sdrplay.com/
Ejemplo de cómo compilar para Windows x64
export PATH=$PATH:"/cygdrive/C/Program Files/Java/jdk<put_your_version_here>/bin"
make all JAVA_HOME=C:/PROGRA~1/Java/jdk<put_your_version_here> CC=x86_64-w64-mingw32-gcc ARCHNAME=X64
Y reemplaza <put_your_version_here> con tu versión de JDK.
Si ejecutas el complemento SDRplay, asegúrate de que mir_sdr_api.dll y sdrplay_api.dll estén en la ruta de bibliotecas (o en el mismo directorio que el ejecutable). Puedes encontrar la dll en C:/Program Files/SDRplay/API/x86 o C:/Program Files/SDRplay/API/x64, según tu arquitectura.
Si no tienes intención de usar el dongle RSP, puedes omitir este paso editando el Makefile en el directorio JavaGUI. Elimina TSDRPlugin_SDRPlay de la línea 89, cambiándolo de
PLUGINS += TSDRPlugin_SDRPlay TSDRPlugin_ExtIO
a
PLUGINS += TSDRPlugin_ExtIO
En Linux y OS X, compilar la GUI también compilará el controlador UHD, por lo que necesitarás tener instalados UHD y las bibliotecas boost correspondientes (UHD las instalará automáticamente). Si no quieres los controladores UHD, puedes omitir su compilación eliminando la línea 91 para Linux y la línea 93 para OS X del Makefile en el directorio JavaGUI.
Todos los proyectos pueden compilarse tanto con Eclipse como con make.
Entra en la carpeta y escribe
make all
Esto producirá la biblioteca que se puede encontrar en el subdirectorio bin. Los archivos de cabecera que necesitas para interactuar con ella se encuentran en src/include.
Entra en un directorio de complementos y escribe
make all
Esto debería funcionar a menos que haya algo específico para el propio complemento. En ese caso, busca un README.
Las distintas carpetas contienen los diferentes subproyectos. La carpeta TempestSDR contiene la biblioteca principal en C. El proyecto pretende ser multiplataforma con soporte de complementos para front-ends SDR en diferentes carpetas.
El proyecto se compila con Eclipse con el complemento CDT (pero no es obligatorio). Actualmente es compatible con Windows, Linux y OS X. Algunos complementos de front-end podrían no ser multiplataforma. También necesitas tener instalado un Java Development Kit (JDK).
Necesitas tener MinGW instalado y los comandos gcc y make deben estar en tu PATH. Además, javac y javah también deben estar en tu PATH.
libuhd-dev