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
WiFi-password-stealer — Herramienta simple de inyección de pulsaciones de teclas para Windows y Linux que extrae datos WiFi almacenados (SSID y contraseña). | Kitploit
Herramientas/GitHubGitHub/aleksamcode/wifi-password-stealer
Auditoría Wi-FiAtaques de ContraseñasGeneración de PayloadsExfiltración de DatosRecopilación de InformaciónHacking de HardwareIngeniería SocialAprendizaje y EducaciónRed Teaming

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
GitHubaleksamcode/wifi-password-stealer

WiFi-password-stealer

Herramienta simple de inyección de pulsaciones de teclas para Windows y Linux que extrae datos WiFi almacenados (SSID y contraseña).

Ver Repositorio
59547hace 1 añoRevisado por Kitploit

Robador de contraseñas WiFi

License: GPL v2

¿Alguna vez has visto una película donde un hacker enchufa una unidad USB aparentemente normal a una computadora y al instante roba datos? Hoy construirás un dispositivo que hace exactamente eso.

⚠️ Aviso legal:

Todo el contenido de este proyecto está destinado únicamente a fines de investigación en seguridad.

Tabla de contenidos

  • Robador de contraseñas WiFi
    • Tabla de contenidos
    • Introducción
    • Configuración
      • Requisitos previos
    • Ataque con Rubber Ducky
      • Requisitos - Lo que necesitarás
      • Herramienta de inyección de teclas
        • Inyección de teclas
        • Retardos
      • Exfiltración
        • Exploit en Windows
          • Envío de datos robados por correo electrónico
        • Exploit en Linux
          • Almacenamiento de datos robados en una unidad USB
          • Script Bash
          • Resumen rápido del payload
        • Formato de los datos exfiltrados
      • Problema del dispositivo de almacenamiento masivo USB
      • Escritor de Payload
    • Ataque con Bash Bunny
    • Limitaciones/Inconvenientes
    • Referencias

Introducción

En el verano de 2022, me propuse construir un dispositivo capaz de extraer datos de una computadora objetivo. Pero, ¿cómo se implementa realmente un malware y se exfiltra información? En las siguientes secciones, explicaré los pasos esenciales, los conceptos subyacentes y los matices técnicos involucrados en la creación de una herramienta de inyección de teclas personalizada. Si bien este proyecto se centra específicamente en las credenciales WiFi, el payload puede modificarse fácilmente para fines más avanzados o maliciosos; los únicos límites reales son tu creatividad y experiencia técnica.

Configuración

Con el tiempo, el proyecto ha crecido hasta incluir una gran variedad de scripts y herramientas. Originalmente fue creado para demostrar las capacidades de un Rubber Ducky, específicamente una versión económica usando la Raspberry Pi Pico (RPi Pico). Actualmente, los dos componentes principales del proyecto son:

  1. Ataque con Rubber Ducky
  2. Ataque con Bash Bunny

Requisitos previos

  • Acceso físico a la computadora desbloqueada de la víctima.

  • La computadora debe tener acceso a Internet para poder enviar los datos robados usando SMTP para la exfiltración a través de un medio de red.

  • Conocimiento de la contraseña de la computadora de la víctima para el exploit en Linux.

Ataque con Rubber Ducky

Después de crear un pico-ducky, solo necesitas copiar el payload modificado (ajustado con tus datos de SMTP para el exploit en Windows y/o ajustado con la contraseña de Linux y el nombre de la unidad USB) a la RPi Pico.

Requisitos - Lo que necesitarás


  • RPi Pico
  • Cable Micro USB a USB
  • Cable puente (opcional)
  • pico-ducky: RPi Pico transformado en un USB Rubber Ducky
  • Unidad flash USB (solo para el exploit a través de un medio físico)



[!NOTE]

  • Es posible construir esta herramienta usando el Rubber Ducky, pero ten en cuenta que la RPi Pico cuesta aproximadamente $4.00 y el Rubber Ducky cuesta $80.00.

  • Sin embargo, aunque pico-ducky es una solución buena y económica, el Rubber Ducky ofrece ventajas como el sigilo y el uso de la última versión de DuckyScript.

  • Para usar Ducky Script y escribir el payload en tu RPi Pico, primero debes convertirla en un pico-ducky. Sigue estos sencillos pasos para crear un pico-ducky.

