Recopilación y análisis de datos en caliente Windows
En este caso vamos a realizar una obtención de datos en caliente, es decir mientras el equipo sigue encendido.
Estos tipos de análisis son muy delicados ya que el objetivo se trata de recolectar todos los datos posibles de la máquina en su estado actual pero, como bien sabemos estos datos están en constante cambio si esta se encuentra encendida.
En casos así podemos encontrar discos cifrados a los que si no accedemos en caliente posiblemente sea imposible o muy complejo realizarlo en un análisis post-mortem sin la clave de cifrado.
Es por eso que es importante o bien realizar la extracción de evidencias de forma lógica con el sistema arrancado (evitando lo máximo posible la modificación de cualquier parámetro o fichero del mismo) y además extraer el estado actual de la máquina; procesos, conexiones, caché, RAM, etc.
Herramientas
En este tipo de análisis lo mejor es utilizar herramientas externas que no necesiten instalción o modificación de ficheros dentro de la máquina ya que evitamos modificar lo máximo posible los datos de la misma.
Con esto en mente vamos a utilizar herramientas que se pueden ejecutar desde una memoria USB o similar.
Extracción de datos automatizada
Para este tipo de extracción vamos a utilizar comandos que ofrece el propio sistema Windows aunque ciertos datos es mejor o unicamente se pueden extraer con herramientas externas.
Podemos hacer la extracción de forma manual con cada software y comando pero existen scripts automatizados que realizan esto rápidamente y guardan los datos en archivos para su posterior análisis.
En internet existen distintos scripts e incluso puedes crear el tuyo propio como en este caso.
DFIR Forensic Script
Este script esta creado con varios comandos incluidos en el sistema así como algunos ejecutables de terceros y es capaz de extraer esos datos y almacenarlos en formato txt, json o csv.
En el enlace esta el repositorio para poder descargarlo y saber más sobre como funciona.
Ejemplo de uso
Descargamos el repositorio y lo guardamos en un USB
Dentro encontramos dos scripts .bat y .ps1
Estos scripts ejecutan los mismos comandos en el sistema pero tienen un formato de salida diferente.
El más recomendado es el script powershell porque nos permite seleccionar json y csv de salida a diferente del batch que solo nos permite txt.
Para ejecutar ciertos comandos de ambos scripts hay que tener en cuenta que debemos tener privilegios elevados, además para poder ejecutar scripts en powershell debemos tener la política de ejecución de scripts configurada para que lo permita.
1
Set-ExecutionPolicy Unrestricted
Powershell
Batch
Volcado de memoria RAM
Otro banco de datos que podemos sacar de la máquina objetivo es la memoria RAM, para extraerla existen numerosos software aunque en este caso utilizaremos FTK imager portable.
Volatility
En este caso vamos a utilizar la version para linux por lo que podemos instalarla o usar el binario standalone que se proporciona.
Utilizando el standalone tenemos los siguiente:
Ahora vamos los siguientes datos del dump de memoria.
1
2
3
4
5
6
- Perfil del sistema operativo
- Listado de procesos
- Historial de comandos
- Información detallada del sistema operativo
- Ficheros cargados en memoria
- Conexiones activas
Perfil del sistema operativo
1
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw imageinfo
Observamos las posibles versiones del sistema operativo
Listado de procesos
Una vez identificado el perfil, usa pslist o pstree para listar los procesos:
1
2
3
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 pslist
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 pstree
Historial de comandos
1
2
3
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 cmdscan
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 consoles
Es posible no encontrar cierta información ya que o no hay registro o no se almacena de forma predeterminada
Información detallada del sistema operativo
1
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 kdbgscan
Ficheros cargados en memoria
1
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 modules
Conexiones activas
1
./volatility_2.6_lin64_standalone -f /home/kali/Desktop/practica1.raw --profile=Win7SP1x86 netscan
NOTA: Si estás analizando una imagen de memoria de Linux, el procedimiento es similar, pero el perfil debe coincidir con el kernel y la distribución del sistema.