Este programa está diseñado para cargar código shell de 32 o 64 bits y permitir la ejecución o depuración. Además, puede producir archivos PE ejecutables basados en el código shell deseado. Esto puede facilitar las pruebas, ya que el binario de salida puede usarse con herramientas estándar de ingeniería inversa (es decir, IDA Pro (incluso gratuito) y depuradores).
Los binarios de lanzamiento están disponibles. Puedes ver una demostración de esta herramienta en YouTube.
Este programa proporciona varias opciones para trabajar con su código shell, organizadas por su uso.
Argumentos globales
Código de shell de depuración
Crear un archivo PE
El único argumento requerido es proporcionar la ruta al archivo que contiene su código shell. Para ello, utilice el argumento -f
. Esto se copiará en la memoria y se ejecutará. Además, puede utilizar el argumento -ep
para ajustar el punto de entrada en X bytes. Esto permite el código de shell que no comienza la ejecución al principio del blob binario. Finalmente, -bp
determina si se debe insertar un punto de interrupción antes del código shell. Esto se hará mediante un byte 0xCC
, que es un INT3. Esto le permite ejecutar el programa bajo un depurador, definiendo los argumentos de la línea de comando según corresponda. Insertar un punto de interrupción permitirá que el depurador interrumpa la ejecución antes de que se ejecute el código shell. Si no está ejecutando un depurador, no inserte un punto de interrupción ya que eso provocará que el programa falle.
Puede utilizar el argumento -pe
para generar un archivo PE que esencialmente envuelve el código shell. El código shell se coloca en la sección .text
. El punto de entrada se define como el comienzo de la sección, a menos que se utilice el argumento -ep
. Este argumento definirá un desplazamiento desde el principio de la sección y se utilizará para actualizar el punto de entrada de los archivos PE (es decir, el campo AddressOfEntry). Además, el argumento -64
se puede utilizar para generar un archivo PE de 64 bits, probablemente para código shell de 64 bits. El archivo PE resultante se puede analizar mediante herramientas comunes de ingeniería inversa como IDA Pro, Ghidra o un depurador como x32dbg/WinDbg/etc.
Si se utiliza el argumento -d , SCLauncher creará una nueva sección llamada .content y copiará el contenido del archivo en esta sección. Esta sección seguirá a la sección .text .
Si tiene un código shell que aún no está en estado binario, puede usar CyberChef para convertir ese código shell y descargarlo como un archivo.
A continuación se muestra un ejemplo de shellcode de Exploit-DB que se convirtió a contenido binario en CyberChef.
Este programa está diseñado para compilarse con el compilador C/C++ de Microsoft. Puede utilizar el Developer Command Prompt
después de instalar la versión gratuita/comunitaria para compilar usando cl
. Un ejemplo de este comando sería:
cl sclauncher.c
Esto producirá el ejecutable sclauncher.exe
.