Herramienta de inyección de teclas

Una herramienta de inyección de teclas, una vez conectada a una máquina host, ejecuta comandos maliciosos imitando las pulsaciones de teclas ingresadas por un usuario. Aunque parece una unidad USB, actúa como un teclado que escribe un payload preprogramado. Herramientas como Rubber Ducky pueden escribir más de 1000 palabras por minuto. Una vez creado, cualquier persona con acceso físico puede implementar este payload con facilidad.

Inyección de teclas

El payload usa el comando STRING para procesar las teclas de inyección. Acepta uno o más caracteres alfanuméricos/de puntuación y escribirá el resto de la línea exactamente como está en la máquina objetivo. ENTER/SPACE simularán la pulsación de teclas del teclado.

Retardos

Usamos el comando DELAY para pausar temporalmente la ejecución del payload. Esto es útil cuando un payload necesita esperar a que un elemento, como una línea de comandos, se cargue. El retardo es útil al principio, cuando se conecta un nuevo dispositivo USB a una computadora objetivo. Inicialmente, la computadora debe completar una serie de acciones antes de poder comenzar a aceptar comandos de entrada. En el caso de los HID, el tiempo de configuración es muy corto. En la mayoría de los casos, toma una fracción de segundo porque los controladores están integrados. Sin embargo, en algunos casos, una PC más lenta puede tardar más en reconocer el pico-ducky. El consejo general es ajustar el tiempo de retardo según tu objetivo.

Exfiltración

La exfiltración de datos es la transferencia no autorizada de datos desde una computadora/dispositivo. Una vez que los datos se recopilan, un adversario puede empaquetarlos para evitar la detección mientras los envía a través de la red usando cifrado o compresión. Las dos formas más comunes de exfiltración son:

  • Exfiltración a través del medio de red.
    • Este enfoque se utilizó para el exploit en Windows. El payload completo se puede ver aquí.

  • Exfiltración a través de un medio físico.
    • Este enfoque se utilizó para el exploit en Linux. El payload completo se puede ver aquí.

Exploit en Windows

Para usar el payload de Windows (payload1.dd), no necesitas conectar ningún cable puente entre los pines.

Envío de datos robados por correo electrónico

Una vez que las contraseñas se hayan exportado al archivo .txt, el payload enviará los datos al correo electrónico designado usando Yahoo SMTP. Para obtener instrucciones más detalladas, visita el siguiente enlace. Además, la plantilla del payload debe actualizarse con tu información SMTP, lo que significa que debes actualizar RECEIVER_EMAIL, SENDER_EMAIL y tu PASSWORD de correo electrónico. También podrías actualizar el cuerpo y el asunto del correo.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_windows.template.dd#L31

[!NOTE]

  • Después de enviar los datos por correo electrónico, el archivo .txt se elimina.

  • También puedes usar un SMTP de otro proveedor de correo, pero debes tener en cuenta el servidor SMTP y los números de puerto que escribirás en el payload.

  • Ten en cuenta que algunas redes podrían bloquear el uso de un SMTP desconocido en el firewall.

Exploit en Linux

Para usar el payload de Linux (payload2.dd) necesitas conectar un cable puente entre GND y GPIO5 para cumplir con el código en code.py de tu RPi Pico. Para obtener más información sobre cómo configurar múltiples payloads en tu RPi Pico, visita este enlace.

Exploit en Linux Mint

Fig. 1: Exploit en Linux

Almacenamiento de datos robados en una unidad USB

Una vez que las contraseñas se hayan exportado de la computadora, los datos se guardarán en la unidad flash USB designada. Para que este payload funcione correctamente, debe actualizarse con el nombre correcto de tu unidad USB, lo que significa que deberás reemplazar USBSTICK con el nombre de tu unidad USB en dos lugares.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L3

