Saltar a contenido

Informática Forense

La informática forense es el conjunto de técnicas que nos permite obtener la máxima información posible tras un incidente o delito informático.

En esta práctica, realizarás la fase de toma de evidencias y análisis de las mismas sobre una máquina Linux y otra Windows. Supondremos que pillamos al delincuente in fraganti y las máquinas se encontraban encendidas. Opcionalmente, podéis realizar el análisis de un dispositivo Android.


Sobre cada una de las máquinas debes realizar un volcado de memoria y otro de disco duro, tomando las medidas necesarias para certificar posteriormente la cadena de custodia.

Instalación de Volatility en Debian

Volatility es una herramienta de software libre y código abierto diseñada para la análisis de memoria forense en sistemas operativos. Funciona en entornos Linux, aunque también es compatible con Windows y otros sistemas operativos.

Para su instalación tendremos que clonar un repositorio:

git clone git clone https://github.com/volatilityfoundation/volatility3.git

Acto seguido, tendremos que crear un entorno virtual e instalar las dependencias del repositorio clonado

python3 -m venv volatility_venv
source volatility_venv/bin/activate
cd volatility3
pip install -r requirements.txt

Una vez hecho esto, podemos instalar volatility.

python3 setup.py build
python3 setup.py install

Volcado de disco duro en Windows

Empezaremos creando el volcado del disco duro en Windows, en este caso práctico estoy usando una MV Windows con un disco de 30 GB a la cual le he añadido otro disco de 60 GB para realizar el volcado tanto de disco duro como de memoria.

Lo primero es instalar la herramienta que vamos a usar para el volcado, en mi caso estaré usando AccesData FTK imagesr.

Una vez la hemos instalado, podemos proceder a crear el volcado, para ello vamos a seguir los siguientes pasos:

  1. Pulsamos en File y seleccionamos la opción Create Disk images.

Untitled

  1. Seleccionamos el tipo de dispositivo origen, en este caso un dispositivo de almacenamiento físico

Untitled

  1. Lo siguiente es seleccionar el disco del cual vamos a realizar el volcado.

Untitled

  1. Especificamos donde se va a realizar el volcado.

Untitled

  1. A continuación podemos hacer click en “start” para comenzar el volcado. Veremos que aparece una ventana como esta en la que se muestra el progreso.

Untitled

  1. Al terminar el volcado podremos ver una ventana con varios detalles.

Untitled

Si accedemos al dispositivo en el cual se ha almacenado el volcado podremos comprobar que se han creado varios ficheros:

Untitled

Volcado de memoria en Windows

Para realizar el volcado de memora voy a utilizar la misma herramienta que estuve usando anteriormente, el proceso de volcado de memoria es muy similar al de disco.

  1. Una vez abierta la herramienta, hacemos clic en “File” > “Capture Memory”.

Untitled

  1. Veremos una ventana en la cual vamos a especificar toda la información necesaria sobre el volcado de memoria.

Untitled

  1. Comenzará el proceso de volcado.

Untitled

Una vez terminado el proceso, podremos comprobar que han aparecido en el dispositivo E: los siguentes ficheros:

Untitled

Volcado de registros en Windows

Estaré usando la misma herramienta que en los dos casos anteriores, el proceso es muy simple.

Hacemos click en el siguiente icono y especificamos el volumen en el que se guardarán los datos:

Untitled

Una vez terminado el proceso podemos ver que se han creado los siguientes ficheros y directorios.

Untitled

Instalación de Autopsy en Windows 10

Para el análisis de datos de la máquina Windows, voy a instalar la herramienta Autopsy, podemos obtenerla desde este enlace.

Una vez instalada la herramienta crearemos un caso.

Untitled

Especificamos donde se guardará el caso.

Untitled

Indicamos alguna informació opcional.

Untitled

Al finalizar la creación del caso, Autopsy generará una base de datos con la que va a trabajar la herramienta, el siguiente paso es seleccionar la fuente de datos que vamos a utilizar para la recolección de información. En mi caso especificaré el disco creado anteriormente en la otra máquina, el cual he asociado ahora a esta nueva máquina.

Untitled

Veremos una ventana en la que seleccionaré todos los módulos de Ingest, exceptuando IOS Analyzer y Windows Analyzer.

Untitled

Después de esto, comenzará el análisis de la imagesn de disco, este proceso puede demorar un buen rato.

Untitled

Volcado de disco en Linux

Para ello voy a usar el comando dd

dd if=/dev/vda1 of=/mnt/volcadolinux/discolinux.iso bs=64K

Untitled


Ya que tenemos todas las herramientas necesarias, incluyendo los volcados de datos de ambas máquinas, podemos proceder a obtener la información

Volcado de Memoria en Linux

Para el volcado de memoria de la máquina Linux, estaré usando la harrmaienta Lime, esta herramienta podemos instalarla en nuestra máquina Linux mediante un repositorio.

git clone https://github.com/504ensicsLabs/LiME.git
apt install lime-forensics-dkms

Ahora tendremos que compilar el módulo de Lime y crear el dump.

cd LiME/src
make
sudo insmod lime-6.1.0-18-amd64.ko "path=/mnt/volcadolinux/VolcadoMemoria/memdump.mem format=lime"

Apartado A) Maquina Windows

1. Procesos en ejecución.

python vol.py -f "/mnt/volcadowindows/VolcadoMemoria/memdump.mem" windows.pslist.PsList

Untitled

2. Servicios en ejecución.

python vol.py -f "/mnt/volcadowindows/VolcadoMemoria/memdump.mem" windows.getservicesids.GetServiceSIDs

Untitled

3. Puertos abiertos.

