Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Analisis Criminalistico Forense Con OSS
Analisis Criminalistico Forense Con OSS
• Forensics Datarecovery
-Conceptos básicos de filesystems y memoria (NTFS/FAT(x)/ext2/ext3/ufs2)
-Conceptos avanzados de agrupación de información y tablas a nivel de
kernel.
-Restaurando la información
-Emitiendo un veredicto
-Consejos Prácticos
Index
• Post-Hack Pentesting
-Que es el pentesting?
-Como se realiza
-Ejemplos.
• Conclusiones
¿Me “hackearon”, ahora que?
¿Me “hackearon”, ahora que?
• Busqueda de evidencia:
Normalmente los sistemas por su naturaleza, incluso Windows logean
TODO lo que se hace, (conexiones, accesos, peticiones, etc, etc), algunos
de ellos de una forma mucho mejor que otros, pero todo deja logs, un
perpetrador lógicamente va a buscar la forma de asegurar su acceso a un
sistema “intervenido”, es por ello que instalara un backdoor (de su creacion
o publico), para no tener que hacer TODO el procedimiento de explotación,
borrado de logs y demas.
Ahora bien donde un perpetrador de un incidente dejaria semejantes
utilerias y como actuan estas?
Tomando evidencia
Windows al igual que linux tiene ciertos “sistemas” de seguridad y logeo de
accesos a todas sus aplicaciones, es posible logear si una aplicación
genero errores, si una aplicación fue derribada, si una aplicación, servicio o
usuario intento perpetrar un ilicito y demas.
• Búsqueda de patrones:
ALIADOS
<linux/mm.h>
<linux/mmzone.h>
/usr/src/linux/mm/* (especialmente page_alloc.c)
/usr/src/linux/arch/i386/mm/*
Mucha paciencia y dedicacion ;)
Organizacion de la memoria física
• Bancos de Memoria -> NODOS (uno por procesador)
• Zona DMA
• Zona Normal
• Zona Alta (HighMem)
node_zones
Weird0, huh?
Consejos prácticos
Es difícil hacer este tipo de análisis sin utilerías y sin sentido común, es por
ello que deberán de utilizarse ambas en la generación de este tipo de
análisis.
-memdump (posix)
http://www.porcupine.org/forensics/memdump-1.0.tar.gz (solaris/bsd/linux)-
Configuración de memory dumps de windows. (windows).
-Es posible forzar un dump de la memoria completo que procesara dr
watson, esto se logra modificando la llave de registro “esto lo tuvimos que
haber hecho antes de que se diera el incidente”.
HKEY_LOCAL_MACHINE\System\
CurrentControlSet\Services\i8042prt\Parameters, hay que crear una llave
DWORD llamado CrashOnCtrlScroll, a esa llave hay que setearle el valor de
1, reiniciar el ordenador y presionar el control derecho y presionar dos veces
scroll lock.
Consejos practicos
Mira lo que dejaste
• Ahora bien toda la información recopilada nos dará un dump de memoria el
cual podremos analizar en la carpeta de Windows obteniendo el archivo
memory.dmp, con esta información deberemos analizar los datos por
ejemplo:
Mira lo que dejaste
Forensics Data Recovery
Forensics DataRecovery
Terminado el tópico de que es lo
que podemos encontrar en la
memoria física, analizemos ahora
que es lo que podemos encontrar
en el disco rígido.
Para ello debemos entender a
grandes rasgos como es que se
comporta el disco rígido y como
es su forma de estudio a groso
modo.
FORENSICS DATARECOVERY.
Conceptos básicos de filesystems
y memoria
(NTFS/FAT(x)/ext2/ext3/ffs).
*Assembly Language for intel based computers (Kip Irvine) – Disk Fundamentals
Forensics DataRecovery
• FAT32:
El sistema de archivos fat32 fue introducido con el release OEM de
Windows 95 y fue “refinado” bajo windows 98, tiene muchas mejoras sobre
el sistema de archivos fat16:
-Soporte de nombres de archivo grandes.
-Un simple archivo puede ser tan grande como 4GB menos 2 bytes (por
temas de manejo de memoria).
-Cada entrada en la tabla de allocacion maestra FAT es de 32 bits.
-Cada volumen puede alocar cerca de 268,435,456 clusters.
-El folder raiz puede ser alocado donde sea en el disco y puede tener casi
cualquier tamaño.
-Cada volumen puede allocar cerca de 32GB.
-El sector maestro de boot incluye una copia de backup. Esto significa que
los drives fat32 son menos susceptibles a fallar a diferencia de los drives
FAT16.
Forensics DataRecovery
• NTFS
El sistema de archivos NTFS es soportado por Microsoft Windows NT,
2000, XP y 2003, y tiene las siguientes mejoras sobre FAT.
-NTFS puede manejar drives inmensos en un solo drive o en muchos
representados en uno solo (esto NO ayuda en la reconstrucción forense de
información).
-El tamaño de cada cluster es de 4KB para discos de mas de 2GB.
-Soporta nombres UNICODE de 255 caracteres.
-Permite setear permisos a archivos, directorios, por medio de nombres de
usuario y grupos. Los niveles de acceso soportados son:
(read/write/modify/etc).
-Tiene encripción y compactación preestablecida. (EFS).
-Tiene sistema de journalizacion.
-Maneja quotas.
-Tiene recovery automático o en demanda en contra de errores, reparado
automatizado de errores debido al sistema de journalizacion.
-Soporta Mirroring
Forensics DataRecovery
• Ext2fs:
-Soporte de los tipos de archivos mas significativos para unix: archivos, directorios,
devices, archivos especiales y symlinks.
-Puede manejar sistemas de archivos creados sobre particiones inmensas, las
nuevas implementaciones de kernel soportan hasta 4TB, ahora es posible utilizar
discos realmente grandes sin utilizar muchas particiones.
-Soporte de nombres grandes, el limite puede ser extendido a 1012 si es necesario.
-Ext2 reserva bloques destinados para el súper usuario (root), normalmente 5% de
los bloques son reservados, eso ayuda a que el administrador recobre rápidamente
y de forma facil un problema de filesystems llenos.
-Ext2 soporta algunas extensiones que no son usualmente utilizadas en sistemas
normales unix.
-Soporte de atributos de archivo avanzados. (permisos heredados).
-Las opciones de montado permiten al administrador obtener "metadata" (inodos,
bitmap blocks, indirect blocks y directory blocks), para poder escribir de manera
asincrona.
-Se permite setear el tamaño de los bloques lógicos por el administrador que
comúnmente son de 1024/2048 y 4096.
http://e2fsprogs.sourceforge.net/ext2intro.html
Forensics DataRecovery
http://e2fsprogs.sourceforge.net/ext2intro.html
Forensics DataRecovery
• Ext3fs:
Ext3fs es una mejora significativa a ext2, actualmente es mantenido por
redhat inc.
-Ext3 permite todas las funciones de ext2.
-Ext3 tiene journalizacion de las tablas de asignación de archivos, esto
quiere decir que se mantiene traqueado el estatus de un archivo, si nuestro
ordenador de pronto deja de funcionar la tabla maestra mantendrá el track
del archivo hasta donde se quedo sin eliminarlo, esto ayuda
significativamente al desempeño del ordenador. Es frustrante obtener una
corrupción innecesaria de los archivos de nuestro ordenador por un
apagón, con ext3 esto no ocurre de manera tan exponencial.
-Ext3 tiene pros y contras en el momento de realizar un análisis forense, ya
que su tabla de asignación nos ayuda a reconstituir como fue el proceso
que sufrió un archivo (borrado), pero también debido a que todas las
funciones se encuentran traqueadas si erramos algún paso podemos
perder por completo información que podria dictaminar como fue que
nuestro ordenador fue penetrado.
Forensics DataRecovery
• UFS2:
• Atributos:
getattr()
Checa atributos de un file
• setattr()
Escribe atributos
• Interpretacion de objetos
open()
abre un file descriptor hacia el tipo de archivo
Forensics DataRecovery
readdir()
Lee el contenido de un directorio
readlink()
Lee a lo que apunta un archivo creado con symlink()
mmap()
Mete a la memoria file descriptors
close()
Cierra el filedescriptor indicado que se encuentra manipulado en el kernel
• Control de procesos
ioctl()
Manipula descriptors a archivos especiales generalmente char devs o
blockdevs para acceso directo a hardware
select()
es como poll() en linux
lo que hace es esperar a que un file descriptor cambie su estado
Forensics DataRecovery
• Manejo de objetos:
• Accesos a disco:
• Para archivos mayores a un megabyte se usa un "double indirect block"
que es un apuntador a un bloque de apuntadores que apuntan a punteros que
apuntan a datos físicos (jajaja) la explicación se hara posteriormente
• Es como hacer un
int ***matriz ;
• Locking
Esto fue una muy superficial explicacion de UFS . Muchos filesystems tienen
parecida operatividad y las caracteristicas con otros se reducen al locking e
implementaciones a 64 bits para permitir mayor utilidad del sistema operativo
Por ultimo solamente hice un pequenio programa que despliega 3 elementos
de struct stat
Forensics DataRecovery
• Entendiendo lo anterior ahora debemos entender lo siguiente:
Inodos: Cada archivo es representado por una estructura llamada inodo.
Cada inodo contiene una descripción del archivo:
-Tipo de archivo
-Permisos de acceso
-Dueños
-Timestamps
-Punteros a los sectores de datos.
Las direcciones de los bloques de datos que tienen que ver con el archivo
están localizadas en estos inodos. Cuando un usuario solicita una
operación de entrada y salida (I/O) a un archivo el kernel convierte el offset
corriente a un numero de bloque, la utilización de este numero en un index
de bloques de direcciones lee y escribe al bloque físico.
La siguiente figura muestra el proceso.
Forensics DataRecovery
Forensics DataRecovery
• Conceptos de Memoria
-La memoria agrupa las sentencias que seran dictadas por el kernel y
escritas, leídas o manipuladas al filesystem. Esto quiere decir que cualquier
operación que generemos hacia nuestro filesystem sera directamente
proporcional a la operación que el kernel dictara.
VFS:
Restaurando la información
• El proceso de información y dumpeado de las mismas es un proceso arduo,
existen utilerías (software libre y comercial) que aminoran este arduo proceso a
simples comandos y clic´s.
http://www.sleuthkit.org/
Restaurando la información
• FTimes
-Monitoreo de integridad
-Colectividad de evidencia
-Análisis de una intrusión
-Administración centralizada de esa
información.
-Chequeo de archivos críticos de sys.
-Chequeo de archivos críticos de apli.
-Chequeo de sistemas remotos.
-ETC. http://ftimes.sourceforge.net/
Restaurando la informacion
• GDB for FAT and NTFS
http://www.runtime.org/gdb.htm
Restaurando la informacion
• PC Inspector File Recovery
http://www.pcinspector.de/
Restaurando la información
• Stellar Phoenix for NTFS/FAT and EXT2/3
http://www.pcinspector.de/
Restaurando la información
• Existen distribuciones que ayudan a realizar análisis forense, muchas de
ellas son DISK-LESS (muy al estilo knoppix), podemos utilizarlas para
generar nuestros análisis forenses de todo tipo.
Que es el pentesting:
El pentesting (Pen:Penetration:Penetracion) (Test:Prueba) es la
realizacion de cómo se indica, una prueba real de penetracion, se le ha
dado el atributo de pentesting a (seguridad generada por hackers), se basa
en el hecho de “si yo pude penetrarme, cualquier otro puede”. Las fases
que conlleva esta practica son:
Seria difícil estar todo el dia plantado frente al monitor esperando que
nuestro “intruso”, regrese y es por ello que se han introducido y creado
utilerias que ayudan a saber que, como, cuando y donde fue que se dio una
penetracion.
-Keystroke check
-NIDS policyes
-Eventlog to syslog
-Windows FileSystem Analisis
-Capture stdin/stdout/stderr
-Etc, etc.
Seria interesante logear todo este tipo de cosas, asi como posibles
conversaciones, transferencias y demás.
Poisoners
Pensar que el contar con switches nos quita que un atacante pueda sniffear
la red es hoy en dia una estupidez, existen técnicas como el arp-spoofing o
el arp-poisoning que permiten a un atacante sniffear toda nuestra red, sin
necesidad de escribir un gran numero de ordenes.
-ettercap
-nast (http://nast.berlios.de/)
-arptoxin (http://www.l0t3k.net/tools/ARPutils/arptoxin.exe)
-arpoison (http://www.l0t3k.net/tools/ARPutils/arpmim-0.2.tar.gz)
Sniffers
Si bien sabemos que fuimos penetrados, porque no saber que fue lo que
pasara o lo que paso?, con la utilización de sniffers podemos capturar las
tramas de datos que nos plazcan, logear todo el trafico a un host y muchas
otras funciones mas.
-tcpdump (http://www.tcpdump.org)
-ethreal (http://www.ethereal.com)
-ettercap (ettercap.sourceforge.net/)
-sniffer (NAI) (http://www.sniffer.com)
-snort (sniff packet mode) (http://www.snort.org)
-sniffit (http://reptile.rug.ac.be/~coder/sniffit/sniffit.html)
-dsniff (password and message sniffer)
(www.monkey.org/~dugsong/dsniff/)
-etc.
Seekers
Information seekers, son utilerías de buscado de datos y comportamiento
anómalo, comúnmente una rama de los NIDS (Network Intrusion Detection
Systems). Estos nos ayudan a verificar comportamiento anómalo
generalmente, retransmisión de paquetes y comportamiento anómalo de
tarjetas.
-Snort (http://www.snort.org)
-Prelude (http://www.prelude-ids.org/)
-RealSecure (http://www.iss.net)
-Etc.
PIDS
PIDS son las siglas de Prevention Intrusion Detection System, son los
llamados “detectores de intrusos agresivos”, son aquellos que realizan una
tarea en dado caso de detectar un intento de intrusion, como por ejemplo
poner una regla en el firewall, quitarla, resetear una coneccion (SYN_RST),
redirigir el trafico, etc.
-Snort (http://www.snort.org)
(SNORT INLINE)
-Prelude (http://www.prelude-ids.org/)
(PRELUDE INLINE)
-RealSecure (http://www.iss.net)
-Etc.
ViruSNORT un caso especial.
ViruSNORT entra dentro de las características de un NIDS y un PIDS,
dando una inigualable ayuda a administradores de red.
• System Internals
http://www.sysinternals.com
• The design and implementation of the 4.4 BSD operating system (Addison
Wesley)
Corporative Sites:
http://www.hypersec.co.uk
http://www.g-con.org
http://www.kaspersky.com.mx
http://www.kelsisiler.com
¿Alguna Pregunta?
Gracias