RED TEAM
  • Presentación
  • Apuntes Linux
  • Apuntes Blue Team
  • Apuntes Python
  • Ricardev github
  • RECON
    • OSINT
    • DESCUBRIENDO LA RED
      • NMAP NSE
    • SNIFFING
      • TCPDUMP
  • TECHNIQUES
    • FUERZA BRUTA
      • HYDRA
      • MEDUSA
      • JOHN THE RIPPER
      • NCRACK
      • RAINBOW TABLES
      • CHEATSHEET
    • CLAVES RSA DÉBILES
  • WEB HACKING
    • FUZZING
      • GOBUSTER
      • WFUZZ
      • OTRAS HERRAMIENTAS DE RECONOCIMIENTO WEB
    • OWASP TOP 10
      • A1-2017. SQL INJECTION
        • LOGIN FORM BYPASS
        • EXTRACCIÓN DE INFORMACIÓN.
        • SQLI MODIFIED HEADERS
        • BOOLEAN BLIND SQLI
        • TIME-BASED BLIND SQLI
        • AUTOMATIC INJECTION
      • A2-2017. ATAQUES A SISTEMAS DE AUTENTICACIÓN
      • A3-2017 - EXPOSICIÓN DE DATOS SENSIBLES
      • A4-2017. XXE
      • A5-2017. CONTROL DE ACCESO VULNERABLE
      • A6-2017. SEGURIDAD MAL CONFIGURADA
      • A7-2017. XSS
      • A8-2017. DESERIALIZACIÓN INSEGURA
      • A9-2017. USO DE COMPONENTES CON VULNERABILIDADES CONOCIDAS
      • A10-2017. REGISTRO Y MONITOREO INSUFICIENTE
    • SERVICIOS WEB
      • APACHE TOMCAT (RCE)
      • PRTG NETWORK MONITOR (RCE)
  • SERVICES HACKING (BOTH)
    • 20,21 - FTP
      • FTP BOUNCE ATTACK - ESCANEO
      • FTP BOUNCE ATTACK- DESCARGA DE OTRA FTP
    • 23 - TELNET
    • 25, 465 587 - SMTP
    • 111, 2049 - RPCBIND Y NFS
    • 161,162,10161,10162/udp - SNMP
      • SNMP (RCE Linux)
    • 445 - SMB
      • ETERNALBLUE
    • 3306 - MYSQL
  • SERVICES HACKING (LINUX)
    • 3632 - DISTCCD
  • SERVICES HACKING (WINDOWS)
    • 135, 539 - MSRPC
    • 389, 636 - LDAP / LDAPS
    • 1443 - MSSQL
  • ACTIVE DIRECTORY HACKING
    • CREANDO UN LABORATORIO DE AD
      • 1. Instalación de Windows Server 2016
      • 2. ROL DE ACTIVE DIRECTORY
      • 3. MALAS PRÁCTICAS NECESARIAS
    • CONCEPTOS
      • SPN Y KERBEROS
    • ENUMERACIÓN
      • BLOODHOUND
    • ATAQUES
      • SMB RELAY
      • NTLM RELAY
      • KERBEROASTING
      • AS_REP ROASTING
  • PRIVESC
    • WINDOWS
    • LINUX
      • LXD/LXC GROUP
  • EXFILTRACIÓN
    • EXFILTRANDO INFORMACIÓN
  • SHELL AND POWERSHELL TRICKS
    • Transfiriendo datos (traducir)
    • MEJORANDO SHELL A TTY INTERACTIVA (Traducir)
  • PWN LINUX
    • CREANDO UN LABORATORIO SIN MITIGACIONES
    • TEORÍA
      • ESTRUCTURA DE UN BINARIO DE LINUX
        • HERRAMIENTAS
      • ENSAMBLADOR
      • CONVENCIÓN DE LLAMADAS
      • MITIGACIONES
      • SYSCALL Y SHELLCODE
      • FORMAT STRING
      • RETURN-ORIENTED PROGRAMMING
        • GADGETS
    • ESTRATEGIAS DE EXPLOIT
      • STACK EXPLOITS
        • ATAQUE “SMASH THE STACK” SENCILLO
        • ATAQUE RET2WIN
        • ATAQUE RET2SHELLCODE
        • ATAQUE FORMAT STRING RET2SHELLCODE 2 BYTES
        • ATAQUE FORMAT STRING RET2SHELLCODE 4 BYTES
        • CANARY BYPASS
        • ATAQUE RET2LIBC
    • PRÁCTICA
      • PHOENIX
        • SETUP
        • STACK-ZERO amd64
        • STACK-ONE amd64
        • STACK-TWO amd64
        • STACK-THREE amd64
        • STACK-FOUR amd64
        • STACK-FIVE amd64
        • STACK-SIX amd64
        • FORMAT-ZERO amd64
Con tecnología de GitBook
En esta página
  • ¿QUE ES NFS?
  • Información básica
  • Versiones
  • ¿QUE ES RPCBIND?
  • ENUMERACIÓN
  • Nmap scripts
  • Montar un recurso
  • PERMISOS
  • EXPLOTACIÓN
  • EXPLOTANDO AUTHORIZED_KEYS
  • Explotando configuraciones peligrosas
  • ESCALADA DE PRIVILEGIOS