https://github.com/AleksaMCode/WiFi-password-stealer/blob/25cf7c56a7df4a9811b4d3eab8d6e6dad4282055/payload/payload_linux.template.dd#L11

Además, también deberás actualizar la PASSWORD de Linux en el payload en tres lugares. Como se mencionó anteriormente, para que este exploit tenga éxito, necesitarás conocer la contraseña de la máquina Linux de la víctima, lo que hace que este ataque sea menos plausible.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L7

https://github.com/AleksaMCode/WiFi-password-stealer/blob/a90ffb208e6a09d1b0ae44d1afe81d82248ba3fe/payload/payload_linux.template.dd#L9

Script Bash

Para ejecutar el script wifi_passwords_print.sh deberás actualizar el script con el nombre correcto de tu unidad USB, después de lo cual podrás escribir el siguiente comando en tu terminal:

root@kitploit:~
echo PASSWORD | sudo -S sh wifi_passwords_print.sh USBSTICK

donde PASSWORD es la contraseña de tu cuenta y USBSTICK es el nombre de tu dispositivo USB.

Resumen rápido del payload

NetworkManager se basa en el concepto de perfiles de conexión y utiliza complementos para leer/escribir datos. Usa el formato de archivo clave de tipo .ini y almacena perfiles de configuración de red. keyfile es un complemento que admite todos los tipos de conexión y capacidades que tiene NetworkManager. Los archivos se encuentran en /etc/NetworkManager/system-connections/. Basado en el formato keyfile, el payload utiliza el comando grep con expresiones regulares para extraer los datos de interés. Para el filtrado de archivos, se utilizó una aserción de búsqueda hacia atrás positiva modificada ((?<=keyword)). Mientras que la aserción de búsqueda hacia atrás positiva coincidirá en una posición determinada en la cadena, sc. en una posición justo después de la palabra clave sin hacer que ese texto forme parte de la coincidencia, la expresión regular (?<=keyword).* coincidirá con cualquier texto después de la palabra clave. Esto permite que el payload coincida con los valores después de las palabras clave SSID y psk (clave precompartida).

Para obtener más información sobre NetworkManager, aquí hay algunos enlaces útiles:

  • Creación manual de perfiles de NetworkManager en formato keyfile
  • Descripción del complemento de configuración de keyfile

Formato de los datos exfiltrados

A continuación se muestra un ejemplo de los datos exfiltrados y formateados de una máquina víctima en un archivo .txt.

https://github.com/AleksaMCode/WiFi-password-stealer/blob/f5b3b11328764eb07d765a210fbf25db3a828455/resources/wifi_pass.txt#L1-L5

Problema del dispositivo de almacenamiento masivo USB

Una de las ventajas del Rubber Ducky sobre la RPi Pico es que no se muestra como un dispositivo de almacenamiento masivo USB cuando se conecta. Una vez conectada a la computadora, la máquina solo la ve como un teclado USB. Este no es el comportamiento predeterminado de la RPi Pico. Si deseas evitar que tu RPi Pico se muestre como un dispositivo de almacenamiento masivo USB cuando esté conectada, debes conectar un cable puente entre el pin 18 (GND) y el pin 20 (GPIO15). Para obtener más detalles, visita este enlace.

💡 Consejo:

  • Carga tu payload en la RPi Pico antes de conectar los pines.
  • No sueltes los pines porque probablemente querrás cambiar/actualizar el payload en algún momento.

Escritor de Payload

Al crear un archivo de payload funcional, puedes usar el script writer.py, o puedes cambiar manualmente el archivo de plantilla. Para ejecutar el script correctamente, deberás pasar, además del nombre del archivo del script, un nombre del SO (windows o linux) y el nombre del archivo de payload (por ejemplo, payload1.dd). A continuación, puedes encontrar un ejemplo de cómo ejecutar el script writer al crear un payload para Windows.

root@kitploit:~
python3 writer.py windows payload1.dd

Ataque con Bash Bunny

