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:
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 corregir los Direct JUMPs, el mismo script dice sólo si es estrictamente necesario, 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
alguien puede enseñar unpack a enigma 5 o 6 con ollydbg? pago servicios
ResponderEliminar