Skip to main content
Enumerar y escalar privilegios en linux

Enumeración y escalado de privilegios en linux

Una lista de comandos útiles para conseguir escalar privilegios en sistemas linux

Volvemos de nuevo en Byte Mind, en este caso vamos a dejar una cheatsheet de comandos para enumerar un sistema linux.

La enumeración es un proceso en el cual se obtiene información acerca de un sistema con el fin de conseguir escalar privilegios en el mismo.

A continuación dejo una lista de algunos comandos muy útiles para lograr obtener permisos de root.

Kernel, Sistema operativo e Información del dispositivo

Comando Resultado
uname -a Imprime toda la información disponible del sistema
uname -r Release del kernel
uname -m Arquitectura del kernel de linux (32 o 64 bits)
uname -n Hostname del sistema
hostname Hostname del sistema
cat /proc/version Información del kernel
cat /etc/*-release Información de la distribución
cat /etc/issue Información de la distribución
cat /proc/cpuinfo Información de la CPU
df -a Información del sistema de ficheros
df -h Muestra los puntos de montaje del sistema
cat /etc/fstab Muestra información de la configuración de los puntos de montaje

Información de usuarios, grupos y permisos

Comando Resultado
cat /etc/passwd Lista todos los usuarios del sistema
cat /etc/group Lista todos los grupos del sistema
cat /etc/shadow Muestra los hashes de los usuarios (se requieres privilegios elevados)
for i in $(cat /etc/passwd 2>/dev/null);do id $i;done 2>/dev/null Enumera todos los uid y sus respectivos grupos
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' Lista todas las cuentas con privilegios elevados
finger Usuarios logueados actualmente
pinky Usuarios logueados actualmente
users Usuarios logueados actualmente
who -a Usuarios logueados actualmente
w Usuarios logueados actualmente y que estan haciendo
last Muestra los ultimos usuarios logueados
lastlog Muestra cuado se logueo un usuario por última vez
lastlog -u username Muestra cuando se logueo por última vez el usuario indicado
lastlog | grep -vi "never" Muestra el último acceso de los usuarios que han accedido alguna vez
whoami Usuario actual
id Información del usuario actual
cat /etc/sudoers Muestra información de los usuarios con permisos de root (requiere privilegios elevados)
sudo -l Muestra si el usuario actual puede realizar alguna acción como root
sudo -l 2>/dev/null | grep -w 'nmap | perl | 'awk' | 'find' | 'bash' | 'sh' | 'man' | 'more' | 'less' | 'vi' | 'vim' | 'nc' | 'netcat' | python | ruby | lua | irb' | xargs -r ls -la 2>/dev/null Se comprueba si el usuario tiene permisos de root para algunas herramientas interesantes

Información del entorno

Comando Resultado
env Muestra las variables de entorno
set Muestra las variables de entorno
echo $PATH Información del path
history Muestra el historial de comandos del usuario actual
pwd Muestra el directorio actual
cat /etc/profile Muestra las variables por defecto del sistema
cat /etc/shells Muestra las shells disponibles para el usuario actual

Jobs/Tasks

Comando Resultado
crontab -l Muestra los trabajos programados para el usuario actual
crontab -l -u username Muestra los trabajos programados para el uusario indicado
ls -la /etc/cron* Muestra todas las tareas de cron (hourly, daily …)
top Lista las tareas actuales
jobs Muestra los trabajos actuales

Redes, enrutado y comunicaciones

Comando Resultado
/sbin/ifconfig -a Lista todas las interfaces de red

cat /etc/network/interfaces

cat /etc/sysconfig/network

Lista todas las interfaces de red
cat /etc/resolv.conf Muestra la configuración de DNS del sistema
route Muestra informaicón de rutas
arp -a Muestra información de arp
netstat -ant Muestra todos los sockets TCP
netstat -anu Muestra todos los sockets UDP
cat /etc/services Muestra todos los mapeos de puertos/servicios
iptables -L Lista las reglas actuales (iptables en detalle pinchando aqui)

Información de servicios y aplicaciones

Comando Resultado

ps aux

ps -fea

Muestra los procesos corriendo actualmente

ps aux | grep root

ps -fea | grep root

Muestra los procesos corriendo actualmente como root

ps aux | awk '{print $11}' | xargs -r ls -la 2>/dev/null | awk '!x[$0]++'

Muestra rutas y permisos de los procesos corriendo actualmente

ls -alh /usr/sbin/

ls -alh /usr/bin/

ls -alh /sbin/

ls -alh /bin/

ls -alh /usr/local/bin

Muestra lista de comandos disponibles

dpkg -l

Muestra los paquetes instalados en distribuciones basadas en Debian

rpm -qa

Muestra los paquetes instlados en distribuciones basadas en RedHat

cat /etc/syslog.conf

cat /etc/chttp.conf

cat /etc/lighttpd.conf

cat /etc/cups/cupsd.conf

cat /etc/inetd.conf

cat /etc/apache2/apache2.conf

cat /etc/nginx/nginx.conf

cat /etc/my.conf

cat /etc/httpd/conf/httpd.conf

cat /opt/lampp/etc/httpd.conf

Búsqueda de malas configuraciones o por defecto de diferentes servicios

apache2ctl -M apachectl -M nginx -V

Muestra los módulos instalados de apache/nginx

Ficheros interesantes

Comando Resultado
find / -perm 4000 -type f 2>/dev/null Encontrar ficheros SUID
find / -perm 4000 -uid 0 -type f 2>/dev/null Encontrar ficheros SUID con root como propietario
find / -perm 2000 -type f 2>/dev/null Encontrar ficheros GUID
find / -perm -2 -type d 2>/dev/null Encontrar directorios con permisos de escritura
find / -perm -2 -type f 2>/dev/null Encontrar ficheros con permisos de escritura
find / ! -path "/proc/" -perm -2 -type d 2>/dev/null Encontrar ficheros con permisos de escritura excluyendo la ruta /proc/
cat ~/.bash_history Muestra el historial del usuario actual
cat /home/username/.bash_history Muestra el historial del usuario indicado
ls -la /home/username/.*_history Muestra todos los ficheros de histórico del usuario indicado
ls -la /home/username/.ssh Muestra el contenido del directorio .ssh del usuario indicado
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls -la Muestra información de claves/hosts ssh
lsof -i -n Muestra los ficheros abiertos actualmente (mostrará dependiendo de los permisos del usuario actual)

Indicar que este contenido se realiza simplemente con fines educativos, no nos hacemos responsables de cualquier acción ilegal debido a los conocimientos descritos en el mismo.

Es todo por el momento, espero que esta lista les sea de utilidad en sus auditorias, prácticas, etc…En próximos post profundizaremos más en alguno de los temas en concreto.

Gracias por leernos y cualquier duda o aporte al mismo es bienvenido.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *