Apuntes Ciberseguridad (Cibaism)
HTBGitHubLinkedInNotion (Writeups)
  • Welcome to My Digital Garden
  • About me
  • Hacking notes (Personal)
    • Tratamiento TTY
    • Hacking Web Tecniques
      • File Inclusion
    • Linux Privilage Escalation
    • Arreglar bloodhound
  • Hacking Notes (Learning Path)
    • (HTB) Penetration Tester
      • Getting Started
        • Common Terms
          • Tipos de Shell
          • Puertos importantes
          • OWASP Top 10
        • Service Scanning
          • Nmap
          • Attacking Network Services
            • Captura de banners
            • FTP
            • SMB
            • SNMP
        • Web Enumeration
        • Public exploits
          • Encontrar exploits públicos
          • Introducción a Metasploit
        • Types of Shells
          • Reverse Shell
          • Bind Shell
          • Web Shell
        • Privilage escalation
        • Transferring Files
      • Footprinting
        • Infrastructura Based Enumeration
          • Domain Information
          • Cloud Resources
          • Staff
        • Host Based Enumeration
          • FTP
          • SMB
          • NFS
          • DNS
          • SMTP
          • IMAP / POP3
          • SNMP
          • MySQL
          • MSSQL
          • Oracle TNS
          • IPMI
          • Protocolos de administración remota de Linux
          • Protocolos de administración remota de Windows
      • Introduction to Active Directory Enumeration & Attacks
        • Tools of the Trade
        • Initial enumeration
          • External Recon and Enumeration Principles
          • Initial Enumeration of the Domain
        • Sniffing out a Foothold
          • LLMNR/NBT-NS Poisoning - from Linux
          • LLMNR/NBT-NS Poisoning - from Windows
        • Sighting In, Hunting For A User
          • Password Spraying Overview
          • Enumerating & Retrieving Password Policies
          • Password Spraying - Making a Target User List
        • Spray Responsibly
          • Internal Password Spraying - from Linux
      • File Inclusion
        • File Disclousure
          • Local File Inclusion (LFI)
          • Basic Bypasses
          • PHP Filters
        • Remote Code Execution
          • PHP Wrappers
    • (CRTA) Red Team Analyst
      • (CRTA) Red Team Analyst - Lab
    • (eJPT) Junior Penetration Tester
      • Assessment Methodologies
        • Assessment Methodologies: Footprinting & Scanning
          • Windows Recon: Nmap Host Discovery
          • Scan the Server 1
          • Windows Recon: SMB Nmap Scripts
        • Assessment Methodologies: Enumeration
          • Importing Nmap Scan Results Into MSF
          • T1046 : Network Service Scanning
          • FTP Enumeration
          • Samba Recon: Basics
          • Apache Enumeration
          • MySQL Enumeration
          • SSH Login
          • Postfix Recon: Basics
        • Assessment Methodologies: Vulnerability Assessment
          • Windows: IIS Server DAVTest
          • Shellshock
          • Web App Vulnerability Scanning With WMAP
      • Host & Network Penetration Testing
        • Host & Network Penetration Testing: System/Host Based Attacks
          • Windows
            • Windows: IIS Server: WebDav Metasploit
            • Windows: SMB Server PSexec
            • Windows: Insecure RDP Service
            • WinRM: Exploitation with Metasploit
            • UAC Bypass: UACMe
            • Privilege Escalation: Impersonate
            • Unattended Installation
            • Windows: Meterpreter: Kiwi Extension
          • Linux
            • ProFTP Recon: Basics
            • Samba Recon: Dictionary Attack
            • Cron Jobs Gone Wild II
            • Exploiting Setuid Programs
            • Password Cracker: Linux
        • Host & Network Penetration Testing: Network-Based Attacks
          • NetBIOS Hacking
          • SNMP Analysis
          • DNS & SMB Relay Attack
        • Host & Network Penetration Testing: The Metasploit Framework (MSF)
          • Windows: Java Web Server
          • Windows: HTTP File Server
          • Vulnerable FTP Server
          • Vulnerable File Sharing Service
          • Vulnerable SSH server
          • Vulnerable SMTP Server
          • Meterpreter Basics
          • Upgrading Command Shells To Meterpreter Shells
          • Windows Post Exploitation Modules
          • UAC Bypass: Memory Injection (Metasploit)
          • Exploiting SMB With PsExec
          • Windows: Enabling Remote Desktop
          • Clearing Windows Event Logs
          • Pivoting
  • Blue team notes
    • Digital Forensics
      • Malware Analysis with VirusTotal
      • Wireshark
    • (Falcon) CrowdStrike
      • FALCON 104: Getting Started with the Endpoint Security Module
      • FALCON 106: Customizing Dashboards in Falcon
      • FALCON 180: Falcon Forensics Fundamentals
  • Programming
    • Powershell
