2049 - Pentesting NFS Service

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Basiese Inligting

NFS is 'n stelsel wat ontwerp is vir kliënt/bediener wat gebruikers in staat stel om naadloos toegang tot lêers oor 'n netwerk te verkry asof hierdie lêers binne 'n plaaslike gids geleë is.

'n Noemenswaardige aspek van hierdie protokol is die gebrek aan ingeboude outentiserings- of magtigingsmeganismes. In plaas daarvan steun magtiging op lêersisteeminligting, waar die bediener die taak het om kliëntverskafte gebruikersinligting akkuraat te vertaal na die lêersisteem se vereiste magtigingsformaat, hoofsaaklik volgens UNIX-sintaksis.

Outentisering steun gewoonlik op UNIX UID/GID-identifiseerders en groepslidmaatskap. 'n Uitdaging ontstaan egter as gevolg van die potensiële wanpassing in UID/GID-afbeeldings tussen kliënte en bedieners, wat geen spasie laat vir addisionele verifikasie deur die bediener nie. Gevolglik is die protokol die mees geskik vir gebruik binne vertroude netwerke, gegewe sy afhanklikheid van hierdie metode van outentisering.

Verstekpoort: 2049/TCP/UDP (behalwe weergawe 4, dit benodig net TCP of UDP).

