
🎤⌨️ Espionagem acústica de teclado
Esta é uma coleção de ferramentas de linha de comando e GUI para capturar e analisar dados de áudio.
A ferramenta mais interessante é chamada keytap - ela pode adivinhar teclas pressionadas apenas analisando o áudio capturado do microfone do computador.
Veja esta postagem do blog para mais detalhes:
Keytap: descrição e alguns pensamentos aleatórios
Vídeo: breve demonstração do Keytap em ação
A ferramenta keytap2 é outra ferramenta interessante para recuperar texto a partir de áudio. Ela não requer dados de treinamento - em vez disso, usa informações estatísticas sobre as frequências das letras e n-gramas na língua inglesa.
Uma descrição mais detalhada da ferramenta está disponível aqui: Discussão do Keytap2
Vídeo: breve demonstração do Keytap2 em ação
CTF: você consegue adivinhar o texto sendo digitado?
Esta versão introduz melhorias significativas no algoritmo e melhores estatísticas de n-gramas em comparação com o keytap2. O ataque agora é totalmente automatizado e não requer nenhuma intervenção manual durante o processo de recuperação de texto.
Vídeo: breve demonstração do uso do Keytap3
Vídeo: outro exemplo de uso do Keytap3
Verifique se seu teclado é vulnerável ao Keytap:
"Isso funciona incrivelmente bem.
Espero que você perceba o que criou (e disponibilizou para todas as pessoas do mundo)." -- ffpip
"Acabei de experimentar e funciona incrivelmente bem. Me faz querer parar de usar um teclado mecânico." -- Karawebnetwork
"Este ataque e a captura Van Eck são os motivos pelos quais Edward Snowden, ao digitar senhas e outras informações sensíveis, cobria a si mesmo e seu laptop com um cobertor." -- aarchi
"É isso que os usuários de teclado mecânico merecem" -- super guy
"porra.." -- Lluis Franco
Dependências:
SDL2 - usado para capturar áudio e abrir janelas GUI libsdl
[Ubuntu]
$ sudo apt install libsdl2-dev
[Mac OS com brew]
$ brew install sdl2
[MSYS2]
$ pacman -S git cmake make mingw-w64-x86_64-dlfcn mingw-w64-x86_64-gcc mingw-w64-x86_64-SDL2
FFTW3 (opcional) - algumas das ferramentas auxiliares realizam transformadas de Fourier fftw
Linux, FreeBSD, Mac OS, Windows (MSYS2 + MinGW)
git clone https://github.com/ggerganov/kbd-audio
cd kbd-audio
git submodule update --init
mkdir build && cd build
cmake ..
make
Breve resumo das ferramentas disponíveis. Se o status da ferramenta não for estável, espere problemas e resultados não ótimos.
| Nome | Tipo | Status |
|---|---|---|
| record | text | estável |
| record-full | text | estável |
| play | text | estável |
| play-full | text | estável |
| view-gui | gui | estável |
| view-full-gui | gui | estável |
| key-detector | text | estável |
| keytap | text | estável |
| keytap-gui | gui | estável |
| keytap2-gui | gui | estável |
| keytap3 | text | estável |
| keytap3-gui | gui | estável |
| - | extra | - |
| guess-qp | text | experimental |
| guess-qp2 | text | experimental |
| keytap3-multi | text | experimental |
| scale | text | experimental |
| subreak | text | experimental |
| key-average-gui | gui | experimental |
| keytap2 | text | experimental |
record-full
Grava áudio em um arquivo binário bruto no disco
./record-full output.kbd [-cN]
play-full
Reproduz uma gravação capturada com a ferramenta record-full
./play-full input.kbd [-pN]
record
Grava áudio apenas enquanto digita. Útil para coletar dados de treinamento para o keytap
./record output.kbd [-cN] [-CN]
play
Reproduz uma gravação criada com a ferramenta record
./play input.kbd [-pN]
keytap
Detecta teclas pressionadas através da captura de áudio do microfone em tempo real. Usa dados de treinamento capturados pela ferramenta record.
./keytap input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN] [-pF] [-tF]
keytap-gui
Detecta teclas pressionadas através da captura de áudio do microfone em tempo real. Usa dados de treinamento capturados pela ferramenta record. Versão GUI.
./keytap-gui input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN]
Demonstração online: https://keytap.ggerganov.com
keytap2-gui record.kbd n-gram-dir [-pN] [-cN] [-CN]
Detecta teclas pressionadas através da captura de áudio do microfone. Usa informações estatísticas (frequências de n-gramas) sobre o idioma. Nenhum dado de treinamento é necessário. O arquivo de entrada 'record.kbd' deve ser gerado pela ferramenta record-full e contém os dados de áudio que serão analisados. A pasta 'n-gram-dir' deve conter arquivos de probabilidade de n-gramas para o idioma correspondente.
./keytap2-gui record.kbd ../data
Demonstração online: https://keytap2.ggerganov.com
keytap3
Recuperação totalmente automatizada de texto desconhecido a partir de gravações de áudio.
./keytap3 input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
Demonstração online: https://keytap3.ggerganov.com
keytap3-gui
Versão GUI da ferramenta keytap3.
./keytap3-gui input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
Demonstração online: https://keytap3-gui.ggerganov.com
view-full-gui
Visualize formas de onda gravadas com a ferramenta record-full. Também pode reproduzir os dados de áudio.
./view-full-gui input.kbd [-pN]
view-gui
Visualize dados de treinamento gravados com a ferramenta record. Também pode reproduzir os dados de áudio.
./view-gui input.kbd [-pN]