Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Un caso Forense: Analizando un servidor Linux

2,664 views

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
  • Be the first to comment

  • Be the first to like this

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

×