share etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
share etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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

16 Ağustos 2013 Cuma

Etki Alanı Saldırılarından Korunma Yolları: Ağ Yapılandırması

Etki Alanı Saldırılarından Korunma Yolları: Ağ Yapılandırması

Etki alanına karşı yapılan saldırılar ve sızma testleri sırasında, bulunulan ağda IP ve port taraması gerçekleştirilmekte ve böylece ortamda çalışan servisler hakkında bilgi sahibi olunabilmektedir. Bu bilgileri kullanılarak ilgili sistemlere saldırılar gerçekleştirilebilmektedir. Bunun yanında sızılan ağda zafiyet taraması gerçekleştirilmekte ve zafiyete özel saldırılar düzenlenmektedir.
Ağ taramalarının etkin olarak gerçekleştirilememesi için, ağ taraması sonucunda olabildiğince az bilginin açığa çıkarılması sağlanmalıdır.  Bu amaçla ağ ayarları sıkılaştırılmalı ve yapılandırılmalıdır.
Ağ ayarlarının yapılandırılması için, en az aşağıdaki ayarların uygulanması gerekmektedir.
  • Etki alanındaki bilgisayarlara erişimler ortamdaki aktif cihazlarla kontrol edilmelidir. Sadece gerekli olan IP veya IP bloklarından erişimler sağlanabilmelidir. Ayrıca port kontrolü de gerçekleştirilmelidir. Özellikle kritik konumdaki sunuculara olan ağ bağlantıları için erişimler kontrollü olarak verilmelidir. Kurumdaki ağ mimarisinin güvenilir bir şekilde yapılandırılması konusu ile ilgili bir yazı dizisi Bilgi Güvenliği Kapısı'nda yayınlanmıştır: https://www.bilgiguvenligi.gov.tr/ag-guvenligi/guvenli-ag-mimarisi-tasarimi-1.html ve https://www.bilgiguvenligi.gov.tr/ag-guvenligi/guvenli-ag-mimarisi-tasarimi-2.html
  • Ağ yapılandırmasının yanında ortamda gerçekleştirilen tarama işlemlerinden haberdar olunabilmesi için anormal ağ trafiğinin tespiti ve önlenmesine yönelik gerekli çözümler kullanılmalıdır.
  • Bilgisayarlarda gereksiz olan tüm servisler kapatılmalıdır. Böylece saldırı yüzeyi azaltılır. Servis güvenliği için servisi çalıştıran kullanıcılar kontrol edilmelidir, varsayılan dışında oluşturulan servis hesaplarının parolalarının karmaşık ve uzun olması sağlanmalıdır. Bunun yanında erişilebilirliği sürdürebilmek için parolalar kilitlenmeyecek şekilde ayarlanmalı, periyodik olarak değiştirilmelidir.
  • Sızılan bir bilgisayarlar üzerinden diğer bilgisayarlara yayılma için en çok yönetimsel paylaşımlar kullanılmaktadır. Bunu önlemek için, yönetimsel paylaşımlar kullanılmaktadır. Bu sebeple yönetimsel paylaşımların kapatılması gerekmektedir. Eğer etki alanındaki yönetimsel operasyonlar için yönetimsel paylaşımlar gerekli ise, sadece bu operasyonları gerçekleştirecek olan özel kullanıcılar için yönetimsel paylaşımlarda işlem gerçekleştirme hakkı verilmesi gerekmektedir. Bu amaçla aşağıda belirtilen anahtar değerleri 0 olarak ayarlanmalıdır.
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\AutoShareServer
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanManServer\AutoShareWks
  • Paylaşımların kapatılamayacağı durumlarda paylaşımlara erişimler kısıtlanmalıdır. Belirli IP'ler üzerinden ve belirli kullanıcılar için paylaşımlara erişimler izin verilmelidir.
  • Paylaşımlarda sistemlere ait yedekleme dosyaları bulunmamalıdır. Bulunması gerekiyorsa, bu dosyalar şifreli saklanmalıdır.
  • Bilgisayarlardaki TCP/IP güvenliğine önem verilmelidir. Bu amaçla internet seçeneklerinden ayarlar yapılabileceği gibi, kayıt defterinde de gerekli ayarlar gerçekleştirilmelidir.


8 Ekim 2012 Pazartesi

Sızma Testlerinden Korunma Yolları: Domain


Domain için Önlemler

Bilgisayarların CD/USB'den boot edilmesi önlenmelidir.
  • BIOS ayarlarından CD-ROM / BIOS yolu ile boot işlemi iptal edilmelidir. Makinenin öncelikle harddisken başlaması için gerekli ayarlar yapılmalıdır.
  • BIOS ayarı yapılmaya çalışılırken şifre sorgulaması yapılmalıdır.
  • Makinelerde diskler tamamen şifrelenmelidir(Full Disk Encryption). Bu şekilde makine boot edilse bile SAM/SYSTEM dosyaları elde edilemeyecektir.
  • Makinelerde LM özetlerinin saklanmamalıdır. En az NTLM şifreleme metodu kullanılmalıdır.