2049/tcp open  nfs     2-3 (RPC #100003

Weergawes

  • NFSv2: Hierdie weergawe word erken vir sy breë verenigbaarheid met verskillende stelsels en het sy betekenis gemerk met aanvanklike operasies oor UDP. As die oudste in die reeks, het dit die grondslag gelê vir toekomstige ontwikkelings.

  • NFSv3: Ingelei met 'n verskeidenheid verbeterings, het NFSv3 uitgebrei op sy voorganger deur ondersteuning te bied vir veranderlike lêergroottes en verbeterde foutverslagdoening. Ten spyte van sy vorderings, het dit beperkings in volledige agterwaartse verenigbaarheid met NFSv2-kliënte ondervind.

  • NFSv4: 'n Baanbrekerweergawe in die NFS-reeks, het NFSv4 'n reeks funksies gebring wat ontwerp is om lêerdeling oor netwerke te moderniseer. Merkwaardige verbeterings sluit in die integrasie van Kerberos vir hoë sekuriteit, die vermoë om vuurmuure te deurkruis en oor die internet te werk sonder die nodigheid van poorttoewysers, ondersteuning vir Toegangsbeheerlyste (ACL's) en die bekendstelling van staat-gebaseerde operasies. Sy prestasieverbeterings en die aanvaarding van 'n staatvolle protokol onderskei NFSv4 as 'n deurslaggewende vooruitgang in netwerk-lêerdelingstegnologieë.

Elke weergawe van NFS is ontwikkel met die doel om die ontwikkelende behoeftes van netwerkomgewings aan te spreek, en om sekuriteit, verenigbaarheid en prestasie geleidelik te verbeter.

Opname

Nuttige nmap-skripte

nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share

Nuttige metasploit-modules

Metasploit is 'n kragtige raamwerk vir penetrasietoetse wat 'n verskeidenheid modules bied om verskillende aanvalstegnieke uit te voer. Hier is 'n paar nuttige metasploit-modules wat jy kan gebruik vir jou penetrasietoetse:

  • exploit/multi/handler: Hierdie module stel jou in staat om 'n luisterende posisie te skep om inkomende verbindings te hanteer. Dit kan gebruik word om 'n sessie te skep wanneer 'n aanval suksesvol is.

  • exploit/multi/http/nfs_rpcbind_bof: Hierdie module maak gebruik van 'n buffer-oorloopkwesbaarheid in die NFS RPCBIND-diens om 'n aanval uit te voer. Dit kan gebruik word om 'n afgeleë kode-uitvoering te verkry op 'n kwesbare masjien.

  • auxiliary/scanner/nfs/nfsmount: Hierdie module skandeer 'n doelwitstelsel om te bepaal of die NFS-diens beskikbaar is en of dit toeganklik is vir monteerbare deelname. Dit kan help om potensiële aanvalsveilighede te identifiseer.

  • post/multi/gather/nfs_enum: Hierdie module word gebruik om inligting oor die NFS-diens op 'n doelwitstelsel te versamel. Dit kan nuttige inligting soos gedeelde lêers, gebruikers en groepe oplewer.

  • post/multi/manage/nfs_mount: Hierdie module maak dit moontlik om 'n NFS-gedeelde lêerstelsel op 'n doelwitstelsel te monteer. Dit kan handig wees vir die verkryging van toegang tot lêers en data op die doelwitstelsel.

Dit is net 'n paar voorbeelde van die vele metasploit-modules wat beskikbaar is. Dit is belangrik om die dokumentasie te raadpleeg en die modules te verken om die beste modules vir jou spesifieke penetrasietoets te vind.

scanner/nfs/nfsmount #Scan NFS mounts and list permissions

Monteer

Om te weet watter vouer die bediener beskikbaar het om te monteer, kan jy dit vra deur die volgende te gebruik:

showmount -e <IP>

Monteer dit dan met behulp van:

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

Jy moet spesifiseer om weergawe 2 te gebruik omdat dit geen verifikasie of magtiging het nie.

Voorbeeld:

mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock

Toestemmings

As jy 'n vouer monteer wat lêers of vouers bevat wat slegs deur 'n sekere gebruiker toeganklik is (deur UID). Jy kan plaaslik 'n gebruiker met daardie UID skep en deur daardie gebruiker te gebruik, sal jy in staat wees om toegang tot die lêer/vouer te verkry.

NSFShell

Om maklik 'n lys te maak, te monteer en UID en GID te verander om toegang tot lêers te verkry, kan jy nfsshell gebruik.

Mooi NFSShell-tutoriaal.

Konfigurasie-lêers

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

Gevaarlike instellings

  • Lees- en Skryfregte (rw): Hierdie instelling maak dit moontlik om vanaf en na die lêersisteem te lees en skryf. Dit is noodsaaklik om die implikasies van so 'n breë toegang te oorweeg.

  • Gebruik van Onveilige Poorte (insecure): Wanneer dit geaktiveer is, maak dit die stelsel moontlik om poorte bo 1024 te gebruik. Die veiligheid van poorte bo hierdie reeks kan minder streng wees, wat die risiko verhoog.

  • Sigbaarheid van Geneste Lêersisteme (nohide): Hierdie konfigurasie maak dit moontlik dat gidslyne sigbaar is selfs as 'n ander lêersisteem onder 'n uitgevoerde gidslyn gemonteer is. Elke gidslyn vereis sy eie uitvoerinskrywing vir behoorlike bestuur.

  • Eienaar van Rooi Lêersisteemlêers (no_root_squash): Met hierdie instelling behou lêers wat deur die rooi gebruiker geskep is, hul oorspronklike UID/GID van 0, sonder om die beginsel van minste bevoegdheid in ag te neem en moontlik oormatige regte toe te ken.

  • Geen Beperking van Alle Gebruikers (no_all_squash): Hierdie opsie verseker dat gebruikersidentiteite regoor die stelsel behou word, wat kan lei tot probleme met toestemming en toegangsbeheer as dit nie korrek hanteer word nie.

Bevoorregte Eskalasie deur gebruik te maak van NFS-misconfiguraties

NFS no_root_squash en no_all_squash bevoorregte eskalasie

HackTricks Outomatiese Opdragte

Protocol_Name: NFS    #Protocol Abbreviation if there is one.
Port_Number:  2049     #Comma separated if there is more than one.
Protocol_Description: Network File System         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for NFS
Note: |
NFS is a system designed for client/server that enables users to seamlessly access files over a network as though these files were located within a local directory.

#apt install nfs-common
showmount 10.10.10.180      ~or~showmount -e 10.10.10.180
should show you available shares (example /home)

mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in

https://book.hacktricks.xyz/pentesting/nfs-service-pentesting

Entry_2:
Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Last updated