¿Te fue útil?

  1. SERVICES HACKING (BOTH)

111, 2049 - RPCBIND Y NFS

Explotar los servicios RPCBIND y NFS en conjunto para obtener acceso a archivos compartidos.

¿QUE ES NFS?

Información básica

Network File System o NFS por sus siglas en inglés, es un protocolo para un sistema de archivos distribuido, el cual permite a un usuario en una computadora cliente el acceso hacia archivos a través de la red como si accediera a un almacenamiento local.

Es un servicio de cliente-servidor y, aunque tiene el mismo propósito que SMB no se habla con SMB.

El protocolo NFS no tiene ningún mecanismo de autenticación o autorización. La autorización se da con la información disponible en el sistema de archivos del servidor. Este se encarga de traducir la información de usuario provista por el cliente a la que el sistema de archivos entiende para comprobar si el usuario tiene autorización.

La autenticación más común es via UNIX UID / GID y miembros de grupos.

El problema es que muchas veces el servidor y el cliente no tienen mapeados de la misma manera los UID / GID. Esto significa que el grupo NFS_USERS no tiene por qué tener el mismo GID en el servidor que en el cliente. Esto puede dar lugar a que los miembros de un grupo diferente del cliente sean los que pueden acceder a los archivos compartidos.

Puerto por defecto: 2049

Versiones

Versión
Características

NFSv2

Es es más viejo pero es soportado por muchos sistemas.

Fue inicialmente operado por UDP.

NFSv3

Tiene más características, incluyendo:

Archivos de tamaño variable.

Mejor sistema de reporte de errores.

No es completamente compatible con NFSv2

NFSv4

Incluye Kerberos

Funciona con firewalls y en internet

No necesita mapeado de puertos

soporta ACLs

Acepta operaciones en base al estado

Mejora el rendimiento

Mejora la seguridad

Es la primera versión que tiene un protocolo desarrollado como tal.

¿QUE ES RPCBIND?

RPC o Remote Procedure Call es una técnica para construir sistema distribuidos, y aplicaciones cliente / servidor. Básicamente permite a un programa sobre una máquina llamar a una subrutina sobre otra máquina. RPC no es un protocolo de transporte; en lugar de ello, es un método para utilizar características existentes de una comunicación de una manera transparente. En servidores Unix o similares se debe ser conscientes de la aplicaciones que utilizan RPC.

Puerto por defecto: 111

ENUMERACIÓN

Nmap scripts

nfs-ls # Lista los discos y comprueba permisos.
nfs-showmount #Como el comando showmount.
nfs-statfs #Muestra estadísticas del disco compartido.

Montar un recurso

rpcinfo -p ip La opción “-p” evalúa al portmapper del host, e imprime una lista de todos los programas RPC registrados.

showmount -e ip Se utiliza el comando “showmount” para mostrar información de montaje sobre un servidor NFS. La opción “-e” muestra la lista de exportación del servidor NFS.

mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock

Si la “/” raíz del sistema de archivos del objetivo de evaluación está siendo exportado, entonces es factible montar localmente este sistema de archivos. Con el comando "mount" se utiliza la opción “-t” para indicar el tipo del sistema de archivos a montar. La opción “-o” define otras opciones, para este presente ejemplo el uso de la opción “nolock” permite a las aplicaciones bloquear archivos, pero tales bloqueos proporcionan exclusión únicamente contra otras aplicaciones ejecutándose en el mismo cliente.

PERMISOS

En el caso de que se haya montado un recurso en el que solo un usuario con un UID concreto tenga permisos, podemos generar en nuestro sistema un usuario con el mismo UID y así obtener permisos.

NFSv4 tiene un sistema de seguridad que impide ver desde otro host el UID del usuario propietario. En ocasiones se pueden utilizar varias versiones de NFS, para usar una anterior utilizamos -o vers=2. mount -t nfs -o vers=2 ip:ruta

EXPLOTACIÓN

EXPLOTANDO AUTHORIZED_KEYS

Una vez en esta carpeta compartida y si el host tiene el puerto 22 abierto (ssh) podemos generar un par de claves rsa (sabemos cuales acepta gracias al resultado de nmap) con ssh-keygen y después incluimos la clave publica en el archivo ./.ssh/authorized_keys

ssh-keygen

cat /tmp/id_rsa.pub >> FSremoto/root/.ssh/authorized_keys

ssh -i /tmp/id_rsa root@192.168.0.X ssh user@ip

Explotando configuraciones peligrosas

Archivos de configuración

/etc/exports
/etc/lib/nfs/etab

Configuraciones peligrosas

  • rw -> Permiso de Lectura y Escritura.

  • insecure -> Se utilizarán puertos por encima del 1024.

  • nohide -> Si otro sistema de archivos ha sido montado en un directorio exportado, este directorio será exportado con sus propias entradas.

  • no_root_squash -> Todos los archivos creados por root siguen teniendo UID/GID 0. Si está desactivado, al usuario root se le asigna un usuario nfsnobody para evitar abusar de SUIDs.

  • no_all_squash

ESCALADA DE PRIVILEGIOS

Anterior25, 465 587 - SMTPSiguiente161,162,10161,10162/udp - SNMP

Última actualización hace 2 años

¿Te fue útil?

NFS no_root_squash/no_all_squash misconfiguration PEHackTricks
Logo