
Ejecuta shellcode independiente de posición desde un zip cifrado
Ejecuta shellcode independiente de posición desde un zip cifrado. Obtén código PIC desde tu ensamblador usando formato RAW de donut, metasploit o cobaltstrike.
Comprime el archivo .bin y encriptalo con una contraseña; este ensamblador descifra la entrada del zip en memoria y la ejecuta utilizando la API de inyección D/Invokes.
Capaz de inyectar en un proceso en ejecución, o creando primero un nuevo proceso e inyectando en el proceso recién creado. La inyección en sí mismo debería ser teóricamente posible, pero provoca fallos. Como inyectar en ti mismo no es realmente lo que quería lograr aquí, no intenté realmente solucionar ese problema.
Probado dejando el zip cifrado en el disco, pero probablemente también podría funcionar completamente en memoria con algunas modificaciones. Solo admite cargas útiles PIC; intenté crear una variante runPE pero fracasé estrepitosamente :)
___ _ ____ _ ___
/ __>| |_ ___ _ _ ___ |_ /<_> ___ | . \ _ _ ._ _ ._ _ ___ _ _
\__ \| . |<_> || '_>| . \ / / | || . \| /| | || ' || ' |/ ._>| '_>
<___/|_|_|<___||_| | _//___||_|| _/|_\_\`___||_|_||_|_|\___.|_|
|_| |_|
¿Un zip cifrado en tu ordenador? ¿qué podría salir mal?
Uso:
-z, --zip-file=VALUE La ruta en disco del zip cifrado
-e, --entry=VALUE La entrada específica del zip a poner en memoria
(opcional), si no se proporciona asume que solo
hay una entrada en el zip
-p, --password=VALUE La contraseña del zip cifrado
-i, --process=VALUE El proceso en el que inyectar (si no se usa,
inyecta en sí mismo, no recomendado)
-c, --create Crea un nuevo proceso e inyecta en ese proceso
(requiere el argumento de proceso)
-h, --help Muestra este menú