
Depura rápidamente shellcode extraído durante el análisis de malware
BlobRunner es una herramienta simple para depurar rápidamente shellcode extraído durante el análisis de malware.
BlobRunner asigna memoria para el archivo objetivo y salta a la base (o desplazamiento) de la memoria asignada. Esto permite a un analista depurar rápidamente artefactos extraídos con mínima sobrecarga y esfuerzo.

Para usar BlobRunner, puedes descargar el ejecutable compilado desde la página de lanzamientos o compilar el tuyo propio siguiendo los pasos a continuación.
Compilar el ejecutable es sencillo y relativamente indoloro.
Requisitos
Pasos de compilación
cl blobrunner.c
Compilar la versión x64 es prácticamente lo mismo que arriba, pero simplemente usa las herramientas x64.
cl /Feblobrunner64.exe /Foblobrunner64.out blobrunner.c
Para depurar:
BlobRunner.exe shellcode.bin
Depurar dentro del archivo en un offset específico.
BlobRunner.exe shellcode.bin --offset 0x0100
Depurar dentro del archivo y no pausar antes del salto. Advertencia: Asegúrate de tener un punto de interrupción establecido antes del salto.
BlobRunner.exe shellcode.bin --nopause
El parámetro opcional --jit se puede usar para depurar el shellcode con el depurador Just-In-Time (JIT) configurado. Para activar el depurador, BlobRunner elimina el acceso de ejecución de la región de memoria recién asignada. Esto hace que el programa lance una excepción AccessViolation (0xC0000005) al intentar ejecutar el shellcode cargado.
Las instrucciones para configurar el depurador JIT en Windows se pueden encontrar aquí. Para x64Dbg consulta setjit o setjitauto.
Ejemplo:
BlobRunner.exe shellcode.bin --jit
Una vez cargado el depurador, concede acceso de ejecución a la región. Usando x64Dbg puedes ejecutar el comando setpagerights usando la dirección devuelta por BlobRunner.
setpagerights <region>, ExecuteReadWrite
El ensamblado en línea no es compatible con el compilador x64, por lo que para admitir la depuración de shellcode x64 el cargador crea un hilo suspendido que permite colocar un punto de interrupción en la entrada del hilo, antes de que se reanude.
El proceso es prácticamente idéntico a depurar shellcode localmente, con la excepción de que debes copiar el archivo shellcode al sistema remoto. Si el archivo se copia en la misma ruta desde la que ejecutas win32_remote.exe, debes usar el nombre del archivo como parámetro. De lo contrario, deberás especificar la ruta al archivo shellcode en el sistema remoto.
Puedes generar rápidamente muestras de shellcode usando la herramienta Metasploit msfvenom.
Generando un payload simple de ejecución en Windows.
msfvenom -a x86 --platform windows -p windows/exec cmd=calc.exe -o test2.bin