Análisis de malware

La búsqueda de malware para la memoria

6 de septiembre de por Steve Lynch

La memoria forense es una habilidad para descubrir todos los artefactos en la memoria que están presentes en la computadora en ejecución. Es un método interesante para descubrir cuáles son los procesos en ejecución, las conexiones de red abiertas, los identificadores de registro, los módulos del kernel, etc. Parece optimista cuando escuchas todas las características de la memoria forense, pero un conocimiento sólido de Windows es un requisito previo para esta tecnología.

La memoria forense es muy útil para que un analista de seguridad lleve a cabo una investigación cada vez que hay algún incidente de seguridad informática. Los investigadores de malware también lo utilizan para descubrir las propiedades del comportamiento del malware. Para comenzar primero con el análisis de la memoria, necesitamos obtener el volcado de memoria de la computadora de la máquina. Existe un conjunto de herramientas para lograrlo, desde las gratuitas hasta las de pago.

Lista de herramientas comunes

Herramientas de adquisición de memoria

Analizador de memoria

Me gustaría mostrar cómo podemos hacer análisis forense de la memoria. Aquí estoy ejecutando un malware que obtuve de kernelinfo.com (hay muestras de malware gratuitas disponibles para descargar en la información del kernel después del registro del usuario).

De estas herramientas, recomiendo utilizar la herramienta Volatility y Memoryze (Mandiant) para analizar el volcado que se recopila.

Volatilidad y Memoryze