python vol.py -f "/mnt/volcadowindows/VolcadoMemoria/memdump.mem" windows.netstat.NetStat

Untitled

4. Conexiones establecidas por la máquina.

python vol.py -f "/mnt/volcadowindows/VolcadoMemoria/memdump.mem" windows.netscan.NetScan

Untitled

5. Sesiones de usuario establecidas remotamente.

python vol.py -f "/mnt/volcadowindows/VolcadoMemoria/memdump.mem" windows.sessions.Sessions

Untitled

6. Ficheros transferidos recientemente por NetBios.

Esto podemos conseguirlo con la herramienta NetBios, aunque yo no tenía ningún fichero transferido por NetBios, con lo que no he obtenido resultado.

nbtstat -n
nbtstat -S

7. Contenido de la caché DNS.

Esto podemos conseguirlo desde la CMD de la propia máquina Windows, ejecutando el siguiente comando:

ipconfig /displaydns

Untitled

8. Variables de entorno.

python vol.py -f "/mnt/volcadowindows/VolcadoMemoria/memdump.mem" windows.envars.Envars

Untitled

9. Dispositivos USB conectados.

Para esto, podemos usar la herramienta Autopsy.

Untitled

10. Redes wifi utilizadas recientemente.

Para ello podemos ejecutar el siguiente comando:

netsh wlan show profiles

11. Configuración del firewall de nodo.

Esto podemos verlo utilizando el volcado de registros que hicimos anteriormente, con la herramienta AccessData Registry Viewer.

SYSTEM\ControlSet001\Services\SharedAccess\Defaults\FirewallPolicy\FirewallRules

Untitled

12. Programas que se ejecutan en el Inicio.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run:

Untitled

No aparece nada ya que no hay aplicaciones que se ejecuten al inicio.

13. Asociación de extensiones de ficheros y aplicaciones.

Esto lograremos verlo con Autopsy, en la sección File Views

Untitled

14. Aplicaciones usadas recientemente.

Utilizando Autopsy, en la sección Run Programs.

Untitled

15. Ficheros abiertos recientemente.

Untitled

16. Software Instalado.

Untitled

17. Contraseñas guardadas.

Podemos ver las contraseñas guardadas de navegadores con Autopsy.

Untitled

Untitled

18. Cuentas de Usuario

Untitled

En esta sección podemos encontrar una gran cantidad de información sobre los usuarios, no he logrado encontrar la contraseña de este, pero si podemos obtener cosas como las preguntas de seguridad que configura windows al crear un usuario durante la instalación.

19. Historial de navegación y descargas. Cookies.

Untitled

20. Volúmenes cifrados

21. Archivos con extensión cambiada.

Untitled

22. Archivos eliminados.

Podemos verlo con Autopsy, en la sección Recycle Bin, aunque yo no puedo mostrarlo porque el análisis del volcado no llegó a completarse al 100%, sin embargo, si podemos ver los archivos eliminados del disco que pertenecen al File System.

Untitled

23. Archivos Ocultos.

Para esto usaremos Autopsy, tendremos que dirigirnos a la partición en la que se encuentran los archivos de la imagesn y buscar entre los archivos, podremos saber que es oculto si cuenta con la etiqueta hidden.

Untitled

24. Archivos que contienen una cadena determinada.

Untitled

25. Búsqueda de imágenes por ubicación.

Untitled

Aqui podremos ver las imágenes que contengan geolocalización.

Untitled

26. Búsqueda de archivos por autor.

Untitled

Apartado B) Máquina Linux

No he conseguido que Volatility reconozca el volcado de memoria de Linux, así que para hacer esta parte, he usado comandos de terminal de la propia máquina que ha cometido el crimen.

1. Procesos en ejecución.

ps -aux

Untitled

2. Servicios en ejecución.

ps -aux | grep service

Untitled

3. Puertos abiertos.

netstat -tulpn

Untitled

4. Conexiones establecidas por la máquina.

ss -ta

Untitled

5. Sesiones de usuario establecidas remotamente.

who -a

Untitled

6. Ficheros transferidos recientemente por NetBios.

7. Contenido de la caché DNS.

strings /var/cache/nscd/hosts

Untitled

8. Variables de entorno.

env

Untitled

9. Dispositivos USB conectados.

lsusb

Untitled

10. Redes wifi utilizadas recientemente.

grep psk= /etc/NetworkManager/system-connections/*

Untitled

He pixelado las claves, ya que con este comando aparecen en claro.

11. Configuración del firewall de nodo.

iptables -L

Untitled

12. Programas que se ejecutan en el Inicio.

systemctl list-unit-files | grep "enabled         enabled"

Untitled

13. Asociación de extensiones de ficheros y aplicaciones.

14. Aplicaciones usadas recientemente.

15. Ficheros abiertos recientemente.

16. Software Instalado.

dpkg -l

Untitled

17. Contraseñas guardadas.

cat /etc/shadow

Untitled

18. Cuentas de Usuario

cut -d: -f1 /etc/passwd | sort | uniq

Untitled

19. Historial de navegación y descargas. Cookies.

20. Volúmenes cifrados

21. Archivos con extensión cambiada.

22. Archivos eliminados.

23. Archivos Ocultos.

ls -la

Untitled

24. Archivos que contienen una cadena determinada.

Con este comando, buscamos los archivos que contengan la cadena “ejemplo” en el directorio actual y sus subdirectorios.

grep -rnw . -e 'ejemplo'

Untitled

25. Búsqueda de imágenes por ubicación.

26. Búsqueda de archivos por autor.

Con este comando buscamos en el directorio home todo el contenido cuyo propietario sea root.

find /home -user root

Untitled