
🎤⌨️ Espionaje acústico de teclado
Esta es una colección de herramientas de línea de comandos y GUI para capturar y analizar datos de audio.
La herramienta más interesante se llama keytap - puede adivinar las teclas del teclado presionadas solo analizando el audio capturado desde el micrófono del computador.
Consulta esta publicación de blog para más detalles:
Keytap: descripción y algunos pensamientos aleatorios
Video: breve demostración de Keytap en acción
La herramienta keytap2 es otra herramienta interesante para recuperar texto a partir de audio. No requiere datos de entrenamiento; en su lugar, utiliza información estadística sobre las frecuencias de las letras y n-gramas en el idioma inglés.
Una descripción más detallada de la herramienta está disponible aquí: Discusión de Keytap2
Video: breve demostración de Keytap2 en acción
CTF: ¿puedes adivinar el texto que se está escribiendo?
Esta versión introduce mejoras significativas en el algoritmo y mejores estadísticas de n-gramas en comparación con keytap2. El ataque ahora está completamente automatizado y no requiere ninguna intervención manual durante el proceso de recuperación de texto.
Video: breve demostración del uso de Keytap3
Video: otro ejemplo del uso de Keytap3
Verifica si tu teclado es vulnerable a Keytap:
"Esto funciona increíblemente bien.
Espero que te des cuenta de lo que has creado (y puesto a disposición de cada persona en el mundo)." -- ffpip
"Acabo de probarlo y funciona increíblemente bien. Como que me dan ganas de dejar de usar un teclado mecánico." -- Karawebnetwork
"Este ataque y el phreaking de Van Eck son las razones por las que Edward Snowden, mientras escribía contraseñas y otra información sensible, se cubría a sí mismo y a su laptop con una manta." -- aarchi
"Esto es lo que los usuarios de teclados mecánicos se merecen" -- super guy
"joder.." -- Lluis Franco
Dependencias:
SDL2 - usado para capturar audio y abrir ventanas gráficas libsdl
[Ubuntu]
$ sudo apt install libsdl2-dev
[Mac OS con 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) - algunas de las herramientas auxiliares realizan 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 resumen de las herramientas disponibles. Si el estado de la herramienta no es estable, espera problemas y resultados no óptimos.
record-full
Graba audio en un archivo binario sin procesar en el disco
./record-full output.kbd [-cN]
play-full
Reproduce una grabación capturada con la herramienta record-full
./play-full input.kbd [-pN]
record
Graba audio solo mientras se escribe. Útil para recopilar datos de entrenamiento para keytap
./record output.kbd [-cN] [-CN]
play
Reproduce una grabación creada con la herramienta record
./play input.kbd [-pN]
keytap
Detecta teclas presionadas mediante la captura de audio del micrófono en tiempo real. Utiliza datos de entrenamiento capturados a través de la herramienta record.
./keytap input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN] [-pF] [-tF]
keytap-gui
Detecta teclas presionadas mediante la captura de audio del micrófono en tiempo real. Utiliza datos de entrenamiento capturados a través de la herramienta record. Versión GUI.
./keytap-gui input0.kbd [input1.kbd] [input2.kbd] ... [-cN] [-CN]
Demo en línea: https://keytap.ggerganov.com
Cualquier comentario sobre el rendimiento de las herramientas es muy apreciado. Por favor, deja un comentario aquí.
| Nombre | Tipo | Estado |
|---|
| record | text | estable |
| record-full | text | estable |
| play | text | estable |
| play-full | text | estable |
| view-gui | gui | estable |
| view-full-gui | gui | estable |
| key-detector | text | estable |
| keytap | text | estable |
| keytap-gui | gui | estable |
| keytap2-gui | gui | estable |
| keytap3 | text | estable |
| keytap3-gui | gui | estable |
| - | 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 |
Detecta teclas presionadas mediante la captura de audio del micrófono. Utiliza información estadística (frecuencias de n-gramas) sobre el idioma. No se requieren datos de entrenamiento. El archivo de entrada 'record.kbd' debe generarse a través de la herramienta record-full y contiene los datos de audio que se analizarán. La carpeta 'n-gram-dir' debe contener archivos de probabilidad de n-gramas para el idioma correspondiente.
./keytap2-gui record.kbd ../data
Demo en línea: https://keytap2.ggerganov.com
keytap3
Recuperación completamente automatizada de texto desconocido a partir de grabaciones de audio.
./keytap3 input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
Demo en línea: https://keytap3.ggerganov.com
keytap3-gui
Versión GUI de la herramienta keytap3.
./keytap3-gui input.kbd ../data [-cN] [-CN] [-pF] [-tF] [-FN] [-fN]
Demo en línea: https://keytap3-gui.ggerganov.com
view-full-gui
Visualiza formas de onda grabadas con la herramienta record-full. También puede reproducir los datos de audio.
./view-full-gui input.kbd [-pN]