Charla impartida por Alejandro Ramos de Security By Default, en el I Curso de Verano de Informática Forense en la Facultad de Informática de la Universidad de A Coruña.
1. Compromised Linux Server
Alejandro Ramos
Computer Hacking Forensic Investigator
SecurityByDefault.com
2. Antecedentes
Los hermanos Portugal tienen una
tienda en su pueblo Brazatortas
(Ciudad Real) de Salchichones
Deciden contratar un VPS para alojar su
web y ofrecer sus productos.
Un amigo de los hermanos monta un
sistema Linux y diseña la web con la
última versión crackeada de
Dreamweaver
3.
4. Antecedentes - II
A las pocas horas de tener su página web,
detectan que ha sido modificada.
Contactan con un equipo de respuesta a
incidentes (nosotros) para averiguar que
ha ocurrido.
7. Tipos de adquisición
Copia en frio
◦ Copia de los discos con el sistema apagado
◦ Usado como estándar
◦ No altera los datos, por lo que se puede repetir
Copia en caliente
◦ Copia de datos de un sistema encendido
◦ Practico en caso de discos duros cifrados
◦ No puede ser repetido exactamente. El sistema es
modificado
◦ Se puede adquirir volcado de memoria
8. Por red en caliente
Tabla de particiones: fdisk -l
En el sistema remoto (donde se hace la
imagen):
nc –l –p port –w 10 > img.raw
En el cliente (sistema comprometido):
dd if=/dev/sda conv=sync,noerror | nc IP port
9. Alternativas a DD
dc3dd
◦ Creada por el DoD
◦ Parche para el „dd‟
◦ Hashes al vuelo
◦ “wipe” datos
◦ Sumarización de registro
◦ Divide la imagen
dcfldd
◦ fork de „dd‟
◦ Más de una copia a la vez
11. Memoria RAM
Distintos dispositivos:
◦ /dev/kmem
“kernel” memory. Formato core
está deshabilitado en distribuciones modernas (solo
se usaba para instalar rootkits)
◦ /dev/mem
En algunas distribuciones el kernel deshabilita el
acceso después de 8 páginas.
◦ /proc/kcore
Formato ELF (core)
En ocasiones superior al tamaño de memoria
12. Métodos de volcado
Módulos de kernel
◦ Fedora/RedHat/Centos: crash
http://people.redhat.com/anderson/
◦ fmem
https://hysteria.sk/~niekt0/fmem/
Lectura de /proc/kcore
◦ dd if=/dev/kcore | nc host port
14. Archivos de syslog
Revisar sistema de logs para conocer
todos los directorios: rsyslogd / syslogd /
syslog-ng:
◦ /var/log/messages
◦ /var/log/secure
◦ /var/log/maillog
◦ /var/log/cron
◦ /var/log/spooler
◦ /var/log/boot.log
15. Otros registros
Ficheros de accesos web:
◦ /var/log/httpd/access_log
◦ /var/log/httpd/error_log
Directorio audit del demonio auditd
Accesos de «login»:
◦ /var/log/btmp -> logins fallidos (lastb)
◦ /var/log/wtmp -> logins y logouts (last)
◦ /var/log/lastlog -> logins en el sistema
(lastlog)
◦ /var/run/utmp -> usuarios en el sistema (who/w)
◦ /var/log/dmesg -> logs del kernel (dmesg)
16. Históricos:
Comandos de shell:
◦ $HOME/.bash_history
◦ $HOME/.sh_history
◦ $SOME/.history
Comando less:
◦ $HOME/.lesshst
Clientes de FTP:
◦ $HOME/.lftp/rl_history y cwd_history
◦ $HOME/.ncftp/history
Equipos a los que se ha conectado con SSH:
◦ $HOME/.ssh/known_hosts
19. Depurado y trazas
lsof list open files
◦ lsof –i
◦ lsof /etc/passwd
◦ lsof apache
strace trace system calls and signals
◦ strace –p PID
ltrace a library call tracer
◦ ltrace command
20. El directorio /proc
Pseudo sistema de ficheros
Permite acceso a información de procesos
◦ /proc/version
◦ /proc/sys/kernel/name
◦ /proc/sys/kernel/domainame
◦ /proc/cpuinfo
◦ /proc/swaps
◦ /proc/partitions
◦ /proc/self/mounts
◦ /proc/uptime
◦ /proc/modules
◦ /proc/PID/cmdline
21. Directorio /sys
Nuevo en kernel 2.6
Saca información de /proc no referente a
procesos
/sys/module módulos cargados en el
kernel
/sys/block información de
dispositivos
27. Puertas traseras clásicas - II
La configuración de init:
◦ /etc/inittab
Archivos SETUID/SETGID
◦ find / -type f -perm -4000 –ls
◦ find / -type f -perm -2000 -ls
Directorios extraños
◦ Uso de espacios: “.. “
◦ find . –type f –exec ls –i {}
; | sort –n
28. Verificación de firmas
rpm --verify <paquete> / rpm -Va
dpkg: debsums
◦ No instalado por defecto
◦ Compara MD5 de archivos
◦ debsums -ca (compara bin y config)
◦ debsums –ce (solo configuración)
29. Recuperación de archivos
Aplicación kpartx ayuda a montar una
imagen en loopback
Aplicaciones de la suite “Sleuthkit”: ils,
fls, icat, etc.
Complicado en otros sistemas de ficheros
como ext3 o ext4
Comando strings de la imagen en
búsqueda de cadenas típicas.