Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/samyk/keysweeper
Embedded Systems SecurityPacket Sniffing & AnalysisData ExfiltrationInformation GatheringWireless SecurityHardware HackingRed Teaming
GitHubsamyk/keysweeper

keysweeper

KeySweeper is a stealthy Arduino-based device, camouflaged as a functioning USB wall charger, that wirelessly and passively sniffs, decrypts, logs and reports back (over GSM) all keystrokes from any Microsoft wireless keyboard in the vicinity.

Ver Repositorio
1.1k246hace 9 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

KEYSWEEPER // SIGINT // SAMY.PL // REL TO ALL // APPLIED HACKING

KeySweeper

KeySweeper es un dispositivo sigiloso basado en Arduino, camuflado como un cargador USB de pared funcional, que intercepta, descifra, registra y reporta (a través de GSM) de forma inalámbrica y pasiva todas las pulsaciones de teclado de cualquier teclado inalámbrico Microsoft en las cercanías.

Todas las pulsaciones se registran en línea y localmente. Se envían alertas SMS al escribir palabras clave, nombres de usuario o URL, exponiendo contraseñas. Si se desconecta, KeySweeper continúa operando con su batería interna y se recarga automáticamente al volver a conectarse. Una herramienta web permite la monitorización de pulsaciones en vivo.

Demostración en vivo y detalles completos disponibles en el video: KeySweeper


KeySweeper

Herramienta de monitoreo en vivo de KeySweeper

Punto de contacto: @SamyKamkar // [email protected] // http://samy.pl

Publicado: 12 de enero de 2015

Código fuente / esquemático: https://github.com/samyk/keysweeper

Costo unitario: $10 - 80 dependiendo de la operación

Estado: Operativo, código abierto, hardware abierto, desclasificado.


(U) Capacidades

Internos de KeySweeper

KeySweeper es un dispositivo sigiloso basado en Arduino, camuflado como un cargador USB de pared funcional, que intercepta, descifra, registra y reporta de forma inalámbrica y pasiva todas las pulsaciones de teclado de cualquier teclado inalámbrico Microsoft (que usa un protocolo RF propietario de 2.4GHz) en el área.

Las pulsaciones se envían al operador de KeySweeper a través de Internet mediante un chip GSM opcional, o pueden almacenarse en un chip flash y entregarse de forma inalámbrica cuando un segundo dispositivo KeySweeper se acerca al alcance inalámbrico del KeySweeper objetivo. Una herramienta web permite la monitorización de pulsaciones en vivo.

KeySweeper tiene la capacidad de enviar alertas SMS cuando se escriben ciertas pulsaciones, p. ej. "www.bank.com". Si KeySweeper se desconecta de la corriente alterna, parece apagarse, sin embargo continúa operando de forma encubierta usando una batería interna que se recarga automáticamente al volver a conectarse a la corriente alterna.

KeySweeper extiende el trabajo de Travis Goodspeed en el proyecto goodfet.nrf y el de Thorsten Schröder y Max Moser del proyecto KeyKeriki v2.0.

SMS de KeySweeper


(U) Hardware

Teclado inalámbrico Microsoft 800

Microcontrolador Arduino / Teensy

$3 - 30: Se puede usar un microcontrolador Arduino o Teensy. En mi construcción, uso un Arduino Pro Mini de 3.3v debido a su perfil muy delgado.

Chip RF nRF24L01+ de 2.4GHz

$1: Uso un chip RF nRF24L01+ de $1 que se comunica usando GFSK sobre 2.4GHz. Más detalles disponibles abajo, y estos chips se pueden comprar por tan solo $1 en eBay. Estos chips solo pueden comunicarse usando protocolos propietarios, y no están diseñados para la interceptación, sin embargo veremos abajo que pueden usarse de maneras ingeniosas para interceptar de forma promiscua.

Cargador USB de CA

$6: Uso un cargador USB de CA económico (rectificador) que convierte la corriente alterna en 5v DC, y el que enlazo tiene la suerte de tener un tornillo que facilita abrirlo (he destruido algunos otros en el proceso de apertura). Si se usa la versión GSM de KeySweeper, en realidad uso dos cargadores USB: los internos de un cargador pequeño (similar al de un cargador de iPhone), y la carcasa externa de un cargador USB más grande.

Chip Flash Serial SPI