Con algunas modificaciones menores, los scripts utilizados anteriormente también se pueden adaptar para ejecutarse en el Bash Bunny. El Bash Bunny funciona emulando un dispositivo USB de confianza [1]. Para este proyecto, lo configuraremos para que emule un dispositivo de almacenamiento flash usando el siguiente comando [1, 2]:

root@kitploit:~
ATTACKMODE HID STORAGE

Usando el comando ATTACKMODE de DuckyScript, podemos definir qué tipo de dispositivo debe emular el Bash Bunny [1]. Cada modo de ataque se registra en el sistema con un ID de proveedor USB (VID) y un ID de producto (PID) únicos [1]. También es posible combinar varios modos de ataque encadenándolos.

Bash Bunny conectado a una PC

Fig. 2: Bash Bunny Mark I conectado a una PC

El Bash Bunny admite los comandos originales de DuckyScript, por lo que pude reutilizar el script de la sección del Rubber Ducky. Para usar estos comandos en línea, debemos anteponerles el comando QUACK [1]. Por ejemplo, en lugar de escribir WINDOWS r, escribimos Q WINDOWS r.

Para cargar payloads en el Bash Bunny, el dispositivo debe estar en modo armado (posición del interruptor 3, la más cercana al conector USB) [1]. Una vez conectado, copia payload.txt y exfil.txt a payloads\switch1. Los payloads deben llamarse payload.txt [1,2], mientras que los archivos de soporte a los que hace referencia el payload pueden nombrarse libremente.

Para referencia, la estructura de directorios de almacenamiento masivo del Bash Bunny es la siguiente [2]:

root@kitploit:~
BashBunny/
├── loot/
│   └── (los datos exfiltrados de los payloads se guardarán aquí)
└── payloads/
    ├── library/
    │   └── (scripts o módulos reutilizables)
    ├── switch1/
    │   ├── payload.txt
    │   └── (archivos opcionales, por ejemplo, exfil.txt, scripts, etc.)
    └── switch2/
        ├── payload.txt
        └── (archivos opcionales)

Fig. 3: Estructura de directorios de almacenamiento masivo del Bash Bunny

Una vez que el script haya terminado de ejecutarse, los resultados se guardarán en loot\wifi_pass.txt. Si la computadora objetivo no tiene contraseñas WiFi guardadas, el archivo estará vacío.

[!NOTE]

Dado que el ataque con Bash Bunny depende de un script de PowerShell (exfil.txt), solo se puede usar en sistemas Windows. Para usar un enfoque similar en Linux, deberás modificar el payload y reemplazar el script de PowerShell por el script Bash al que se hace referencia en la sección de Linux anterior.

Limitaciones/Inconvenientes

  • Este pico-ducky actualmente solo funciona en Windows OS.

  • Este ataque requiere acceso físico a un dispositivo desbloqueado para implementarse con éxito.

  • El exploit en Linux es mucho menos probable que tenga éxito, porque para lograrlo no solo necesitas acceso físico a un dispositivo desbloqueado, sino que también necesitas conocer la contraseña del administrador de la máquina Linux.

  • El firewall de la máquina o de la red puede evitar que los datos robados se envíen a través del medio de red.

  • Los retardos del payload podrían ser inadecuados debido a las diferentes velocidades de las distintas computadoras utilizadas para implementar un ataque.

  • El dispositivo pico-ducky no es realmente sigiloso; de hecho, es todo lo contrario, es bastante voluminoso, especialmente si sueldas los pines.

  • Además, el dispositivo pico-ducky es notablemente más lento en comparación con el Rubber Ducky ejecutando el mismo script.

  • Si Caps Lock está activado, parte del código del payload no se ejecutará y el exploit fallará.

  • Si la computadora tiene un entorno de idioma no inglés configurado, este exploit no tendrá éxito.

  • Actualmente, pico-ducky no es compatible con DuckyScript 3.0, solo se puede usar DuckyScript 1.0. Si necesitas la versión 3.0, deberás usar el Rubber Ducky. ¡Para este exploit no se necesita la versión 3.0!

Referencias

  1. Documentación del Bash Bunny por Hak5
  2. Wiki de conceptos básicos del Bash Bunny
Descargar herramienta