Keelog ha decidido publicar la versión anterior de su familia de keylogger por hardware, facilitando la versión completa de firmware y el código fuente del software, los esquemas eléctricos y la documentación. Este keylogger PS/2 es un dispositivo 100% operativo y probado, instalado y utilizado por cientos de personas en todo el mundo. El funcionamiento de este keylogger por hardware es parecido a la versión KeyGrabber PS/2. Para registrar y analizar los datos de las pulsaciones de teclas les proporcionamos la aplicación KeyGrab. No obstante, recordamos que este keylogger por hardware tipo DIY se entrega tal como está, con todos sus defectos y sin garantía ninguna.

Keylogger por Hardware Open Source DIY

Antes de proceder a trabajar mire el listado de abajo y compruebe si dispone de todas las herramientas y habilidades necesarias para realizar el proyecto de Keylogger por Hardware Open Source:

  • experiencia básica en hardware electrónico
  • estañador para circuitos integrados
  • programador de microcontroladores (compatible con la familia Atmel AT89CXX51)
Keylogger por Hardware Open Source DIY - componentes

Los siguientes componentes son necesarios para realizar el proyecto de keylogger por hardware:

  • microcontrolador Atmel AT89C2051 (o AT89C1051, AT89C4051)
  • memoria EEPROM tipo AT24C512 (o compatible)
  • cuarzo 12 MHz
  • 2 x condensador 33p
  • condensador 10 uF
  • resistor 10 k
  • pulsador pequeño
Keylogger por Hardware Open Source DIY - cable PS/2

También es necesaria una protección para el keylogger. Una buena idea sería comprar un cable de extensión PS/2 y un trozo de tubo termorretráctil de unos 10 centímetros. Este tubo se contraerá con el calor, cubriendo el listo keylogger.

Empiece por programar el firmware del microcontrolador. Lance la aplicación del programador, seleccione el microcontrolador AT89C2051 y cargue el programa utilizando el código en la versión binaria o en la versión hex. También se puede recompilar la fuente utilizando el código fuente y un compilador 8051. El estañado es probablemente la parte más difícil del proyecto, dado que el keylogger por hardware debería ser el más pequeño posible. En el esquema eléctrico abajo se puede ver cómo deben quedar las conexiones entre los componentes del keylogger por hardware.

Keylogger por Hardware Open Source DIY - experiencia básica en hardware electrónico

Estañe los componentes empezando por el microcontrolador y la memoria EEPROM. Se puede eliminar los pines que no se utilicen. Asegúrese de que haya acceso al pulsador. Al montar los condensadores compruebe si están polarizados correctamente.

Keylogger por Hardware Open Source DIY - estañado

Intente hacer el dispositivo lo más compacto posible, sin embargo, evitando los cortocircuitos, ya que una vez montado el dispositivo éstos serán difíciles de eliminar. Después de estañar los componentes principales el keylogger debería ser parecido al prototipo en la foto.

Keylogger por Hardware Open Source DIY - conectores

Al final proceda a estañar los conectores PS/2 al keylogger. Es recomendable cortar un cable de extensión PS/2 en dos y estañar cada parte por separado. Recuerde situar el tubo termorretráctil en una parte del cable. Conecte los cuatro pines de PS/2 utilizados (CLK, DATA, VCC y GND) a ambos conectores (el del teclado y el del ordenador).

Keylogger por Hardware Open Source DIY

Antes de cubrir el keylogger con el tubo termorretráctil es recomendable aplicar un poco de cola o resina entre los componentes para darle más rigidez al dispositivo. Finalmente sitúe el tubo termorretráctil en los componentes estañados y caliéntelo para que cubra bien los componentes. Corte un orificio pequeño para asegurar acceso al pulsador.

El keylogger por hardware empezará a registrar las pulsaciones de teclas una vez enchufado el ordenador y el teclado. El keylogger no influye de ninguna forma en el funcionamiento del ordenador y no puede ser detectado por software. Todos los datos de las pulsaciones de teclas mandados por el teclado serán grabados en la memoria no volátil EEPROM de 64 kB. El modo de registro es totalmente independiente del sistema operativo instalado en el ordenador.

Keylogger por Hardware Open Source DIY - instalación 1

Localice el conector PS/2 de teclado en el ordenador.

Keylogger por Hardware Open Source DIY - instalación 2

Desenchufe el teclado.

Keylogger por Hardware Open Source DIY - instalación 3

Conecte el keylogger por hardware en el lugar del teclado.

Keylogger por Hardware Open Source DIY - instalación 4

Conecte el teclado al keylogger. El registro de datos empezará en el momento cuando se ponga el ordenador en marcha.

Una vez los datos del teclado han sido grabados en el modo de registro, se pueden reproducir en cualquier PC que utilice el sistema operativo Windows 9X/Me/XP/2000. El keylogger por hardware lo realiza simulando las pulsaciones del teclado. Los datos de las pulsaciones del teclado que se transmiten son capturados por la aplicación KeyGrab. Una vez transmitidos al ordenador, estos datos podrán ser procesados y analizados. Para iniciar la descarga de datos siga las instrucciones a continuación.