OPCIONAL ($2): Se puede usar un chip Flash Serial SPI opcional para almacenar las pulsaciones. Si usas la placa FONA GSM más abajo, esto no es necesario ya que las pulsaciones se pueden almacenar a través de Internet en vivo, sin embargo si deseas una opción de menor costo, puedes almacenar las pulsaciones en este chip dentro de KeySweeper, y obtenerlas más tarde acercándote al alcance inalámbrico de 2.4GHz del dispositivo con un dispositivo secundario que extraerá las pulsaciones de él.

La mayoría de los microcontroladores tienen memoria o EEPROM muy limitada para almacenar datos, por lo tanto la ventaja de tener un chip flash para almacenar estas pulsaciones.

Adafruit FONA

OPCIONAL ($45): Adafruit ha creado una placa llamada FONA que permite usar una tarjeta SIM 2G para enviar/recibir SMS, llamadas telefónicas, y usar Internet directamente desde el dispositivo.

Usando esto, no se necesita un chip flash ya que las pulsaciones se envían inmediatamente a un servidor backend para la recopilación adecuada de datos. Además, si los teclados objetivo escriben palabras clave específicas, se puede enviar un mensaje SMS a un número designado para alertar al operativo del hecho.

Tarjeta SIM

OPCIONAL ($3, solo si se usa FONA): La FONA requiere una tarjeta mini-SIM (no una micro-SIM). Uso una tarjeta SIM prepagada de T-Mobile. Sugiero usar T-Mobile ya que soporta 2G, donde la mayoría de los otros operadores han deprecado o están deprecando su red 2G, y la FONA solo soporta 2G para Internet. Asegúrate de obtener el tamaño correcto de tarjeta SIM: más detalles sobre los requisitos de SIM de FONA aquí.

Batería de iones de litio (LiOn o LiPo) de 3.7V

OPCIONAL ($5 o más, solo si se usa FONA): La FONA proporciona recarga de batería LiPo/LiOn integrada, y mientras KeySweeper esté conectado a la corriente alterna, la batería se mantendrá cargada, pero es necesaria de todos modos. Además, KeySweeper continúa operando de forma encubierta con energía de la batería cuando se desconecta de la corriente alterna, y comienza a recargarse al volver a conectarse a la corriente alterna.

KeySweeper desconectado


(U) Software

KeySweeper

El código fuente de KeySweeper se puede obtener por completo desde mi github: https://github.com/samyk/keysweeper

KeySweeper tiene varias partes. El código principal se instala en el microcontrolador, mientras que un backend web que usa jQuery y PHP registra todas las pulsaciones y proporciona una interfaz web para la monitorización en vivo de los teclados objetivo.

KeySweeper también necesita los siguientes archivos de la librería RF24 de maniacbug:

  • RF24.h
  • nRF24L01.h
  • RF24_config.h

Solo copia los archivos al directorio keysweeper_mcu_src. También tienes que cambiar la declaración #include en el archivo RF24.h de #include <RF24_config.h> a #include "RF24_config.h".

Librería Adafruit FONA

Deberías usar mi versión de la librería Adafruit FONA ya que incluyo una opción adicional que permite que la FONA nos avise cuando hay un nuevo mensaje de texto. En la librería original, debes consultar constantemente para ver si hay más mensajes de texto de los esperados, sin embargo con mi versión puedes habilitar una opción fona.setSMSInterrupt(1) que hace que el pin RI (interrupción de timbre) se ponga en bajo por un momento cuando llegan nuevos mensajes SMS.

jQuery Terminal

He creado una herramienta backend que permite monitorear teclados en vivo a través de una página web. El plugin jQuery Terminal lo hace ver más atractivo.

Teclado virtual jQuery UI

Teclado virtual jQuery UI continúa haciendo que la herramienta de interfaz de espionaje en vivo de KeySweeper se vea atractiva, mostrando las teclas del teclado virtual presionándose cuando el usuario realmente presiona teclas.

Herramienta de monitoreo en vivo de KeySweeper


(U) Determinación del protocolo inalámbrico del teclado

Al obtener un teclado inalámbrico Microsoft, si está en nuestra posesión, podemos mirar la parte trasera para inspeccionar el ID de la FCC. En mi teclado, el ID de la FCC (que es requerido por todos los dispositivos que usan radiofrecuencias en EE. UU.) es C3K1455, que podemos buscar fácilmente en el sitio web de la FCC.

http://samy.pl/keysweeper/fcc.jpg

Inmediatamente descubrimos que el teclado se comunica en 2403 - 2480MHz según el informe de la FCC.

