hacktricks/network-services-pentesting/nfs-service-pentesting.md
2024-02-11 02:07:06 +00:00

144 lines
10 KiB
Markdown

# 2049 - Pentesting NFS-diens
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy adverteer in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks in PDF af**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks-repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud-repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>
## **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).&#x20;
```
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
```bash
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.
```bash
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:
```bash
showmount -e <IP>
```
Monteer dit dan met behulp van:
```bash
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:**
```bash
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](https://github.com/NetDirect/nfsshell) gebruik.
[Mooi NFSShell-tutoriaal.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
## 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](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
## 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}
```
<details>
<summary><strong>Leer AWS-hacking van nul tot held met</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Werk jy in 'n **cybersecurity-maatskappy**? Wil jy jou **maatskappy geadverteer sien in HackTricks**? Of wil jy toegang hê tot die **nuutste weergawe van die PEASS of laai HackTricks af in PDF-formaat**? Kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family)
* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Sluit aan by die** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** my op **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Deel jou hacking-truuks deur PR's in te dien by die [hacktricks repo](https://github.com/carlospolop/hacktricks) en [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
</details>