Keylogger por Hardware Open Source DIY - Modo de registro 1

Lance la aplicación KeyGrab.

Keylogger por Hardware Open Source DIY - Modo de registro 2

Conecte el keylogger por hardware en el lugar del teclado. No conecte el teclado.

Keylogger por Hardware Open Source DIY - Modo de registro 3

Haga click en la barra de título de la aplicación KeyGrab para activarla.

Keylogger por Hardware Open Source DIY - Modo de registro 4

Presione el pulsador del keylogger para iniciar la descarga de datos. Durante la transmisión no cambie la aplicación activa. Vuelva a presionar el pulsador para terminar la transmisión cuando los datos deseados hayan sido transferidos al PC.

Keylogger por Hardware Open Source DIY - Modo de registro 5

Desconecte el keylogger por hardware y vuelva a conectar el teclado PS/2.

Durante la descarga de datos a la tabla principal de la aplicación KeyGrab estos datos son automáticamente procesados para mostrar las teclas pulsadas durante el registro. Los datos se transmiten en el orden inverso, para que las teclas pulsadas últimamente aparezcan como primeras. Los datos sobre las pulsaciones de teclas de hace mucho tiempo serán mostrados como últimos. La tabla se puede analizar manualmente o utilizando las opciones de búsqueda.

Keylogger por Hardware Open Source DIY - Análisis de datos

1 - Posición del dato en la memoria hardware del keylogger (formato hex).
2 - Pulsación de tecla registrada y guardada.
3 - Incidencia - pulsación o liberación de tecla.
4 - Scan code de pulsación de tecla en el bus PS/2 (formato hex).
5 - Última posición grabada durante el registro en la memoria (formato hex).
6 - Tamaño de la memoria hardware del keylogger (en kilobits).

Las únicas columnas que pueden ser de interés para el usuario son la Tecla (2) y la Acción (3). Estas columnas codifican qué teclas han sido presionadas y liberadas. Utiliza la barra de desplazamiento para ver la historia de teclas pulsadas en el modo de registro. Los datos del keylogger se transmiten en el orden inverso (las teclas presionadas últimamente aparecerán como primeras).

La aplicación para la descarga y análisis de datos del keylogger por hardware tipo DIY para Windows 9X/ME/2000/XP:
KeyGrab.zip (0.7MB)

El código fuente completo para el microcontrolador AT89C2051:
Código fuente - diy.asm

Firmware precompilado para el microcontrolador AT89C2051:
fichero BIN - diy.bin, fichero HEX - diy.hex

Keylogger por Hardware Open Source DIY - KeyGrab

Le animamos a leer esta sección, lo que le puede ayudar a evitar algunos problemas que puedan surgir a la hora de utilizar el keylogger por hardware.

Responsabilidad legal

  1. La legislación respecto al registro de datos de las pulsaciones de teclas varía según los países. El desconocimiento de la ley no exime de su cumplimento. Por favor, lea nuestro Acuerdo con el Usuario.
  2. La empresa Keelog no se hará responsable por los daños o perjuicios causados por el uso de este keylogger por hardware.
  3. Este dispositivo no podrá ser utilizado para la captación no autorizada de datos, en particular contraseñas, datos bancarios, correspondencia confidencial, etc. En la mayoría de los países lo antedicho se considera un delito.

Registro de datos de teclas

  1. El keylogger por hardware dispone de 64 kB de memoria no volátil EEPROM. Cuando la memoria esté llena la grabación de datos empezará otra vez, empezando por la primera localización en la memoria. De esta forma los datos más antiguos se perderán.
  2. Los primeros 128 bytes de la memoria están reservados para los datos de configuración, por ejemplo, para guardar la dirección del último acceso a la memoria. La última dirección de acceso se actualiza en la memoria cada 10 segundos aproximadamente.
  3. No deje el keylogger por hardware conectado en el modo de registro cuando no es necesario. La memoria se va a llenar y los datos antiguos, algunos de ellos importantes, pueden sobrescribirse.

Transmisión de datos

  1. Para reproducir los datos del keylogger por hardware se necesita un ordenador de la clase 100 MHz Pentium o superior, con el Windows 9X/Me/XP/2000 instalado.
  2. El keylogger por hardware transmite los datos al ordenador simulando el teclado. El teclado real tiene que estar desconectado durante la transmisión.
  3. La aplicación activa tiene que ser la KeyGrab. En caso contrario, Windows u otra aplicación empezarán a interpretar las simuladas pulsaciones de teclas que llegan del keylogger por hardware.
  4. Los datos de pulsaciones de teclas se descargan en el orden cronológico inverso. De esta forma, los datos más recientes aparecen como primeros. Para obtener los datos más antiguos hay que esperar un rato. La transmisión puede durar en total hasta 20 minutos.
  5. Es necesario terminar la transmisión manualmente, presionando el pulsador otra vez. Hágalo cuando los datos empiecen a duplicarse.

