mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
150 lines
10 KiB
Markdown
150 lines
10 KiB
Markdown
# 2049 - Pentestiranje NFS servisa
|
|
|
|
<details>
|
|
|
|
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite **vašu kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|
|
|
|
## **Osnovne informacije**
|
|
|
|
**NFS** je sistem dizajniran za **klijent/server** koji omogućava korisnicima da na mreži pristupaju datotekama kao da se one nalaze u lokalnom direktorijumu.
|
|
|
|
Značajan aspekt ovog protokola je nedostatak ugrađenih **mekanizama za autentifikaciju** ili **autorizaciju**. Umesto toga, autorizacija se oslanja na **informacije o fajl sistemu**, pri čemu je server zadužen za tačno prevođenje **informacija o korisniku koje pruža klijent** u potrebni **format autorizacije** fajl sistema, uglavnom prateći **UNIX sintaksu**.
|
|
|
|
Autentifikacija se obično oslanja na **UNIX `UID`/`GID` identifikatore i članstvo u grupama**. Međutim, izazov se javlja zbog potencijalne neusklađenosti u **mapiranjima `UID`/`GID`** između klijenata i servera, ne ostavljajući prostora za dodatnu verifikaciju od strane servera. Stoga je protokol najbolje prilagođen za upotrebu unutar **poverenih mreža**, s obzirom na njegovu oslanjanje na ovaj metod autentifikacije.
|
|
|
|
**Podrazumevani port**: 2049/TCP/UDP (osim verzije 4, koja zahteva samo TCP ili UDP). 
|
|
```
|
|
2049/tcp open nfs 2-3 (RPC #100003
|
|
```
|
|
### Verzije
|
|
|
|
- **NFSv2**: Ova verzija je poznata po svojoj širokoj kompatibilnosti sa različitim sistemima, a njen značaj se ogleda u tome što su početne operacije uglavnom izvršavane preko UDP-a. Kao **najstarija** u seriji, postavila je temelje za budući razvoj.
|
|
|
|
- **NFSv3**: Uvedena sa nizom poboljšanja, NFSv3 je proširio svoje prethodnika podržavajući promenljive veličine fajlova i nudeći unapređeni mehanizam za prijavu grešaka. Uprkos svojim napredovanjima, suočavao se sa ograničenjima u potpunoj kompatibilnosti sa NFSv2 klijentima.
|
|
|
|
- **NFSv4**: Pionirska verzija u seriji NFS, NFSv4 je donela niz funkcionalnosti dizajniranih za modernizaciju deljenja fajlova preko mreže. Značajna poboljšanja uključuju integraciju Kerberosa za **visoku bezbednost**, mogućnost prolaska kroz firewall-ove i rad preko interneta bez potrebe za portmaperima, podršku za Access Control List (ACL) i uvođenje operacija zasnovanih na stanju. Njegova poboljšanja performansi i usvajanje protokola sa stanjem izdvajaju NFSv4 kao ključni napredak u tehnologijama deljenja fajlova preko mreže.
|
|
|
|
Svaka verzija NFS-a je razvijena sa namerom da se adresiraju evoluirajuće potrebe mrežnih okruženja, postepeno unapređujući bezbednost, kompatibilnost i performanse.
|
|
|
|
## Enumeracija
|
|
|
|
### Korisni nmap skriptovi
|
|
```bash
|
|
nfs-ls #List NFS exports and check permissions
|
|
nfs-showmount #Like showmount -e
|
|
nfs-statfs #Disk statistics and info from NFS share
|
|
```
|
|
### Korisni metasploit moduli
|
|
|
|
Metasploit je moćan alat za testiranje penetracije koji pruža širok spektar modula za iskorišćavanje ranjivosti. Ovi moduli omogućavaju hakerima da automatizuju proces pronalaženja i iskorišćavanja ranjivosti u ciljnom sistemu. Evo nekoliko korisnih metasploit modula koji se mogu koristiti u testiranju penetracije:
|
|
|
|
- `exploit/multi/handler`: Ovaj modul omogućava hakerima da postave "ručni" iskorišćavač koji će osluškivati dolazne veze i preuzeti kontrolu nad ranjivim sistemom.
|
|
|
|
- `exploit/windows/smb/ms17_010_eternalblue`: Ovaj modul iskorišćava ranjivost EternalBlue u Windows SMB protokolu kako bi omogućio hakerima da izvrše udaljeni kod na ciljnom Windows sistemu.
|
|
|
|
- `exploit/linux/ftp/vsftpd_234_backdoor`: Ovaj modul iskorišćava ranjivost u vsftpd FTP serveru verzije 2.3.4 koja omogućava hakerima da dobiju udaljeni pristup sistemu.
|
|
|
|
- `exploit/multi/http/php_cgi_arg_injection`: Ovaj modul iskorišćava ranjivost u PHP CGI skriptama koja omogućava hakerima da izvrše proizvoljan kod na ciljnom sistemu.
|
|
|
|
- `exploit/multi/misc/java_rmi_server`: Ovaj modul iskorišćava ranjivost u Java RMI serverima koja omogućava hakerima da izvrše proizvoljan kod na ciljnom sistemu.
|
|
|
|
- `exploit/multi/browser/java_signed_applet`: Ovaj modul iskorišćava ranjivost u Java potpisanim appletima koja omogućava hakerima da izvrše proizvoljan kod na ciljnom sistemu.
|
|
|
|
Ovi moduli su samo neki od mnogih dostupnih u Metasploit okruženju. Hakeri mogu koristiti ove module kao deo svoje strategije testiranja penetracije kako bi identifikovali i iskoristili ranjivosti u ciljnom sistemu.
|
|
```bash
|
|
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
|
|
```
|
|
### Montiranje
|
|
|
|
Da biste saznali **koji folder** na serveru je **dostupan** za montiranje, možete ga pitati koristeći:
|
|
```bash
|
|
showmount -e <IP>
|
|
```
|
|
Zatim ga montirajte koristeći:
|
|
```bash
|
|
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
|
|
```
|
|
Treba da specificirate da **koristite verziju 2** jer ona nema **nikakvu** **autentifikaciju** ili **autorizaciju**.
|
|
|
|
**Primer:**
|
|
```bash
|
|
mkdir /mnt/new_back
|
|
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
|
|
```
|
|
## Dozvole
|
|
|
|
Ako montirate fasciklu koja sadrži **datoteke ili fascikle kojima je pristup dozvoljen samo određenom korisniku** (preko **UID**-a), možete **lokalno kreirati** korisnika sa tim **UID**-om i koristiti tog korisnika da biste **pristupili** datoteci/fascikli.
|
|
|
|
## NSFShell
|
|
|
|
Da biste lako izlistali, montirali i promenili UID i GID kako biste imali pristup datotekama, možete koristiti [nfsshell](https://github.com/NetDirect/nfsshell).
|
|
|
|
[Lepe uputstva za korišćenje NFSShell-a.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
|
|
|
|
## Konfiguracione datoteke
|
|
```
|
|
/etc/exports
|
|
/etc/lib/nfs/etab
|
|
```
|
|
### Opasne postavke
|
|
|
|
- **Dozvole za čitanje i pisanje (`rw`):** Ova postavka omogućava i čitanje i pisanje u fajl sistem. Važno je razmotriti posledice davanja tako široke pristupne dozvole.
|
|
|
|
- **Korišćenje nesigurnih portova (`insecure`):** Kada je omogućeno, ovo omogućava sistemu da koristi portove iznad 1024. Sigurnost portova iznad ove opsega može biti manje stroga, povećavajući rizik.
|
|
|
|
- **Vidljivost ugnježdenih fajl sistema (`nohide`):** Ova konfiguracija čini direktorijume vidljivim čak i ako je drugi fajl sistem montiran ispod izvezenog direktorijuma. Svaki direktorijum zahteva svoj sopstveni unos za izvoz radi pravilnog upravljanja.
|
|
|
|
- **Vlasništvo fajlova od strane korisnika root (`no_root_squash`):** Sa ovom postavkom, fajlovi kreirani od strane korisnika root zadržavaju svoj originalni UID/GID od 0, ignorirajući princip najmanjih privilegija i potencijalno dodeljujući prekomerne dozvole.
|
|
|
|
- **Nesquashing svih korisnika (`no_all_squash`):** Ova opcija obezbeđuje da se identiteti korisnika očuvaju u celom sistemu, što može dovesti do problema sa dozvolama i kontrolom pristupa ako se ne rukuje ispravno.
|
|
|
|
## Eskalacija privilegija korišćenjem loše konfigurisanih NFS-a
|
|
|
|
[NFS no\_root\_squash i no\_all\_squash eskalacija privilegija](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
|
|
|
|
## HackTricks Automatske Komande
|
|
```
|
|
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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
|
|
|
* Da li radite u **cybersecurity kompaniji**? Želite li da vidite svoju **kompaniju reklamiranu na HackTricks-u**? Ili želite da imate pristup **najnovijoj verziji PEASS-a ili preuzmete HackTricks u PDF formatu**? Proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
|
|
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
|
* **Pridružite se** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili me **pratite** na **Twitter-u** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na [hacktricks repo](https://github.com/carlospolop/hacktricks) i [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|