Desempaquetando Themida 2 (unpacking windows binary) - Análisis de Malware

Comparto el mecanismo que me ha funcionado para desempacar los binarios protegidos con Themida 2.


Para quienes no conocen Themida, se trata de un software comercial, cuyo objetivo es proteger los binarios de la ingeniería inversa, pensando en proteger a los fabricantes de software de la copia de sus códigos, impedir la generación de cracks o keygens para sus licencias, entre otros.

Pero obviamente, esto también es aprovechado por los atacantes que escriben malware, ya que este mecanismo hace mucho más difícil el análisis de los investigadores.

En el ejemplo que explico ahora, revisaré un troyano que comparto acá:

https://github.com/inc0d3/malware/blob/master/windows/Trusteer.zip

Para el análisis recomiendo usar Windows 7 32 bits con las herramientas de Flare:

https://www.fireeye.com/blog/threat-research/2017/07/flare-vm-the-windows-malware.html

Ejecuté el malware e inmediatamente surgió este error:


Es porque tenía corriendo las utilidades Process Monitor y Process Explorer. Si cierro las herramientas de monitoreo y uso cualquier herramienta de debugging como IDA, OllyDbg o x32Dbg, aparece:




Utilizo DIE (http://ntinfo.biz/index.html) para determinar la versión del packer: Themida 2.X:



Para comenzar el unpacking, necesitaremos descargar un script y algunos plugins para OllyDbg que comparto acá:

Descargar los plugins para OlyDbg

https://github.com/inc0d3/malware/tree/master/tools/ollydbg-plugins

Descargar el script (necesita una DLL para operar)

https://github.com/inc0d3/malware/tree/master/tools/unpacker/themida-2.x

Copiar todo lo anterior, en una carpeta que llamaremos "plugin" dentro del directorio de instalación de OllyDbg


Editar el script y cambiar la RUTA hacia la DLL ARImpRec.dll:


Editar la configuración de plugins y reiniciar OllyDbg



Deberíamos quedar con un menú similar al siguiente:


Ir a Opciones del plugin StrongOD y PhantOm y activar las siguientes opciones (necesarias para el script):


Ahora, cargar la muestra del malware y en el plugin OdbgScript, abrir Script Window, clic derecho y abrir el script que dejamos en la carpeta plugin de OllyDbg


En la misma ventana Script Execution, clic derecho y presionar Resume, aparecerá el mensaje que nos pregunta si queremos iniciar el procesos de desempaquetado y presionamos "Sí":

Luego, pregunta si queremos ejecutar el AntiDump Finder (AD FINDER), presionamos "No"


Ahora el script inicia el procesos de unpacking, pero se detendrá debido a que inicia una ventana de LOG, donde podremos luego revisar los detalles del proceso. El mismo script advierte que sólo debemos Resumir la ejecución (clic derecho, Resume)


Continúa con el proceso, hasta que nos advierte que debemos realizar algunos ajustes en la configuración de OllyDbg antes de continuar


Presionamos Alt + O para ir a las opciones del Debugger




Para cambiar DriverName, debemos cerrar OllyDbg, y editar el archivo ollydbg.ini, y cambiar DriverName=CError, SkipExpection=1 (en los primeros pasos debió quedar habilitada esa opción).. Iniciar OllyDbg, cargar el binario, cargar el script y seleccionar Resume nuevamente.  


Luego pregunta si queremos realizar un Scan Moderno o Simple, presioné Sí, para un escaneo moderno


Luego pregunta si deseo desactivar el checkeo de NOOPER, presiono "No"


Luego, pregunta si queremos el dump, presionamos "Sí"


Luego pregunta si queremos corregir los Direct JUMPs, el mismo script dice sólo si es estrictamente necesario, por lo que selecciono "No"


Pregunta si queremos optimizar el tamaño, pero son solo 11Mb, por lo que selecciono "No"


Finalmente, el resumen de todo el trabajo



Finaliza, creando en el mismo directorio el archivo "Trusteer_DP.exe", que ahora podemos monitorear y analizar sin problemas!


Saludos

Comentarios

  1. alguien puede enseñar unpack a enigma 5 o 6 con ollydbg? pago servicios

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

Stack Buffer Overflow: Hackeando la memoria en Linux x64

Hacking Tools: sqlidownloader basado en el script en Perl file_reader.pl de PhineasFisher

Ocultando la web shell como una imagen (Apache + PHP)