
Espionagem remota de vídeo usando uma plataforma de rádio definida por software
Este projeto é um kit de ferramentas de software para espionar remotamente monitores de vídeo usando um receptor de Rádio Definido por Software (SDR). Ele explora emanações comprometedoras de cabos que transportam sinais de vídeo.
O vídeo raster é geralmente transmitido uma linha de pixels por vez, codificado como uma corrente variável. Isso gera uma onda eletromagnética que pode ser captada por um receptor SDR. O software mapeia a intensidade de campo recebida de um pixel para uma tonalidade de cinza em tempo real. Isso forma uma estimativa de cor falsa do sinal de vídeo original.
O kit de ferramentas usa hardware comercial não modificado, o que reduz os custos e aumenta a mobilidade em comparação com as soluções existentes. Ele permite pós-processamento adicional que melhora a relação sinal-ruído. O atacante não precisa ter conhecimento prévio sobre o display de vídeo alvo. Todos os parâmetros, como resolução e taxa de atualização, são estimados com o auxílio do software.
O software consiste em uma biblioteca escrita em C, uma coleção de plug-ins para vários front-ends de Rádio Definido por Software (SDR) e uma Interface Gráfica de Usuário (GUI) baseada em Java. É um aplicativo multiplataforma, com todas as bibliotecas nativas pré-compiladas e empacotadas em um único arquivo jar Java.
Clique duas vezes no arquivo JTempestSDR.jar para iniciar. Se ele não iniciar, você precisará recompilar o projeto.
Este é o wrapper Java e a GUI. Ele compila todos os projetos e plugins suportados, incluindo a própria GUI Java. Entre na pasta JavaGUI e digite
make all
Se ele não encontrar "jni.h", você deve executar um dos seguintes comandos:
make all JAVA_HOME=path_to_jdk_installation
No Windows 8 x64, isso pode ser assim:
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45
Para forçar a compilação para X64 ou X32 (caso seu compilador seja compatível), faça o seguinte:
make all JAVA_HOME=C:/PROGRA~2/Java/jdk1.7.0_45 ARCHNAME=X64
No Ubuntu com openjdk, pode ser assim:
make all JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64
No Mac OSX, o comando pode ser assim:
make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
Nota: Isso também compilará os plugins. Alguns deles exigem bibliotecas adicionais! Você pode desativar a compilação de plugins editando o Makefile em JavaSDR.
Você precisa ter o MinGW instalado.
No Windows, isso também compilará o plugin SDRplay RSP. Você primeiro precisa instalar o driver SDR de http://www.sdrplay.com/
Exemplo de como 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
E substitua <put_your_version_here> pela sua versão do JDK.
Se estiver executando o plugin SDRplay, certifique-se de que mir_sdr_api.dll e sdrplay_api.dll estejam no caminho da biblioteca (ou no mesmo diretório do executável). Você pode encontrar as dlls em C:/Program Files/SDRplay/API/x86 ou C:/Program Files/SDRplay/API/x64, dependendo da sua arquitetura.
Se você não pretende usar o dongle RSP, pode pular esta etapa editando o Makefile no diretório JavaGUI. Remova TSDRPlugin_SDRPlay da linha 89, alterando de
PLUGINS += TSDRPlugin_SDRPlay TSDRPlugin_ExtIO
para
PLUGINS += TSDRPlugin_ExtIO
No Linux e no OS X, compilar a GUI também compilará o driver UHD, então você precisará ter o UHD e as bibliotecas boost correspondentes instaladas (o UHD as instalará automaticamente). Se você não quiser os drivers UHD, pode pular a compilação deles removendo a linha 91 para Linux e a linha 93 para OS X do Makefile no diretório JavaGUI.
Todo o projeto pode ser compilado tanto com Eclipse quanto com make.
Entre na pasta e digite
make all
Isso produzirá a biblioteca que pode ser encontrada no subdiretório bin. Os cabeçalhos necessários para interagir com ela estão localizados em src/include.
Entre no diretório de um plugin e digite
make all
Isso deve funcionar, a menos que haja algo específico para o próprio plugin. Nesse caso, procure um README.
As diferentes pastas contêm os diferentes subprojetos. A pasta TempestSDR contém a biblioteca principal em C. O projeto visa ser multiplataforma com suporte a plugins para front-ends SDR em diferentes pastas.
O projeto é compilado com Eclipse com o plugin CDT (mas isso não é obrigatório). Atualmente, ele suporta Windows, Linux e OS X. Alguns plugins de frontend podem não ser multiplataforma. Você também precisa ter um Java Development Kit (JDK) instalado.
Você precisa ter o MinGW instalado e os comandos gcc e make precisam estar no seu PATH. Além disso, javac e javah também precisam estar no PATH.
libuhd-dev