Ahora que sé que este es un dispositivo de 2.4GHz, asumo que opera usando un protocolo común de 2.4GHz como wi-fi, bluetooth, zigbee, u otros, o que opera usando un protocolo propietario. Debido a que el dispositivo venía con su propio dongle USB (con su propio ID de la FCC, C3K1461), es muy probable que sea una señal propietaria de 2.4GHz.

Debido a que es probablemente propietaria de 2.4GHz, ahora necesitamos usar algún método de interceptación de 2.4GHz. Los sniffer wifi no ayudarán ya que esto no es 802.11 (como el que usamos en SkyJack), y RTL-SDR por sí solo no ayudará ya que alcanza su límite alrededor de 2.2GHz a menos que se use adicionalmente un conversor descendente de RF (usamos RTL-SDR en Digital Ding Dong Ditch), así que inmediatamente quiero usar HackRF, un software defined radio potente y económico, sin embargo aunque es extremadamente potente por su precio, quizás podamos arreglárnoslas con hardware más económico.

Basándome en experiencia previa, mi suposición es que el teclado está usando algo como un Nordic nRF24L01+, un TI CC2500, o Cypress CYRF6936, pero no lo sabremos con certeza sin una inspección adicional.

http://samy.pl/keysweeper/int1.jpg

Después de quitar los tornillos del teclado y abrirlo, vemos un solo chip responsable de todo. Está etiquetado NRF 24LE1H, que suena mucho a nRF24L01 (n=Nordic Semiconductor, RF=Radiofrecuencia, 24=2.4GHz). Rápidamente encontramos el chip nRF24LE1 con una búsqueda y vemos que de hecho tiene el chip RF nRF24L01+ integrado con una CPU (System-on-Chip/SoC), y una búsqueda rápida en eBay muestra que el nRF24L01+ puede sernos enviado por menos de $1.

El nRF24LE1 integra un núcleo transceptor RF nRF24L01+ de 2.4GHz, una CPU mejorada de 16MHz de 8 bits compatible con 8051, 1kB + 256B de RAM, 16kB de Flash integrado, y una amplia gama de periféricos del sistema. http://samy.pl/keysweeper/int2.jpg

Mirando la hoja de datos del nRF24L01+, vemos que este es un chip RF de 2.4GHz que opera a 250kbps/1Mbps/2Mbps, usa GFSK (modulación por desplazamiento de frecuencia gaussiana es una modulación de frecuencia digital/FM), y desafortunadamente carece de cualquier modo promiscuo o directo legítimo para interceptar... ¿o sí?

http://samy.pl/keysweeper/Amfm3-en-de.gif


(U) Interceptando señales propietarias de 2.4GHz

Aunque normalmente sacaría algo como un HackRF o RTL-SDR con conversor descendente digital (para llevar 2.4GHz al rango de RTL-SDR), sería realmente agradable si pudiéramos interceptar con hardware más económico, ya que en última instancia quiero empaquetar todo en un dispositivo que pueda dejarse en el campo.

Después de una búsqueda básica, apareció una página increíble de Travis Goodspeed, donde no solo intercepta un teclado similar (Microsoft Comfort Desktop 5000), sino que también demuestra cómo convertir el nRF24L01+ en un sniffer de 2.4GHz usando su dispositivo GoodFET, y una computadora anfitriona con la aplicación python goodfet.nrf.

GoodFET y nRF24L01+

Travis descubrió que interceptar con el dispositivo es tradicionalmente difícil porque no solo debes especificar el canal (frecuencia) a escuchar, sino que también debes especificar una dirección MAC para escuchar. El chip nRF solo entregará paquetes enviados a esa dirección MAC específica. Además, el chip nRF no te dirá la dirección MAC ya que ya la especificaste (se asume que está en uno de nuestros pipes RX_ADDR_P[0-5], que se encuentran en la hoja de datos).

Sin embargo, al especificar la longitud de la MAC, Travis descubrió que hay una opción que se considera "ilegal" en la hoja de datos (SETUP_AW, 0x03 establecido a 00), pero en realidad establece la MAC a 2 bytes. Además, al establecer la MAC a datos que típicamente se encontrarían en el preámbulo (0x00AA o 0x0055, en binario 0000000010101010 o 0000000001010101), podemos engañar al dispositivo para que nos dé el paquete temprano, proporcionándonos una dirección MAC completa en la porción de datos. Lee su excelente artículo para todos los detalles.

