análisis forense en linux - compromised linux server

32
Compromised Linux Server Alejandro Ramos Computer Hacking Forensic Investigator SecurityByDefault.com

Upload: alejandro-ramos

Post on 27-Jun-2015

2.017 views

Category:

Technology


3 download

DESCRIPTION

charla impartido en el I Curso de Verano de Análisis forense de la Universidad de A Coruña.

TRANSCRIPT

Page 1: Análisis forense en linux - Compromised Linux Server

Compromised Linux Server

Alejandro Ramos Computer Hacking Forensic Investigator

SecurityByDefault.com

Page 2: Análisis forense en linux - Compromised Linux Server

AntecedentesLos 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

Page 3: Análisis forense en linux - Compromised Linux Server
Page 4: Análisis forense en linux - Compromised Linux Server

Antecedentes - IIA 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.

Page 5: Análisis forense en linux - Compromised Linux Server
Page 6: Análisis forense en linux - Compromised Linux Server

ADQUISICIÓN

Page 7: Análisis forense en linux - Compromised Linux Server

Tipos de adquisiciónCopia en frio

◦Copia de los discos con el sistema apagado

◦Usado como estándar◦No altera los datos, por lo que se puede

repetirCopia 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

Page 8: Análisis forense en linux - Compromised Linux Server

Por red en calienteTabla de particiones: fdisk -l

En el sistema remoto (donde se hace la imagen):

En el cliente (sistema comprometido):

nc –l –p port –w 10 > img.raw

dd if=/dev/sda conv=sync,noerror | nc IP port

Page 9: Análisis forense en linux - Compromised Linux Server

Alternativas a DDdc3dd

◦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

Page 10: Análisis forense en linux - Compromised Linux Server

Local en frio - Guymager

Page 11: Análisis forense en linux - Compromised Linux Server

Memoria RAMDistintos 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

Page 12: Análisis forense en linux - Compromised Linux Server

Métodos de volcadoMó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

Page 13: Análisis forense en linux - Compromised Linux Server

ANÁLISIS

Page 14: Análisis forense en linux - Compromised Linux Server

Archivos de syslogRevisar 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

Page 15: Análisis forense en linux - Compromised Linux Server

Otros registrosFicheros de accesos web:

◦ /var/log/httpd/access_log ◦ /var/log/httpd/error_log

Directorio audit del demonio auditdAccesos 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)

Page 16: Análisis forense en linux - Compromised Linux Server

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

Page 17: Análisis forense en linux - Compromised Linux Server

Información básica

Usuarios: /etc/passwd /etc/shadow

Grupos: /etc/groupVersión: /etc/*release /etc/*version

Kernel: uname –aMódulos de kernel cargados: lsmodProcesos: ps axufwwwPuertos: netstat –tanp

Page 18: Análisis forense en linux - Compromised Linux Server

Información básicaHora: dateSoftware: dpkg –l / rpm –qaCPU: lspci Memoria: free –mInterfaces de red: ifconfig –aRutas: route –n / netstat –nrTabla arp: arp -n

Page 19: Análisis forense en linux - Compromised Linux Server

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

Page 20: Análisis forense en linux - Compromised Linux Server

El directorio /procPseudo sistema de ficherosPermite 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

Page 21: Análisis forense en linux - Compromised Linux Server

Directorio /sysNuevo en kernel 2.6Saca información de /proc no

referente a procesos/sys/module módulos cargados

en el kernel/sys/block información de

dispositivos

Page 22: Análisis forense en linux - Compromised Linux Server

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

Page 23: Análisis forense en linux - Compromised Linux Server

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

Page 24: Análisis forense en linux - Compromised Linux Server

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 ]

Page 25: Análisis forense en linux - Compromised Linux Server

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

Page 26: Análisis forense en linux - Compromised Linux Server

Puertas traseras clásicasScripts 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

Page 27: Análisis forense en linux - Compromised Linux Server

Puertas traseras clásicas - IILa configuración de init:

◦/etc/inittabArchivos 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

Page 28: Análisis forense en linux - Compromised Linux Server

Verificación de firmasrpm --verify <paquete> / rpm -Vadpkg: debsums

◦No instalado por defecto◦Compara MD5 de archivos◦debsums -ca (compara bin y config)◦debsums –ce (solo configuración)

Page 29: Análisis forense en linux - Compromised Linux Server

Recuperación de archivosAplicación kpartx ayuda a

montar una imagen en loopbackAplicaciones de la suite

“Sleuthkit”: ils, fls, icat, etc.Complicado en otros sistemas de

ficheros como ext3 o ext4Comando strings de la imagen

en búsqueda de cadenas típicas.

Page 30: Análisis forense en linux - Compromised Linux Server

Cadenas típicasexploitpacketstormsnifferpasswordnmapcrack[…]

Page 31: Análisis forense en linux - Compromised Linux Server

¿PREGUNTAS?

Page 32: Análisis forense en linux - Compromised Linux Server

Gracias

Alejandro Ramoswww.securitybydefault.com