Powered by GitBook
On this page
  • Configuración predeterminada
  • Archivo de exportaciones
  • Configuraciones peligrosas
  • Footprinting del servicio
  • Nmap
  • Mostrar opciones NFS disponibles
  • Montaje de un recurso compartido NFS
  • Lista de contenidos con nombres de usuario y nombres de grupos
  • Lista de contenidos con UID y GUID
  • Desmontaje
  1. Hacking Notes (Learning Path)
  2. (HTB) Penetration Tester
  3. Footprinting
  4. Host Based Enumeration

NFS

PreviousSMBNextDNS

Last updated 2 months ago

Network File System( NFS) es un sistema de archivos de red desarrollado por Sun Microsystems y tiene la misma finalidad que SMB. Su propósito es acceder a los sistemas de archivos a través de una red como si fueran locales. Sin embargo, utiliza un protocolo completamente diferente. se utiliza entre sistemas Linux y Unix. Esto significa que los clientes NFS no pueden comunicarse directamente con los servidores SMB. NFS es un estándar de Internet que rige los procedimientos en un sistema de archivos distribuido. Si bien la versión 3.0 del protocolo NFS ( NFSv3), que se ha utilizado durante muchos años, autentica el equipo cliente, esto cambia con NFSv4. En este caso, al igual que con el protocolo SMB de Windows, el usuario debe autenticarse.

NFS se basa en el protocolo ( ONC-RPC/ SUN-RPC) de Open Network Computing, disponible en los puertos TCPy , que utiliza ( ) para el intercambio de datos independiente del sistema. El protocolo NFS cuenta con un mecanismo para o . En su lugar, la autenticación se traslada completamente a las opciones del protocolo RPC. La autorización se deriva de la información disponible del sistema de archivos. En este proceso, el servidor se encarga de traducir la información de usuario del cliente al formato del sistema de archivos y de convertir los datos de autorización correspondientes a la sintaxis UNIX requerida con la mayor precisión posible.UDP111XDRnoauthenticationauthorization

La autenticación más común se realiza mediante UNIX UID/ GIDy group memberships, por lo que es más probable que esta sintaxis se aplique al protocolo NFS. Un problema radica en que el cliente y el servidor no necesariamente tienen que tener las mismas asignaciones de UID/GID a usuarios y grupos, y el servidor no necesita realizar ninguna otra comprobación. El servidor no puede realizar ninguna otra comprobación. Por ello, NFS solo debe utilizarse con este método de autenticación en redes de confianza.

Configuración predeterminada

NFS no es difícil de configurar, ya que no ofrece tantas opciones como FTP o SMB. El /etc/exportsarchivo contiene una tabla de sistemas de archivos físicos en un servidor NFS accesible para los clientes. La muestra las opciones que acepta y, por lo tanto, las que están disponibles.

Archivo de exportaciones

cat /etc/exports

El archivo predeterminado exportstambién contiene algunos ejemplos de configuración de recursos compartidos NFS. Primero, se especifica la carpeta y se pone a disposición de otros usuarios, y luego se establecen los derechos que tendrán sobre este recurso compartido NFS y se conectan a un host o subred. Finalmente, se pueden agregar opciones adicionales a los hosts o subredes.