Ağ yapılandırması gözden geçirilmelidir.
  • Gerekli olmayan portlar ve servisler kapatılmalıdır.
  • Ağ üzerinde kurallar tanımlayarak; belirlenen IP’lere, belirlenen portlardan kontrollü bir şekilde izin verilmelidir.
  • Gereksiz paylaşımlar kullanıma kapatılmalıdır. 
  • Açılan paylaşımlardaki izinler sadece erişmesi gerekenlerin ulaşabilmesine olanak verecek şekilde ayarlanmalıdır. Yönetimsel paylaşımlar eğer kullanımları gerekmiyor ise domain politikaları ile kaldırılmalıdır.

Zafiyetler giderilmeli ve sistemler güncellenmelidir.
  • Belli periyotlarla zafiyet taraması gerçekleştirilmelidir.
  • Acil olan zafiyetler gerekiyorsa hemen giderilmelidir.
  • Sistemlere son yamalar geçilmelidir.
  • Zafiyetler için kurum politikası belirlenmelidir.
  • AV, IDS/IPS, ADS gibi sistemlerin imzaları güncel tutulmalıdır.
  • Uzaktan kod çalıştırmaya olanak sağlayan bazı kritik açıklıklar şunlardır:
    • MS09-001 / Critical: Vulnerabilities in SMB Could Allow Remote Code Execution (958687)
    • MS08-067 / Critical: Vulnerability in Server Service Could Allow Remote Code Execution (958644)
    • MS05-051 / Critical: Vulnerabilities in MSDTC and COM+ Could Allow Remote Code Execution (902400)
    • MS06-040 / Critical: Vulnerability in Server Service Could Allow Remote Code Execution (921883)
    • MS05-027 / Critical: Vulnerability in Server Message Block Could Allow Remote Code Execution (896422)
    • MS05-035 / Critical: Vulnerability in Microsoft Word Could Allow Remote Code Execution (903672)
    • MS09-050 / Critical: Vulnerabilities in SMBv2 Could Allow Remote Code Execution (975517)
    • MS08-059 / Critical: Vulnerability in Host Integration Server RPC Service Could Allow Remote Code Execution (956695)
    • MS09-004 / Important: Vulnerability in Microsoft SQL Server Could Allow Remote Code Execution (959420)

İmajların yapılandırılmasına özen gösterilmelidir.
  • Zafiyet taramaları sonucunda elde edilen sonuçlara göre gerekiyorsa imajlar güncellenmelidir.
  • Mevcut sistemlerde gerekli olmayan yerel yönetici kullanıcıları (administrator) devre dışı bırakılmalı ve isimleri her makine için farklı olacak şekilde değiştirilmelidir. Böylece yapılacak saldırıda yerel yönetici hesabının isminin kolayca ve otomatik olarak bulunmasını zorlaştıracaktır. Ayrıca SID değerini kontrol etmeyen saldrgan yanlış yönlendirilecektir. Devre dışı bırakılan Administrator kullanıcısı yerine hakları, izinleri ve grup üyelikleri sınırlandırılmış bir standart kullanıcı oluşturulmalıdır. Oluşturulan bu tuzak yönetici hesabının adı Administrator, tanımı klasik yerel yönetici kullanıcısına ait tanım ("Built-in account for administering the computer/domain") olarak ayarlanmalıdır.Bu kullanıcı kullanılarak saldırgan yanlış yönlendirilebilir. 
    • Parolası olabildiğince uzun (127 karakter olabilir) veriler ve bu hesap devre dışı bırakılabilir.  Saldırganın zaman kaybetmesi sağlanır.
    • Parolası kolayca elde edilebilecek şekilde kısa ayarlanabilir. Daha sonra bu hesap ile bir kez oturum açılarak hesap etkin olarak bırakılabilir. Bu hesap ile yapılan işlemlerin denetim kayıtları tutularak bu hesaplar ile yapılan işlemlerden anlık olarak haberdar olunması sağlanabilir.Böylece muhtemel saldırının önüne de geçilebilir.
  • Kurulan makinelerdeki yerel kullanıcılara ait şifre özetleri, diğer makinelere erişim için kullanılabileceğinden, kurumdaki makinelerde bulunan yerel yönetici şifrelerinin farklı olmasına özen gösterilmelidir.
  • Kurumdaki makinelerin yerel yönetici kullanıcılarına ait şifreler belli periyotlarla manuel olarak değiştirilmelidir. Bu işi saatlik olarak gerçekleştiren araçlar kullanılmalıdır.
  • Yerel yönetici hesaplarının şifreleri, şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir.

