análisis forense en linux - compromised linux server

Post on 27-Jun-2015

1.991 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Compromised Linux Server

Alejandro Ramos Computer Hacking Forensic Investigator

SecurityByDefault.com

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

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.

ADQUISICIÓN

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

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

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

Local en frio - Guymager

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

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

ANÁLISIS

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

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)

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

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

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

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

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

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

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

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

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 ]

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

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

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

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)

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.

Cadenas típicasexploitpacketstormsnifferpasswordnmapcrack[…]

¿PREGUNTAS?

Gracias

Alejandro Ramoswww.securitybydefault.com

top related