Funcionamiento del teclado PS/2

  1. El funcionamiento del teclado PS/2 es un poco más complicado de lo que pueda parecer. Esto se puede observar analizando los datos sin procesar, guardados por el keylogger por hardware. El teclado del PC genera un carácter con cada pulsación de tecla. Cuando se libera la tecla, este carácter se genera otra vez, procedido por el carácter 240 (F0 hex). También existen unas teclas extendidas, las que utilizan el carácter 224 (E0 hex). Para saber más lea la sección Protocolo de teclado PS/2.
  2. Aunque el keylogger por hardware tiene 64 kB de memoria, esto no significa que se puedan guardar 64 mil pulsaciones de teclas. Cada secuencia pulsación-liberación de la tecla requiere tres bytes, en caso de teclas estándar, y 5 bytes, en caso de teclas extendidas. El registro de datos ha sido optimizado en las versiones comerciales.

Generalidades

Keylogger por Hardware Open Source DIY - líneas de señal PS/2

Al cortar un cable de teclado PS/2 probablemente encontraremos dentro 6 alambres. Solamente 4 de ellos son significativos. Dos de ellos son líneas de alimentación: la de tierra (GND) y la de +5 voltios (VCC), que van de la fuente de alimentación del ordenador. Los dos alambres restantes son líneas de transmisión asíncrona: la línea de datos (DATA) y la del reloj (CLK). En la figura a la derecha se puede ver la correspondencia entre estas líneas y los pines conectores DIN (a) y miniDIN (b). La transmisión es bidireccional, no obstante, el teclado es superior. El teclado envía la información sobre las teclas presionadas y liberadas. El bloque de datos consiste de un solo byte, precedido por un bit inicial y seguido por una paridad y un bit final. El teclado manda los sucesivos bits por la línea de DATA, y los temporiza con impulsos negativos en la línea CLK. La frecuencia del reloj es de 10...30 kHz. Esto sería un protocolo de serie muy bonito, si no fuera por el ordenador, que de vez en cuando quiere mandar información al teclado. En tal caso, el PC pone la línea CLK a cero por un tiempo y espera a que el teclado empiece a generar impulsos. Cuando empiezan los impulsos, éste pone sus propios datos en la línea de DATA. En la figura abajo se pueden ver los diagramas de estado de la transmisión del teclado al host y del host al teclado. Evidentemente, este protocolo tiene un par de excepciones, por ejemplo, interrupción de la transmisión, caracteres repetidos, etc. No obstante, estos casos son muy poco frecuentes.

Keylogger por Hardware Open Source DIY - formas de onda

Datos del bus

Pues ¿qué datos se transmiten realmente por las líneas del teclado? Al ponerse en marcha tanto el teclado como el ordenador envían unos datos de iniciación, informando que están en buenas condiciones. Cuando el ordenador trabaja normalmente, sólo el teclado manda datos. Estos datos conciernen a todas las acciones que tuvieron lugar. Una acción se considera una pulsación o liberación de una tecla. Si se presiona una tecla estándar, se envía su, así llamado, "scan code". Cada tecla tiene exactamente un scan code, creando así un mapa de scan codes. Si se libera una tecla, primero se envía un especial byte 240 (F0 hex), y después se envía el scan code. Así que una pulsación de tecla ocasiona el envío de 3 caracteres por línea. Si se mantiene una tecla presionada por un cierto tiempo, su scan code se generará constantemente, repitiéndose con una frecuencia determinada. Cuando finalmente se libera esta tecla, se mandará el carácter 240 (F0 hex), y después el scan code. Este protocolo seguiría siendo muy bonito y agradable, si no fuera por unas teclas especiales del teclado estándar del PC, tales como, por ejemplo, las teclas Inicio, Fin, las flechas, etc. Cuando se presiona una tecla especial, se genera el byte 224 (E0 hex), seguido por el scan code. Cuando se libera una tecla especial, se lanza la secuencia 224, 240 (E0, F0) seguida por el scan code. Respecto al mapa de scan codes las teclas normales y las especiales son comunes para todas las distribuciones nacionales del teclado. Para hacer las cosas un poco más complicadas, existen dos teclas superespeciales, la de Imprimir Pantalla y la de Pausa, que provocan la transmisión de una entera secuencia de scan codes. Para la persona que prepara la comunicación con el teclado es mejor pretender que estas teclas no existen.

Registro de datos

El microcontrolador controla las líneas DATA y CLK todo el tiempo, capturando todos los datos. Los datos se graban en la memoria no volátil EEPROM a medida que llegan por la línea. Gracias a ello el usuario podrá enterarse de todas las acciones que fueron llevadas a cabo en el teclado. Cuando el usuario decida que el registro está terminado, el keylogger por hardware cambiará al modo playback. El teclado tiene que estar desconectado, en caso contrario empezará a interpretar el flujo de datos. El keylogger iniciará la simulación de las pulsaciones de teclado utilizando para ello su memoria interna hardware. La aplicación KeyGrab tiene que estar activa, para procesar el flujo de datos que llegan del keylogger por hardware. Las teclas normales se simulan tal como habían sido registradas en la memoria, mientras que las teclas especiales se transmiten utilizando un código hex de dos bytes.