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. Para garantizar la cadena de custodia de las evidencias recolectadas del volcado de memoria o del volcado de disco, se deben seguir los siguientes pasos:
- Asegurar la integridad de las evidencias creando una imagen encriptada
- Documentación del proceso
- Identificación y etiquetado de evidencias
- Almacenamiento de las evidencias con acceso restringido
- Monitorear y controlar el acceso a las evidencias teniendo un registro con fecha y usuario que lo haya usado
Apartado A - Máquina Windows
Volcado de memoria
Para esto tenemos una máquina Linux con Volatility instalado y una máquina Windows con el fichero de volcado de memoria. Para realizar el volcado de memoria descargamos FTK Imager en la máquina windows y hacemos una captura de la memoria. Una vez hecho esto, copiamos el fichero de volcado de memoria a la máquina Linux y lo analizamos con Volatility. Así se vería el proceso de volcado de memoria con FTK Imager:
Por comandos
Procesos en ejecución.
python3 vol.py -f "/home/usuario/memdump.mem" windows.pslist
Servicios en ejecución.
python3 vol.py -f "/home/usuario/memdump.mem" windows.getservicesids
Puertos abiertos.
python3 vol.py -f /home/usuario/memdump.mem windows.netscan o python3 vol.py -f /home/usuario/memdump.mem windows.netstat
Conexiones establecidas por la máquina.
python3 vol.py -f /home/usuario/memdump.mem windows.netscan
Sesiones de usuario establecidas remotamente.
python3 vol.py -f /home/usuario/memdump.mem windows.sessions
Ficheros transferidos recientemente por NetBios.
python3 vol.py -f /home/usuario/memdump.mem windows.netscan
Contenido de la caché DNS.
python3 vol.py -f /home/usuario/memdump.mem windows.dns_cache >> dns_cache.txt
Variables de entorno.
python3 vol.py -f /home/usuario/memdump.mem windows.envars
Volcado de registro
Con ftk imager hacemos una captura del registro de windows usando obtain system files:
Descargamos Registry Viewer y abrimos el registro de windows:
IMAGEN
Redes wifi utilizadas recientemente.
Configuración del firewall de nodo.
Programas que se ejecutan en el Inicio.
Asociación de extensiones de ficheros y aplicaciones.
Volcado de disco
En la maquina windows usando la aplicación FTK Imager, hacemos una captura del disco duro:
Con autopsy analizamos el disco duro:
Primero creamos un nuevo caso.
Seleccionamos el tipo en este caso disco:
- Así se ve cuando termina de analizar el disco:
- Por último, podemos ver los archivos que se han encontrado:
Analizando el Registro de Windows
- Dispositivos USB conectados
data artifacts > usb device attached
- Aplicaciones usadas recientemente.
disco volcado > summary > user activity
- Ficheros abiertos recientemente.
data artifacts > recent documents
- Software Instalado.
data artifacts > installed programs
Contraseñas guardadas.
Cuentas de Usuario
Tanto 17. como 18. se pueden ver en el apartado de usuarios:
os accounts
Con Aplicaciones de terceros
- Historial de navegación y descargas. Cookies.
data artifacts > web history
data artifacts > web cookies
data artifacts > web downloads
- Volúmenes cifrados
analysis results > encryption suspected
Sobre la imagen del disco
- Archivos con extensión cambiada.
analysis results > extension mismatch detected
- Archivos eliminados.
file views > deleted files
- Archivos Ocultos.
Esto se puede ver en el archivo entrando en file metadata donde veremos la opción de hidden.
- Archivos que contienen una cadena determinada.
Usando el buscador de ficheros:
- Búsqueda de imágenes por ubicación.
Usando la opción geolocation.
- Búsqueda de archivos por autor.
data artifacts > metadata
Apartado B - Máquina Linux
Volcado de memoria
Para esto he descargado Lime desde el repositorio git clone https://github.com/504ensicsLabs/LiME.git
y he seguido los siguientes pasos:
uname -r # Para saber la versión del kernel ya que Lime tiene que ser de la misma versión y nos la pedirá más adelante
sudo apt-get install make build-essential linux-headers
cd LiME/src
make
sudo insmod lime-5.10.0-22-amd64.ko "path=/home/usuario/memdumplinux format=lime"
Si al hacer la compilación de Lime nos da de error:
usuario@debian:~/LiME/src$ make
make -C /lib/modules/5.10.0-22-amd64/build M="/home/usuario/LiME/src" modules
make[1]: *** /lib/modules/5.10.0-22-amd64/build: No existe el fichero o el directorio. Alto.
make: *** [Makefile:35: default] Error 2
Tenemos que instalar los headers del kernel:
sudo apt-get install linux-headers-5.10.0-22-amd64
Una vez hecho esto, volvemos a hacer la compilación de Lime y ya no nos dará error.
Procesos en ejecución.
ps -aux
Servicios en ejecución.
systemctl list-units --type=service --state=running
Puertos abiertos.
apt install net-tools netstat -tulpn
Conexiones establecidas por la máquina.
netstat -tulpn
Sesiones de usuario establecidas remotamente.
who -a
Ficheros transferidos recientemente por NetBios.
apt install samba -y smbstatus o sudo apt-get install smbclient -y smbclient -L localhost o smbclient //hostname/sharename -U username -c 'recurse; ls'
Contenido de la caché DNS.
strings /var/cache/nscd/hosts
Variables de entorno.
env
Volcado de disco
usuario@debian:~$ sudo mkdir /mnt/linux
usuario@debian:~$ sudo dd if=/dev/vda1 of=/mnt/linux/volcado_linux2.001 bs=64K
65111+0 registros leídos
65110+0 registros escritos
4267061248 bytes (4,3 GB, 4,0 GiB) copied, 36,8376 s, 116 MB/s
Con autopsy analizamos el disco duro y dará resultados similares a los de la máquina windows.
Para analizarlo con esta aplicación lo pase por scp a mi máquina windows y ahi lo realice. PAra que lo acepte hay que indicarle que es una imagen Unallocated Space Image File