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