Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Hola a tod@s!

Me he topado con esta DLL, que me ha resultado curiosa.

MD5
2821c0f5bbcf792352092815df29c715
SHA-1
98c345cfa1c608b9af94c497aff886522042d0f2
SHA-256
040ed019ca0b3dd06bb8b1bec13d2b591644c81a9ee669a24a3f8236f98bc2b0
Vhash
116056555d15656az41nz1ez1
Authentihash
8002193da29b80a2abe63f08a94f4cee6e1de087018f0003c7716e1c794acea2
Imphash
e16074196d80effb57a5d1cd03830f52
Rich PE header hash
a82c4fb6c132dddff81f74c9eb6330cd
SSDEEP
24576:yojJNxSwRQJEQltmEVRxfX7jf7o6S6jxz2Hx:djdQJEQlTBXHfE6Lo
TLSH
T17F256A4650B457F7CBE979F29F277EB066FAA273990F04C67B80163A0DCCD214909B29
File type
Win32 DLL
Magic
PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit

En el comportamiento que muestra la sandbox que se ha utilizado en Virus Total, no se aprecia gran cosa, sin embargo, esconde algo en su interior.

Hablamos de una DLL compilada con Visual Studio 2017.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Tiene una función Export llamada Melon.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Por lo tanto, para poder ejecutar esta DLL con rundll32 habría que hacerlo de la siguiente manera, imaginemos que se llama “test.dll”, como se aprecia en la captura anterior:

 > rundll32 test.dll,Melon

Para analizar esta dll podemos hacerlo cargando en nuestro debugger favorito rundll32.exe y pasarle como parámetro “test.dll,Melon” y ya la tendríamos lista para ser analizada.

Pero… vamos a hacerlo de otra manera. Vamos a convertir esa DLL en un EXE funcional. Para ello abrimos la DLL con CFF Explorer.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Y desmarcamos el check que indica que es una DLL.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior
Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

El siguiente paso es cambiarle el EntryPoint. Si recordáis en el Export, se veía lo necesario para el siguiente cambio:

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Necesitamos que cuando el EXE se ejecute, vaya directamente al contenido de Melon, así que tomamos esa dirección 0x17E3 como EntryPoint. Podéis usar cualquier programa de edición de PE, a mí me gusta este, Stud_PE:

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Salvamos el fichero y ya estaría listo para ejecutarse como es debido. Si vamos al EntryPoint vemos una cadena grande una serie de operaciones con ella:

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Esto se repite a lo largo del programa, necesita colocar todo en su sitio, para cuando llegue el momento hacer uso del contenido.

Ponemos un breakpoint en VirtualAllocy nos fijamos en el tamaño de la shellcode que lleva dentro.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Y además vemos que será código ejecutable, pero aún no sabemos donde estará esa zona. Pulsamos Ctrol+F9 y nos fijamos en el registro EAX, será ahí donde irá finalmente el shellcode.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Ahora mismo está vacío.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Después de unos cuantos F8 y bucles vemos lo siguiente:

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Ponemos un Breakpoint en ese punto, ¿Por que? Para que pulsando F9 vayamos directos y ganemos mucho tiempo sin gastar mucho la tecla de F8 (es broma).

Si echamos un vistazo al registro ESI, vemos la shellcode de CobaltStrike lista para ser copiada a otro lugar y ser ejecutada más tarde.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Podemos extraerla ya para ganar tiempo y usar scDbg para ver hacia donde irá para continuar con el proceso de infección, troyanización, etc.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Con un par de F8 más, tendremos ubicada la shellcode en la zona de memoria que habíamos visto anteriormente.

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Cuando renombráis la DLL a EXE, puede verse el icono que tiene:

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

¿Será que les gusta las aves exóticas?

Transformando DLL a EXE con Shellcode de CobaltStrike en su interior

Espero que os haya gustado y nos vemos en el siguiente post!




via El pirata de San Jhony
Ad placement
Este artículo es patrocinado por Woodmex Store