Domain hakkında bilgi edinilmesi zorlaştırılmalıdır.
  • Kullanıcıların komut satnetırı kullanabilmeleri önlenmelidir.
  • Komut satırından "net", "gpresult" komutu gibi domain hakkında bilgi alınmasını sağlayabilecek komutların kullanılması önlenmelidir. Domain hakkında elde edilebilecek komutların bir kısmı için bakınız: 
  • Domain yöneticileri gibi yetkili kullanıcıların bulundukları grupların adları, dikkat çekmeyecek şekilde değiştirilmelidir.

Son kullanıcılar ve bilgisayarları belli periyotlarla kontrol edilmelidir.
  • Makinelerde yüksek yetkili kullanıcı hakları ile çalıştırılan gereksiz prosesler sonlandırılmalıdır.
  • Makinelere giren kullanıcılar, işlemleri bittikten sonra bilgisayarlarını yeniden başlatmaya (restart) zorlanmalıdır.
  • Domain yöneticileri gibi, önemli gruplardaki kullanıcıların iki tane hesabı olmalıdır. Bu hesaplardan birisi domain üzerinde işlem yapma haklarına sahip oldukları yetkili hesaptır. İkinci hesap ise, domaindeki normal kullanıcılar gibi, yetkisiz hesaptır. Domain yöneticileri yetkili hesaplarını sadece domain işlemlerini yaparken kullanmalıdır, bu hesapla domain controller haricinde gerekmedikçe herhangi bir yere giriş yapılmamalıdır. Farklı sistemlere giriş için yetkisiz / az yetkili hesap kullanılmalıdır. 
  • Önemli gruplarda olan yetkili kullanıcılar bu hesaplarını sadece domaine kullanıcı ekleme, domainden kullanıcı çıkarma, grup politikasını güncelleme gibi işlemler için kullanmalıdır. Domain controller gibi, belli ve sınırlı sayıdaki makinelere bu kullanıcı ile giriş yapılmalıdır.
  • Gereksiz paylaşımlar kullanıma kapatılmalıdır. Dosya sunucularına, domain üzerinde yüksek haklara sahip kullanıcıların hesabı ile girilmemelidir.
  • Domainde etkin olacak servis hesaplarına, sadece gerçekleştirecekleri işlemler için gerekli olan haklar verilmelidir. Bu tür hesapların kullanıcı oluşturma, silme, şifre değiştirme gibi işlemleri veya interaktif oturum açma gibi işlemleri yapmaya hakları olmamalıdır.
  • Dosya sunucularına, domain üzerinde yüksek haklara sahip kullanıcıların hesabı ile girilmemelidir.
  • Yerel yönetici hesapları gibi domaindeki kullanıcıların şifreleri de , şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir. Bu amaçla grup politikaları güncellenmelidir.
  • Güvenli şifre politikaları belirlenmelidir. Aşağıdaki ayarlar uygulanabilir:
    • Enforce password history: 5 Şifre
    • Maximum Password Age: 30 Gün
    • Minimum Password Age: 1 Gün
    • Minimum Password Length: 8 Karakter (en az)
    • Passwords must meet complexity requirements: Etkin
    • Store password using reversible encryption: Devre dışı
  • Domaindeki kullanıcılara ilgili makinelerde yönetici hakkı verilmemelidir. Gerekli olan haklar geçici olacak şekilde verilmelidir.
  • Kullanıcılar makinelerinde yönetici hesapları ile oturum açmamalıdır. Yönetimsel operasyon yapılacak ise, “Run as” ile yönetici hesabına geçiş yapılmalıdır.
  • Son kullanıcıların makinelerinde parolaları içeren dosyalar açık halde tutulmamalıdır, şifrelenmelidir.
  • Domaindeki yetkili kullanıcıların biletleri, çıkış yapıldıktan itibaren otomatik olarak silinecek şekilde yapılandırma yapılmalıdır.
  • RDP yapılmamalıdır. Yapılması gerekiyorsa da her erişim sonrası oturumlar kapatılmalıdır (logoff), mümkünse makine yeniden başlatılmalıdır (restart). RDP yapılan hesapların domain üzerinde yetkili olmamasına dikkat edilmelidir.

Audit işlemleri aktif olmalıdır.
  • Yerel makinelerdeki ve domaindeki işlemlerin logları alınmalıdır.
  • Ağdaki anormallik durumları için alarmlar oluşturulmalıdır. Port taramalar engellenmelidir.
  • Domainde kullanıcı oluşturma/silme işlemleri, hak yükseltme/düşürme işlemleri, kullanıcıları gruba ekleme/çıkarma işlemleri,... gözlenmelidir.