MoonSols Windows Memory Toolkit, herramienta para analizar la memoria

Windows

MoonSols es un kit de herramientas para analizar la memoria RAM del ordenador para Windows. Está diseñado para comprobar el fichero de hibernación de Windows (en todas sus versiones), volcados de memoria provocados por errores y otros volcados de memoria asociados por ejemplo a programas de virtualización como VMWare.  

MoonSols hace posible convertir todos los volcados de memoria (crashdumps) para poder ser analizados con Windows Debugger (WinDbg).

Es un programa de pago pero tiene una versión llamada “de Comunidad” que es gratuita y tiene casi todas las funcionalidades que la versión de pago. La puedes descargar desde aquí.

Fijaros por ejemplo en la ayuda de uno de sus comandos, en concreto win32dd y win64dd:

win32dd - 1.3.1.20100417 - (Community Edition)
Kernel land physical memory acquisition
Copyright (C) 2007 - 2010, Matthieu Suiche <http://www.msuiche.net>
Copyright (C) 2009 - 2010, MoonSols <http://www.moonsols.com>
Usage: win32dd [options]
  Option       Description
  ------       -----------
  /f <file>    File destination.
  /r           Create a Raw memory dump file. (default)
  /d           Create a Microsoft memory crash dump file. 
               (WinDbg compliant, XP and later only)
  /c <value>   Memory content.
        0 - Full physical address space.
        1 - Memory manager physical memory block. (default)
        2 - Memory manager physical memory block + Very First PFNs.
   /m <value>   Mapping method for either /d or /r option.
        0 - MmMapIoSpace().
        1 - \\Device\\PhysicalMemory.
        2 - PFN Mapping. (default)
   /e  Create a Microsoft hibernation file. (local only, reboot)
   /k  Create a Microsoft memory crash dump file (BSOD).
               (local only, reboot)
   /s <value>   Hash function to use. (Only on sender/local machine)
         0 - No hashing algorithm. (default)
         1 - SHA1 algorithm.
         2 - MD5 algorithm.
         3 - SHA-256 algorithm.
   /y <value>   Speed level.
         0 - Normal.
         1 - Fast.
         2 - Sonic.
         3 - Hyper sonic. (default)
   /t <addr>    Remote host or address IP.
  /p <port>    Port, can be used with both /t and /l options. 
                                              (default: 1337)
   /l    Server mode to receive memory dump remotely.
   /a    Answer "yes" to all questions. Must be used for 
                                            piped-report.
   /?    Display this help.
 Samples:
  win32dd /d /f physmem.dmp  
                      Standard Microsoft crash dump.
   win32dd /m 0 /r /f F:\physmem.bin   
                      Raw dump using MmMapIoSpace() method.
   win32dd /l /f F:\msuiche.bin  
                      Waiting for a local connexion on port 1337.
   win32dd /t sample.foo.com /d /c 0  
                      Send remotely a Microsoft full crash dump.
   win32dd /d /f \\smb_server\remote.dmp  
                      Send remotely on a SMB server.
  

Herramienta perfecta para nuestro kit de análisis forense (junto con nuestra querida FOCA), ya que con este comando, por cierto, muy parecido a nuestro querido “dd” de Linux, podemos tener una copia de la memoria RAM en un fichero para luego analizarlo. Todos sabemos lo importante que es analizar la RAM, ya que muchas contraseñas se pueden encontrar ubicadas en la memoria sin estar cifradas y otros datos realmente interesantes para un posterior análisis forense.

Me encontré con una mención en un artículo de la fantástica revista 2600 donde se hablaba del comando win32dd.