La volatilidad es una herramienta forense de memoria de código abierto escrita en Python. A diferencia de otras herramientas que solo se ejecutan en Windows y requieren instalaciones .NET, Volatility se puede ejecutar de forma gratuita en Windows, Linux y Mac para realizar análisis. La volatilidad también permite ir más allá de la funcionalidad normal mediante la creación de una interfaz web personalizada. Volatility tiene el algoritmo eficiente para analizar volcados RAW de sistemas grandes donde las herramientas normales provocarán una falla del sistema. También ayuda a analizar diferentes formatos de archivos, como volcados de memoria, archivos de hibernación, estados guardados y suspendidos de VMware (.vmss/.vmsn) y muchos más. Puede descargar la volatilidad desde ( https://code.google.com/p/volatility/downloads/list )

Aunque Memoryze no es compatible con Linux, es una de las herramientas que suelen utilizar los investigadores de malware, ya que es compatible con todos los tipos de Windows. La forma preferida de iniciar Memoryze es utilizar las interfaces de usuario creadas para Memoryze llamadas Redline.

Mi primer deber aquí es realizar el volcado de memoria de la máquina.

Se recomienda utilizar herramientas de terceros para realizar volcados de memoria de todo el sistema. Windows tiene funciones para realizar volcados de memoria de un proceso; sin embargo, si necesita un volcado de memoria de todo el sistema, es mejor confiar en herramientas de terceros.

Tomando volcado de memoria

Aquí estoy usando Dumpit para realizar volcados de memoria.

Generalmente lleva tiempo generar el archivo de volcado.

Imageinfo Antes de continuar, Volatility necesita saber de qué tipo de sistema proviene su volcado de memoria, para saber qué estructuras de datos, algoritmos y símbolos usar.

El complemento de información de imagen de nota no funcionará en archivos de hibernación

kdbgscan está diseñado para identificar positivamente el perfil correcto y la dirección KDBG correcta. Entonces, si ya conoce el perfil correcto (o si tiene una sugerencia de perfil a partir de la información de la imagen ), asegúrese de usarlo.

Dominio:

volatility-2.1.standalone.exe -f C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 kdbgscan

Puede obtener más información sobre KDGG en

https://code.google.com/p/volatility/source/browse/branches/scudette/docs/blogg_posts/scudette/kdbg.txt?r=2805

Pslist para mostrar el proceso.

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 –

-kdbg=0xf800027f0070 pslista

Una vez que ejecuté el comando pslist, tomé el administrador de tareas de Windows para ver si ambos PIDS de CMD.exe son 184.Y.

Para ver los procesos que están inactivos o los procesos que han sido ocultos o desvinculados por un rootkit, ejecute el comando psscan .

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 psscan

Para ver cuáles son todos los archivos DLL a los que llama un exe, utilice el comando dlllist

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 dlllist

Para vaciar todos los dll que están cargados en la memoria a una carpeta

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 dlldump -D dlls

Dll es el directorio donde hemos volcado todos los archivos dll.

En el panel de resultados puede ver el éxito de la extracción de estos volcados de DLL en la carpeta DLL. También hay posibilidades de que la extracción sea un error debido a la paginación. Ahora puedes encontrar el valor md5 de cada dll y clasificar si es malicioso o no. Otra forma es subirlo a virustotal.com para comprobar la presencia de comportamiento malicioso.

Manijas de visualización

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 maneja -p 2576

Muestra los identificadores para el proceso particular 2576.

Para encontrar los hilos

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 subprocesos -F AttachedProcess

No muestra ninguna salida de proceso adjunta.

Si quieres ver las variables ambientales

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 subprocesos -L

Podemos volcar todo el exe de la imagen a una carpeta dando el comando procmemdump

Dominio:

Escriba: C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 procmemdump -D

Ahora podemos ver el proceso svhosts.exe como ejecutable.2576 en la carpeta de destino.

Comandos como conexiones, connscan, sockets, calcetinescan también son útiles para ver las conexiones de red, pero sólo se aplica a Windows XP y Windows Server.

Hivelist : para localizar la dirección virtual de las colmenas del registro

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 hivelist

Para enumerar todas las subclaves en una colmena podemos usar hivedump

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 hivedump -o 0xfffff8a00000d010

Userassist: para ver los programas más utilizados

Dominio:

C:UsersADMINDesktopforensicsADMIN-PC-0625-061raw –profile=Win7SP1x64 userassist

Malfind se utiliza para encontrar los archivos DLL ocultos. A continuación, le proporcioné pslist para ver todo el proceso. Para cada proceso, verifico cualquier presencia de archivos DLL ocultos emitiendo el comando malfind.

Dominio:

C:UsersADMINDesktopforensicsvolatilidad-2.1.exe -f0821.mem –profile=Win7SP0x64 malfind -p 600

Puede ver los servicios de Windows en la RAM ejecutando svsscan . En mi escenario, no tengo ningún sospechoso corriendo aquí.

Comando: volatility-2.1.exe -f0821.mem –profile=Win7SP0x64 svcscan

Descifrando contraseñas.

Ahora veamos cómo podemos descifrar la contraseña usando la herramienta forense de memoria Volatility. No creo que la volatilidad pueda usarse para descifrar contraseñas del sistema operativo Windows 7, pero para Windows XP sí podemos.

Hivelist: se utiliza para encontrar la dirección virtual de las colmenas del registro en la memoria. Para descifrar la contraseña debemos preocuparnos por la dirección virtual de SAM y la colmena del SISTEMA.

Comando: C:Documentos y configuracionesadminDesktopforensicsvolatilidad-2.1.standalone.exe

-f0902.mem –profile lista de colmenas WinXPS2x86

Una vez que hayamos localizado la dirección virtual de las colmenas del registro, debemos volcar los hashes en un archivo de texto para su posterior análisis.

Comando: C:Documentos y configuracionesadminDesktopforensicsvolatilidad-2.1.standalone.exe

-f0902.mem –profile=WinXPSP2x86 -y 0xe1035b60 -s 0xe147bb60 hashdumpdump.txt

Aquí -y0xe1035b60 y -s 0xe147bb60 son la dirección virtual de las colmenas SECURITY y SAM.

Una vez creado el volcado, podemos usar otras herramientas de terceros como Cain y Abel, tablas Rainbow para aplicar fuerza bruta al archivo de volcado. Puede llevar días o meses dependiendo de la complejidad y la longitud de la contraseña.

Referencias:

http://code.google.com/p/volatility/wiki/CommandReference#

www.volatilidad.com

http://cyberarms.wordpress.com//11/04/memory-forensics-how-to-pull-passwords-from-a-memory-dump/

¡Conviértete en un ingeniero inverso certificado!

Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender

www.youtube.com/watch?v=8HsZLge0wWc

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *