XUT_ / COURSES / PENETRATION TESTER

Privilege Escalation - NFS

Los vectores de escalada de privilegios no están confinados a accesos internos. Las carpetas compartidas y las interfaces de manejo remoto como SSH o Telnet, también pueden ayudarnos a ganar acceso root en el sistema objetivo. Algunos casos también requerirán usar ambos vectores.

Otro vector relevante para los CTFs y exámenes es una network shell desconfigurada. Este vector puede, a veces, ser visto durante testeos de penetración cuando hay un sistema de backups de red.

La configuración NFS (Network File Sharing) se guarda en /etc/exports. Este archivo es creado durante la instalación del servidor NFS y suele ser leíble para los usuarios.

Privilege Escalation - NFS

El elemento crítico de este vector de escalada de privilegios es la opción "no_root_squash" que puedes ver arriba. Por defecto, NFS cambiará el usuario root a nfsnobody y limitará cualquier archivo de correr con privilegios root. Si la opción "no_root_squash" está presente en una compartición escribible, podemos crear un ejecutable con el bit SUID configurado y ejecutarlo en el sistema objetivo.

Empezaremos enumerando comparticiones montables desde nuestra máquina atacante:

Privilege Escalation - NFS

Montaremos una de las comparticiones "no_root_squash" en nuestra máquina atacante y empezaremos a construir nuestro ejecutable.

Privilege Escalation - NFS

Como podemos configurar los bits SUID, un simple ejecutable que corra /bin/bash en el sistema objetivo funcionará.

Privilege Escalation - NFS

Una vez compilado el código, configuraremos el bit SUID.

Privilege Escalation - NFS

Vemos abajo que ambos archivos (nfs.c y nfs están presentes en el sistema objetivo. Hemos trabajado en una compartición montada así que no hay necesidad de transferirlos).

Privilege Escalation - NFS

CAUTION

Si no ves el archivo nfs.c creado puede que tengas que hacer cd .. y luego volver a entrar, puede ser una desincronización.