Dongle USB de Microsoft


(U) Aumentando velocidad y portabilidad

Ahora bien, aunque podemos usar un GoodFET, una computadora y un nRF24L01+ para interceptar durante las pruebas, en última instancia queremos que esto esté en un dispositivo económico y embebido. Podemos tomar parte del excelente trabajo de Travis en Python y portarlo a C embebido para poder cargarlo en un microcontrolador en lugar de requerir una computadora+GoodFET.

Además, implementamos algunas mejoras. Goodfet.nrf proporciona un método para escanear dispositivos realizando lo siguiente:

  • comenzar en la frecuencia 2400MHz
  • establecer la velocidad de datos a 1Mbps y la MAC a 0x00AA, escuchar durante 10 segundos
  • establecer la velocidad de datos a 2Mbps y la MAC a 0x00AA, escuchar durante 10 segundos
  • establecer la velocidad de datos a 1Mbps y la MAC a 0x0055, escuchar durante 10 segundos
  • establecer la velocidad de datos a 2Mbps y la MAC a 0x0055, escuchar durante 10 segundos
  • incrementar la frecuencia y empezar de nuevo, y una vez que lleguemos a 2528MHz, reiniciar a 2400 (128 frecuencias)
  • al ver un posible teclado, requerimos al menos cuatro paquetes para alcanzar un umbral y estar seguros de que es un paquete legítimo, ya que obtenemos muchos falsos positivos

Esto significa que para escanear el rango completo de frecuencias, toma ~85 minutos y al menos varias pulsaciones de teclas deben presionarse mientras interceptamos dentro del período correcto de 10 segundos. Después de revisar la investigación y el teclado de Travis, la investigación y el teclado de KeyKeriki, y mi propio teclado, podemos implementar algunas mejoras:

  • si recuerdas de la FCC, solo estamos usando 2403 - 2480MHz para estos teclados, reduciendo nuestras 128 frecuencias posibles a 78 (una reducción de aproximadamente 40% en el escaneo)
  • todos los teclados usan 2Mbps, reduciendo nuestra búsqueda a la mitad
  • después de inspeccionar más teclados, descubrí que todos los teclados Microsoft comienzan con 0xCD como la MAC, lo que nos dice que nuestro preámbulo siempre será 0xAA (10101010) porque el preámbulo de 0xAA siempre es seguido por un bit 1 (0xCD es 11001101) para mantener los bits alternando, reduciendo nuestra búsqueda a la mitad
  • debido a que conocemos el primer byte de nuestra MAC (0xCD), y también conocemos ciertos paquetes a buscar, simplemente detectamos solo esos paquetes, lo que significa que solo necesitamos ver un solo paquete para estar seguros de que de hecho es un teclado
  • reducimos el escaneo por frecuencia a 500ms, haciendo que nuestro escaneo tome menos de 40 segundos para completar un barrido completo

(U) Descifrando pulsaciones de teclas

Thorsten Schröder y Max Moser presentaron un gran dispositivo, el KeyKeriki, capaz de interceptar teclados Microsoft y han realizado ingeniería inversa completa del proceso de descifrado y produjeron un dispositivo para hacerlo. Sin embargo, Travis señala que su dispositivo requiere dos radios y un microcontrolador de gama alta para capturar y analizar paquetes a la velocidad de 2Mbps a la que se comunican los teclados. El proyecto de Travis también es excelente, sin embargo requiere una computadora anfitriona y será demasiado grande para nuestra implementación encubierta. Mejoramos estos diseños en este escenario al requerir solo una radio y un microcontrolador económicos, ambos de bajo consumo y muy pequeños, sin necesidad de computadora o radios sofisticadas.

Thorsten y Max descubrieron que las pulsaciones simplemente se cifran (con xor) con la dirección MAC en modo ECB, que podemos interceptar después de usar el método de Travis de abusar del nRF24L01+ tanto para interceptar como para revelar direcciones MAC. Este "cifrado" es el equivalente a tomar una baraja de cartas, cortarla una vez, y llamarlo barajado.

Después de una investigación adicional, descubrí que dado que ahora sabemos que todos los teclados Microsoft comienzan con 0xCD como dirección MAC, la pulsación real (en naranja abajo) resulta estar alineada con el primer byte de la dirección MAC (0xCD). Esto significa que incluso si no conocemos la dirección MAC, podemos descifrar la pulsación, ya que la alineación nunca cambiará, y 0xCD siempre es el primer byte de la MAC.

Un descubrimiento adicional es que dado que la longitud de la porción de cifrado del paquete es de 11 bytes, la MAC es de 5 bytes, y el CRC es cada byte con xor con otro (antes del cifrado), sucede algo interesante. Dado que la MAC se aplica xor dos veces, también podemos calcular la suma de verificación sin conocer la dirección MAC. Esto se debe a que la dirección MAC está allí completa dos veces, y aplicar xor a cualquier número consigo mismo (o aplicar xor a la MAC con la MAC) se cancela a sí mismo. El 11º byte es el primer byte de la MAC nuevamente, que siempre sabemos que es 0xCD. Esto nos permite realizar otros ataques, como alterar la pulsación y el CRC, nuevamente sin conocer la dirección MAC. Presentaré esto y algunas otras demostraciones divertidas en un proyecto futuro.

Una página de la presentación de KeyKeriki demuestra el proceso de descifrado:

http://samy.pl/keysweeper/decrypt.png

  • Tipo de dispositivo 0x0A = teclado, 0x08 = mouse
  • Tipo de paquete 0x78 = pulsación, 0x38 = inactivo (tecla mantenida presionada)
  • Tipo de modelo 0x06 = ¿teclado? Este es el mismo código HID para un teclado
  • Código HID 0x05 = letra 'b' (descrito en la sección 7 aquí)

Nuestro método de descifrado, implementado en el código fuente de KeySweeper:``` // decrypt those keyboard packets! void decrypt(uint8_t* pkt) { // our encryption key is the 5-byte MAC address and // starts 4 bytes in (4-byte header is unencrypted) for (int i = 4; i < 15; i++) pkt[i] ^= mac >> (((i - 4) % 5) * 8) & 0xFF; }

root@kitploit:~
-----

# (U) Construyendo / Usurpando un cargador USB

**ADVERTENCIA: Los dispositivos que se conectan a la red eléctrica de CA utilizan alimentación de alto voltaje, y el dispositivo que estamos creando y que se conecta a CA no es seguro ni cumple con los estándares típicos de seguridad eléctrica. Este es un dispositivo peligroso y, si se usa o construye incorrectamente, puede matar, provocar incendios u otros daños graves. No construyas un dispositivo alimentado por CA a menos que sepas lo que estás haciendo. Si deseas continuar construyendo este dispositivo pero sin alimentación de CA, simplemente usa una batería o alimenta el dispositivo desde USB directamente para seguirlo de forma segura.**

KeySweeper utiliza hardware de muy bajo consumo y perfil bajo para permanecer lo más encubierto posible. KeySweeper puede funcionar con una batería o con alimentación de CC de ~3-20V. Debido a que queremos mantener KeySweeper alimentado en todo momento, lo instalamos sigilosamente dentro de un inocente cargador USB de pared que esperamos que esté siempre enchufado.

En caso de que el cargador USB se desenchufe, KeySweeper continúa sigilosamente su funcionamiento utilizando su batería interna (opcional). En el momento en que KeySweeper se vuelve a enchufar, cambia nuevamente al uso de alimentación de CA y, simultáneamente, recarga la batería.

Si simplemente estás construyendo KeySweeper **sin** la placa GSM, puedes meter todo en un cargador USB de pared de CA típico. Sugiero buscar uno que tenga un tornillo que lo mantenga unido, ya que la mayoría de los demás están sellados y requieren la destrucción de alguna parte del dispositivo para abrirlo.
[![http://samy.pl/keysweeper/usbopen.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/usbopen.jpg)

Si decides usar la placa GSM, descubrí que no cabía en este tipo de cargador USB junto con el resto de la electrónica. Sin embargo, descubrí que al abrir un cargador USB más pequeño (similar a los cargadores USB de iPhone), encontramos un rectificador (CA->CC) y un convertidor reductor (alto voltaje->5V) mucho más pequeños que permiten que **toda** nuestra electrónica quepa en el cargador USB más grande. 

[![http://samy.pl/keysweeper/usbcharger1.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/usbcharger1.jpg)
[![http://samy.pl/keysweeper/usbcharger2.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/usbcharger2.jpg)

Mi amiga Dana me prestó su cautín de muñecas. No entiendo muy bien para qué lo usa ella, pero es un cautín con una cuchilla acoplable. Es genial para cortar plástico y, supongo, muñecas. Me quitó el cautín en cuanto le expliqué lo que haría el dispositivo. Aparentemente no apoya esto, aunque no estoy seguro de por qué. Seguro lo descubriré después de esnifar más pulsaciones de teclado desde su teclado.

[![http://samy.pl/keysweeper/usbcharger3.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/usbcharger3.jpg)
[![http://samy.pl/keysweeper/usbchargeropen.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/usbchargeropen.jpg)

**ADVERTENCIA: De nuevo, debido a que estamos tratando con alimentación de CA, esto es muy peligroso. No abras/recablees un dispositivo alimentado por CA a menos que sepas lo que estás haciendo.** Aún puedes construir KeySweeper simplemente alimentando todo desde un cargador USB, puerto o batería sin modificar un dispositivo basado en CA.

También es importante conectar nuestro Arduino a través del puerto RAW a la alimentación USB de 5v con la polaridad correcta (negativo a GND, positivo a RAW). En este caso, estoy usando un Arduino Pro Mini de 3.3v. El puerto RAW acepta voltaje no regulado entre 3.35-12v y utiliza un regulador de voltaje integrado para reducirlo a 3.3v. Ten en cuenta que nuestro chip nRF24L01+ requiere 1.9-3.6v, por lo que darle 5v es **¡demasiado!** Además, si usas un chip SPI como el [SST25VF016B](http://ww1.microchip.com/downloads/en/DeviceDoc/S71271_04.pdf), requiere 2.7-3.6v, así que nuevamente usar 5v es **¡demasiado!** Asegúrate de usar los 3.3v regulados del Arduino (desde el pin VCC en un Arduino de 3.3v, o el pin 3V3 en un Arduino de 5v). 

[![http://samy.pl/keysweeper/multimeter.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/multimeter.jpg)

*nota: la placa USB que aparece junto al multímetro es la original, antes de que decidiera cambiarla por una más pequeña para que también cupiera la placa GSM*


Después de reunir todo nuestro hardware, podemos ver que todo cabe con espacio en nuestro cargador (antes del cableado):

[![http://samy.pl/keysweeper/testingsize.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/testingsize.jpg)

Por diversión, conecté el LED del cargador al pin 6 del Arduino y, aunque el LED parece comportarse igual, en realidad hago que parpadee al esnifar pulsaciones de teclado. Esto probablemente delatará tu tapadera, pero es muy divertido de ver. También me aseguro de que el LED se apague cuando se pierde la alimentación de CA, incluso si el resto del dispositivo continúa funcionando con la batería interna.

También queremos asegurarnos de dejar el resto del cargador USB operativo para que otros dispositivos puedan seguir obteniendo alimentación del cargador USB.

![http://samy.pl/keysweeper/testusb.jpg](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)

-----

# (U) KeySweeper secundario opcional
Si deseas prescindir de la placa GSM para reducir costos, puedes crear un dispositivo KeySweeper secundario que simplemente contenga un Arduino y un nRF24L01+. Al compilar el secundario, descomenta la línea `#define BACKTRACER 1`.

