10 KiB
title | date | draft | image | categories | tags | ||||
---|---|---|---|---|---|---|---|---|---|
Informática forense | 2023-02-08T18:50:12+01:00 | false | featured.png |
|
|
Enunciado
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.
Apartado A. Máquina Windows
Volcado de memoria
Para realizar el volcado de memoria he usado la herramienta FTK Imager, que permite realizar volcados de disco y memoria. Para ello hago lo siguiente. Utilizo las siguientes opciones:
Ahora, para analizar los datos, utilizo Volatility en mi máquina debian; para ello, especifico el fichero que he creado con FTK Imager al utilizar los comandos.
1. Procesos en ejecución
Uso el comando pslist
para ver los procesos en ejecución:
python vol.py -f "/media/roberto/usb/memdump.mem" windows.pslist.PsList
2. Servicios en ejecución
Uso el comando getservicesids
para ver los servicios en ejecución:
python vol.py -f "/media/roberto/usb/memdump.mem" windows.getservicesids.GetServiceSIDs
3. Puertos abiertos
Uso el comando netstat
para ver los puertos abiertos:
python vol.py -f "/media/roberto/usb/memdump.mem" windows.netstat.NetStat
4. Conexiones establecidas por la máquina
Uso el comando netscan
para ver las conexiones establecidas por la máquina:
python vol.py -f "/media/roberto/usb/memdump.mem" windows.netscan.NetScan
5. Sesiones de usuario establecidas remotamente
Uso el comando sessions
para ver las sesiones de usuario establecidas remotamente:
python vol.py -f "/media/roberto/usb/memdump.mem" windows.sessions.Sessions
6. Ficheros transferidos recientemente por NetBios
7. Contenido de la caché DNS
8. Variables de entorno
Para ver las variables de entorno, uso el comando envars
:
python vol.py -f "/media/roberto/usb/memdump.mem" windows.envars.Envars
Volcado del registro
Para realizar el volcado de registro he usado también la herramienta FTK Imager. Utilizo la opción Obtain system files
:
Una vez finalizado el volcado, utilizo el programa Registry Viewer para analizar los datos obtenidos.
10. Redes wifi utilizadas recientemente
Para ver las redes wifi usadas recientemente, abro el archivo software
, y ahí sigo la siguiente ruta: Microsoft/Windows NT/CurrentVersion/NetworkList/Profiles
:
11. Configuración del firewall de nodo
Para ver la configuración del firewall de nodo, abro el archivo system
, y ahí sigo la siguiente ruta: ControlSet001/Services/SharedAccess/Parameters/FirewallPolicy/FirewallRules
:
12. Programas que se ejecutan en el Inicio
Para ver los programas que se ejecutan en el inicio, abro el archivo software
, y ahí sigo la siguiente ruta: Microsoft/Windows/CurrentVersion/Run
:
13. Asociación de extensiones de ficheros y aplicaciones
No he podido encontrar en la aplicación Registry Viewer los registros, pero usando regedit en la máquina, se encuentran en la siguiente localización: Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
:
Volcado de disco
Para realizar el volcado de disco he usado la herramienta FTK Imager también:
Selecciono RAW como tipo de imagen:
Y, como indica la ayuda, en Fragment size pongo 0, además de indicar la ruta y el nombre del fichero:
El resto de los pasos del proceso los dejo con los valores por defecto.
Ahora, para analizar los datos, utilizo Autopsy; para ello, abro el fichero que he creado con FTK Imager, indicamos el direcorio del fichero , y en tipo, selecciono Disk image or VM file:
Tras finalizar la configuración, empezará a analizar el volcado de disco. Este proceso tarda bastante tiempo en completarse. Una vez acabado podemos analizar los datos obtenidos.
9. Dispositivos USB conectados
Para ver los dispositivos USB conectados, utilizo la opción USB Device Attached
:
14. Aplicaciones usadas recientemente
Para ver las aplicaciones usadas recientemente, utilizo la opción User Activity
del disco duro:
15. Ficheros abiertos recientemente
16. Software Instalado
Para ver el software instalado, utilizo la opción Installed Programs
:
18. Cuentas de Usuario
Para ver las cuentas de usuario, utilizo la opción OS Accounts
:
19. Historial de navegación y descargas, cookies
Para ver el historial de navegación, utilizo la opción Web History
:
Para ver las cookies utilizo la opción Web Cookies
:
Para ver el historial de descargas, utilizo la opción Web Downloads
:
21. Archivos con extensión cambiada
Los archivos con extensión cambiada aparecen en la sección Analysis Results/Extension Mismatch Detected
:
22. Archivos eliminados
Los archivos eliminados aparecen en la sección Recycle Bin
:
23. Archivos Ocultos
En la opción para explorar el sistema de archivos, se pueden distinguir los archivos ocultos porque en los metadatos, aparece la etiqueta: Hidden
:
24. Archivos que contienen una cadena determinada
Para buscar archivos que contengan una cadena determinada, utilizo la opción Keyword Search
:
25. Búsqueda de imágenes por ubicación
Para buscar imágenes por ubicación, utilizo la opción Geolocation
:
26. Búsqueda de archivos por autor
Para buscar archivos por autor, utilizo la opción Metadata
:
Apartado B) Máquina Linux
Intenta realizar las mismas operaciones en una máquina Linux para aquellos apartados que tengan sentido y no se realicen de manera idéntica a Windows.
Volcado de memoria
He realizado el volcado de memoria con Lime, que es una herramienta que se utiliza para realizar volcados de memoria en Linux. Para ello, he usado el comando de la siguiente manera (he instalado Lime meadiante su repositorio en github):
insmod lime-4.19.0-23-amd64.ko "path=/mnt/linux/memorialinux.mem format=lime"
Es importante que para realizar el volcado, hay que iniciar el sistema de forma insegura, ya que si no, no permite utilizar el comando.
No he sido capaz de realizar el análisis utilizando volatility, ya que es necesario instalar plugins para interpretar el volcado de memoria, y no los reconoce, por lo que voy a usar los comandos en lugar de trabajar sobre el volcado.
1. Procesos en ejecución
Para ver los procesos en ejecución, utilizo el comando ps aux
:
2. Servicios en ejecución
Para ver los servicios en ejecución, utilizo el comando systemctl
:
systemctl list-units --type=service --state=running
3. Puertos abiertos
Para ver los puertos abiertos, utilizo el comando netstat
, que se encuentra en el paquete net-tools
:
apt install net-tools
netstat -tulpn
4. Conexiones establecidas por la máquina
Las sesiones se pueden observar en el comando netstat utilizado anteriormente.
5. Sesiones de usuario establecidas remotamente
Para ver las sesiones de usuario establecidas remotamente, utilizo el comando who
:
who -a
7. Contenido de la caché DNS
En debian, la caché dns está deshabilitada por defecto. Para habilitarla, voy a instalar el paquete nscd (demonio de caché para servicio de nombres), y leer el fichero que genera. El fichero tiene un formato binario, por lo que voy a usar el comando strings
para ver su contenido:
strings /var/cache/nscd/hosts
8. Variables de entorno
Para ver las variables de entorno, utilizo el comando env
:
Volcado de disco
El volcado de disco en linux lo he realizado con el comando dd, que se utiliza para copiar archivos y volúmenes. Para ello, he usado el comando de la siguiente manera:
dd if=/dev/vda2 of=/mnt/linux/volcado_linux.001 bs=64K
Es imporate que, durante el análisis de la imagen en Autopsy, el tiempo es mucho mayor, y que es de hecho la última fase, cuando ya se encuentra al 100% la que toma más tiempo.
Los apartados rellativos al análisis usando autopsy, o se realizan exactamente igual que en Windows, o no tienen sentido en Linux, por lo que no los están documentados aquí.