mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
142 lines
9.8 KiB
Markdown
142 lines
9.8 KiB
Markdown
# 2049 - NFS Hizmeti Pentesting
|
||
|
||
<details>
|
||
|
||
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşün</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>ile öğrenin!</strong></summary>
|
||
|
||
* Bir **cybersecurity şirketinde** çalışıyor musunuz? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonunu.
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
|
||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**.
|
||
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**'ya PR göndererek paylaşın.
|
||
|
||
</details>
|
||
|
||
## **Temel Bilgiler**
|
||
|
||
**NFS**, kullanıcıların ağ üzerinden dosyalara yerel bir dizin içindeymiş gibi sorunsuz erişim sağlamasını sağlayan bir **istemci/sunucu** sistemi olarak tasarlanmıştır.
|
||
|
||
Bu protokolün dikkate değer bir yönü, yerleşik bir **kimlik doğrulama** veya **yetkilendirme mekanizması** olmamasıdır. Bunun yerine, yetkilendirme, **dosya sistemi bilgilerine** dayanır ve sunucu, **istemci tarafından sağlanan kullanıcı bilgilerini** dosya sisteminin gerektirdiği **yetkilendirme formatına** doğru bir şekilde çevirmekle görevlidir, temel olarak **UNIX sözdizimini** takip eder.
|
||
|
||
Kimlik doğrulama genellikle **UNIX `UID`/`GID` tanımlayıcıları ve grup üyelikleri**ne dayanır. Ancak, istemciler ve sunucular arasındaki **`UID`/`GID` eşlemelerindeki** potansiyel uyumsuzluk nedeniyle bir zorluk ortaya çıkar ve sunucu tarafından ek doğrulama yapılamaz. Sonuç olarak, bu protokol, bu kimlik doğrulama yöntemine dayandığı için **güvenilen ağlar** içinde kullanmak için en uygun olanıdır.
|
||
|
||
**Varsayılan port**: 2049/TCP/UDP (sadece 4. sürüm için TCP veya UDP gereklidir). 
|
||
```
|
||
2049/tcp open nfs 2-3 (RPC #100003
|
||
```
|
||
### Sürümler
|
||
|
||
- **NFSv2**: Bu sürüm, çeşitli sistemlerle geniş uyumluluğuyla tanınır ve başlangıç işlemlerini çoğunlukla UDP üzerinden gerçekleştirerek önemini belirtir. Serinin en **eski** sürümü olan NFSv2, gelecekteki gelişmeler için temel oluşturdu.
|
||
|
||
- **NFSv3**: Bir dizi geliştirme ile tanıtılan NFSv3, önceki sürümünü destekleyen değişken dosya boyutlarını destekleyerek ve gelişmiş hata raporlama mekanizmaları sunarak önceki sürümünü genişletti. Gelişmelerine rağmen, NFSv2 istemcileriyle tam geriye dönük uyumlulukta sınırlamalarla karşılaştı.
|
||
|
||
- **NFSv4**: NFS serisinin dönüm noktası olan NFSv4, ağlar arasında dosya paylaşımını modernize etmek için tasarlanmış bir dizi özellik getirdi. Dikkate değer iyileştirmeler arasında **yüksek güvenlik** için Kerberos'un entegrasyonu, port eşlemcilerine ihtiyaç duymadan güvenlik duvarlarını aşabilme ve İnternet üzerinden çalışabilme yeteneği, Erişim Kontrol Listeleri (ACL'ler) için destek ve durum tabanlı işlemlerin tanıtılması bulunur. Performans iyileştirmeleri ve durum tabanlı bir protokolün benimsenmesi, NFSv4'ü ağ dosya paylaşım teknolojilerinde önemli bir ilerleme olarak ayırt eder.
|
||
|
||
Her NFS sürümü, ağ ortamlarının gelişen ihtiyaçlarını ele almak, güvenliği, uyumluluğu ve performansı aşamalı olarak artırmak amacıyla geliştirilmiştir.
|
||
|
||
## Numaralandırma
|
||
|
||
### Kullanışlı nmap komut dosyaları
|
||
```bash
|
||
nfs-ls #List NFS exports and check permissions
|
||
nfs-showmount #Like showmount -e
|
||
nfs-statfs #Disk statistics and info from NFS share
|
||
```
|
||
### Kullanışlı metasploit modülleri
|
||
|
||
Metasploit, birçok farklı ağ hizmetini hedef almak için kullanılan güçlü bir araçtır. Aşağıda, NFS hizmeti için kullanışlı olan bazı Metasploit modüllerini bulabilirsiniz:
|
||
|
||
- `auxiliary/scanner/nfs/nfsmount`: Bu modül, NFS sunucularını taramak ve paylaşımları listelemek için kullanılır.
|
||
- `auxiliary/scanner/nfs/nfsenum`: Bu modül, NFS sunucularında dosya ve dizinleri keşfetmek için kullanılır.
|
||
- `exploit/linux/nfs/nfsd`: Bu modül, NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
|
||
- `exploit/solaris/nfs/nfsd`: Bu modül, Solaris işletim sistemli NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
|
||
- `exploit/windows/nfs/nfsd`: Bu modül, Windows işletim sistemli NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
|
||
|
||
Bu modüller, NFS hizmetini hedef almak ve güvenlik açıklarını tespit etmek veya sömürmek için kullanılabilir. Metasploit'in sunduğu diğer modüllerle birlikte, kapsamlı bir NFS pentesting deneyimi sağlarlar.
|
||
```bash
|
||
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
|
||
```
|
||
### Bağlama
|
||
|
||
Hangi klasörün sunucunun bağlamaya uygun olduğunu bilmek için aşağıdaki komutu kullanabilirsiniz:
|
||
```bash
|
||
showmount -e <IP>
|
||
```
|
||
Ardından şunu kullanarak bağlayın:
|
||
```bash
|
||
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
|
||
```
|
||
**Örnek:**
|
||
```bash
|
||
mkdir /mnt/new_back
|
||
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
|
||
```
|
||
## İzinler
|
||
|
||
Eğer **UID** tarafından sadece bazı kullanıcıların erişebildiği **dosya veya klasörleri içeren bir klasörü** bağlarsanız. Bu **UID**'ye sahip bir **kullanıcıyı yerel olarak oluşturabilir** ve bu **kullanıcıyı kullanarak** dosya/klasöre erişebilirsiniz.
|
||
|
||
## NSFShell
|
||
|
||
Dosyalara erişmek için UID ve GID'yi kolayca listelemek, bağlamak ve değiştirmek için [nfsshell](https://github.com/NetDirect/nfsshell) kullanabilirsiniz.
|
||
|
||
[Güzel bir NFSShell öğretici.](https://www.pentestpartners.com/security-blog/using-nfsshell-to-compromise-older-environments/)
|
||
|
||
## Yapılandırma dosyaları
|
||
```
|
||
/etc/exports
|
||
/etc/lib/nfs/etab
|
||
```
|
||
### Tehlikeli Ayarlar
|
||
|
||
- **Okuma ve Yazma İzinleri (`rw`):** Bu ayar, dosya sisteminden hem okuma hem de yazma işlemlerine izin verir. Bu geniş erişimin sonuçlarını düşünmek önemlidir.
|
||
|
||
- **Güvensiz Portların Kullanımı (`insecure`):** Bu etkinleştirildiğinde, sistem 1024'den büyük portları kullanabilir. Bu aralıktaki portların güvenliği daha az sıkı olabilir ve riski artırabilir.
|
||
|
||
- **Gömülü Dosya Sistemlerinin Görünürlüğü (`nohide`):** Bu yapılandırma, başka bir dosya sistemi bir ihracat edilen dizinin altına bağlandığında bile dizinleri görünür hale getirir. Her dizin, uygun yönetim için kendi ihracat girişine ihtiyaç duyar.
|
||
|
||
- **Kök Dosyalarının Sahipliği (`no_root_squash`):** Bu ayarla, kök kullanıcısı tarafından oluşturulan dosyalar, en az ayrıcalık ilkesini göz ardı ederek orijinal UID/GID değerlerini korur ve aşırı izinler sağlayabilir.
|
||
|
||
- **Tüm Kullanıcıların Sıkıştırılmaması (`no_all_squash`):** Bu seçenek, kullanıcı kimliklerinin sistem genelinde korunmasını sağlar, ancak doğru şekilde yönetilmezse izin ve erişim kontrol sorunlarına yol açabilir.
|
||
|
||
## NFS hatalı yapılandırmalarını kullanarak Ayrıcalık Yükseltme
|
||
|
||
[NFS no\_root\_squash ve no\_all\_squash ayrıcalık yükseltme](../linux-hardening/privilege-escalation/nfs-no\_root\_squash-misconfiguration-pe.md)
|
||
|
||
## HackTricks Otomatik Komutları
|
||
```
|
||
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>AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
|
||
|
||
* Bir **cybersecurity şirketinde mi çalışıyorsunuz**? **Şirketinizi HackTricks'te reklamını görmek** ister misiniz? veya **PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek** ister misiniz? [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
|
||
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin.
|
||
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin.
|
||
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter**'da beni takip edin 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Hacking hilelerinizi [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)'ya PR göndererek paylaşın**.
|
||
|
||
</details>
|