La forma en que funciona es que si el KeySweeper secundario (BACKTRACER) alguna vez se encuentra dentro de la distancia inalámbrica (usando el nRF24L01+ de 2.4GHz) del primero, detecta automáticamente la existencia del primero y el dispositivo KeySweeper inicial volcará sus registros al BACKTRACER. La autodetección está integrada en ambos KeySweepers para que puedan encontrarse rápidamente, gracias a la capacidad del nRF24L01+ de tener múltiples tuberías RX.

Si tienes el BACKTRACER conectado a una computadora, los registros de teclado se volcarán al puerto serie, y puedes enviar un comando 'E' por el puerto serie para borrar el contenido del chip de memoria flash SPI del KeySweeper original, ahora que ya has obtenido su contenido. Puedes alejarte permitiendo que el KeySweeper original continúe registrando pulsaciones de teclado.

-----

# (U) Esquemático

Haz clic para ver la versión más grande (esquemático basado en FONA), o [haz clic aquí](http://samy.pl/keysweeper/keysweeper.fzz) para el archivo de Fritzing.

[![Esquemático con placa GSM](https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg)](http://samy.pl/keysweeper/keysweeper2_schem.png)


-----

# (U) Contacto

**Punto de contacto:** [@SamyKamkar](https://twitter.com/samykamkar)

Puedes ver más de mis proyectos en <http://samy.pl> o contactarme en <[email protected]>.


------
Descargar herramienta