Un caso Forense: Analizando un servidor Linux

2,269
-1

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,269
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
165
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Un caso Forense: Analizando un servidor Linux

  1. 1. Compromised Linux Server Alejandro Ramos Computer Hacking Forensic Investigator SecurityByDefault.com
  2. 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. 3. 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.
  4. 4. ADQUISICIÓN
  5. 5. 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
  6. 6. 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
  7. 7. 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
  8. 8. Local en frio - Guymager
  9. 9. 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
  10. 10. 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
  11. 11. ANÁLISIS
  12. 12. 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
  13. 13. 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)
  14. 14. 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
  15. 15. Información básica Usuarios: /etc/passwd /etc/shadow Grupos: /etc/group Versión: /etc/*release /etc/*version Kernel: uname –a Módulos de kernel cargados: lsmod Procesos: ps axufwww Puertos: netstat –tanp
  16. 16. Información básica Hora: date Software: dpkg –l / rpm –qa CPU: lspci Memoria: free –m Interfaces de red: ifconfig –a Rutas: route –n / netstat –nr Tabla arp: arp -n
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. Búsqueda de ficheros por fechas Modificación ◦ find / -mtime 5 –xdev >mod.txt Acceso ◦ find / -atime 5 –xdev > acc.txt Creación ◦ find / -ctime 5 –xdev > cre.txt
  21. 21. Herramientas - malware / rootkits Antivirus: clamav ◦ freshclam ◦ clamscan -i -r / Detección de rootkits ◦ Rkhunter: http://www.rootkit.nl/  rkhunter --update  rkhunter --check  Compara MD5  Uso de ficheros por defecto en rootkits comunes  Permisos incorrectos en binarios  Cadenas extrañas en módulos de kernel  Ficheros ocultos en directorios extraños
  22. 22. rkhunter[root@dmz data]# rkhunter --check[ Rootkit Hunter version 1.3.8 ]Checking system commands... Performing strings command checks Checking strings command [ OK ] Performing shared libraries checks Checking for preloading variables [ None found ] Checking for preloaded libraries [ None found ] Checking LD_LIBRARY_PATH variable [ Not found ] Performing file properties checks Checking for prerequisites [ Warning ] /sbin/chkconfig [ OK ] /sbin/depmod [ OK ] /sbin/fsck [ OK ]
  23. 23. Herramientas – malware / rootkits ◦ chkrootkit: http://www.chkrootkit.org/  chkrootkit  Binarios modificados  Logs de sniffers  Ficheros de rootkits por defecto  Tarjeta de red en modo promiscuo  Ficheros de logs módificados (zappers) ◦ unhide: http://www.security-projects.com/  unhide proc; unhide-tcp  Procesos ocultos  Puertos abiertos
  24. 24. Puertas traseras clásicas Scripts de inicio: ◦ /etc/init.d/* ◦ /etc/rc.local ◦ Permisos de esos ficheros. Superdemonios: init.d / xinit.d ◦ /etc/initd.conf ◦ /etc/xinit.d/* Módulos del kernel ◦ /etc/modules
  25. 25. 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
  26. 26. 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)
  27. 27. 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.
  28. 28. Cadenas típicas exploit packetstorm sniffer password nmap crack […]
  29. 29. ¿PREGUNTAS?
  30. 30. Gracias Alejandro Ramos www.securitybydefault.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×