Configuraciones peligrosas

Sin embargo, incluso con NFS, algunas configuraciones pueden ser peligrosas para la empresa y su infraestructura. A continuación, se enumeran algunas:

Opción

Descripción

rw

Permisos de lectura y escritura.

insecure

Se utilizarán puertos superiores a 1024.

nohide

Si se montó otro sistema de archivos debajo de un directorio exportado, este directorio se exporta mediante su propia entrada de exportaciones.

no_root_squash

Todos los archivos creados por root se conservan con el UID/GID 0.

Se recomienda encarecidamente crear una máquina virtual local y experimentar con la configuración. Descubriremos métodos que nos mostrarán cómo está configurado el servidor NFS. Para ello, podemos crear varias carpetas y asignar diferentes opciones a cada una. Después, podemos inspeccionarlas y ver qué configuración puede afectar al recurso compartido NFS, sus permisos y el proceso de enumeración.

Podemos revisar esta insecureopción. Esto es peligroso porque los usuarios pueden usar puertos superiores a 1024. Los primeros 1024 puertos solo pueden ser utilizados por el usuario root. Esto impide que ningún usuario pueda usar sockets superiores al puerto 1024 para el servicio NFS e interactuar con él.

Footprinting del servicio

Al realizar la enumeración de NFS, los puertos TCP 111y 2049son esenciales. También podemos obtener información sobre el servicio NFS y el host mediante RPC, como se muestra en el ejemplo a continuación.

Nmap

sudo nmap <host> -p111,2049 -sV -sC

El rpcinfoscript NSE recupera una lista de todos los servicios RPC actualmente en ejecución, sus nombres, descripciones y los puertos que utilizan. Esto nos permite comprobar si el recurso compartido de destino está conectado a la red en todos los puertos requeridos. Además, para NFS, Nmap cuenta con scripts NSE que pueden usarse para los análisis. Estos nos muestran, por ejemplo, el contentsdel recurso compartido y su stats...

sudo nmap --script nfs* <host> -sV -p111,2049

Una vez que hayamos detectado dicho servicio NFS, podemos montarlo en nuestra máquina local. Para ello, podemos crear una nueva carpeta vacía donde se montará el recurso compartido NFS. Una vez montado, podemos navegar por ella y ver su contenido como en nuestro sistema local.

Mostrar opciones NFS disponibles

showmount -e <host>

Montaje de un recurso compartido NFS

mkdir target-NFS
 sudo mount -t nfs <host>:/ ./target-NFS/ -o nolock
cd target-NFS
tree .

Allí podremos acceder a los permisos, nombres de usuario y grupos a los que pertenecen los archivos mostrados y visibles. Una vez que tengamos los nombres de usuario, nombres de grupo, UID y GUID, podremos crearlos en nuestro sistema y adaptarlos al recurso compartido NFS para ver y modificar los archivos.

Lista de contenidos con nombres de usuario y nombres de grupos

ls -l mnt/nfs/

Lista de contenidos con UID y GUID

ls -n mnt/nfs/

Es importante tener en cuenta que si la root_squashopción está activada, no podremos editar archivos ni siquiera como root.

También podemos usar NFS para una mayor escalabilidad. Por ejemplo, si accedemos al sistema por SSH y queremos leer archivos de otra carpeta que un usuario específico puede leer, necesitaremos cargar un shell en el recurso compartido NFS que tenga el SUIDusuario de ese usuario y luego ejecutarlo mediante el usuario SSH.

Una vez que hayamos realizado todos los pasos necesarios y obtenido la información que necesitamos, podemos desmontar el recurso compartido NFS.

Desmontaje

cd ..
sudo umount ./target-NFS

NFS
de Llamada a Procedimiento Remoto
la Representación de Datos Externos
tabla de exportaciones de NFS