Pass To Hash Attack Korunma Yöntemleri

Pass To Hash Attack Korunma Yöntemleri yazımızda sizlere pass to hash attack nedir , nasıl gerçekleştirilir ve bu attack ile başka neler yapılabilir bunu göstereceğim. Ayrıca Bu attacktan korunmak için neler yapılabilir bunlara göz gezdireceğiz.

Öncellikle Pass to Hash attack nedir bunu açıklamak gerekmektedir. PTH atağı kullanıcı bilgisayarında veya sunucusunda bulunan şifre hashlerinin ele geçirilerek bu hashleridiğer bilgisayarlar ve sunuculara erişim için kullanma ile olarak belirleyebiliriz. Bu atak türünün diğerlerinden farkı şifre yerine kullanıcının password hash değerini kullanmasıdır.

Bu atağın başlangıcı saldırganın ilk olarak local administrator yetkisini kazanması ile başlamaktadır. Bunu yaparken birçok phishing tekniği veya zararlı yazılımlar aracıyla yapmaktadır. Saldırganın local admin yetkisine sahip olduktan sonra diğer bilgisayarlara veya yukarıda bulunan sunuculara erişim sağlamak için hash değeri aramaktadır. Bulduğu hash değerlerini kullanarak yanal veya yukarı hareket yapmaktadır.

Aslında Pass to Hash Attacklarının devamında 2 atak türü gelmektedir;

  • Lateral Movement : Sahip olduğu hash değerlerini yanalda yani client tarafında hareket etmesine devam etmesidir.
  • Privilige Escalation: Bu harekette ise saldırgan sahip olduğu hash değerleri ile yetkisini yükseltmeye çalışmasıdır.

Peki Bu credential nelerden çalabilir ?

  • SAM Database
  • LSASS
  • Domain Active Directory Database
  • Credential Manager (CredMan)
  • LSA Secrets in the registry

Bu Atağın gerçekleşmesi için neler olmadır?

  • İlk olarak saldırganın network üzerinden bilgisayarlara erişmesi gerekmektedir.
  • Bilgisayardan ele geçirilen kullanıcının geçerli olması ve diğer bilgisayarlarda aynı domainde veya aynı local account diğer bilgisayarlarda da kullanılıyor olması
  • Hash değeri alınan kullanıcının network logon yetkisine sahip olması gerekir.

Network Logon Rights
Password Hash Network logon olarak kullanıllmaktadır. Fakat Plaintext password servislere diğer Özelliklere ve Remote Desktop erişimi sağlayabilir. Bu sebepten dolayı plaintext password bırakmamak çok kritiktir.

Peki Bu ataklar neden gerçekleşir ?

  1. En önemli sebeplerinden biri yetkili kullanıcıların (Sunucu admin , Domain, Enterprise Admins gibi) kullanıcıların bilgisayarlara logon olmasıdır.
  2. Standart user olarak nitelendirebileceğimiz Local veya Domain hesaplarının bilgisayarların Local Administrators groubuna dahil edilmesidir.
  3. Aynı local hesap adı ve password’un her bilgisayarda kullanılmasıdır.
  4. Application , Service veya Schedule tasklerin yetkili kullanıcılarla çalıştırılması.
  5. Admin hesaplarının fazlalığı ve ayrıştırılmaması (Tier Yapısı)
  6. Yetkili kullanıcıların bilgisayarlardan, sunuculardan veya domain controller dan mail ve internet erişimlerin olması
  7. Service hesaplarının domain yetkilendirilmesinin fazla yapılması , least privilege yapılandırılmamasının eksik olması
  8. Kullanıcı adı veya şifrenin text dosyası olarak herhangi bir yerde bulunması
  9. Update’lerin yapılmaması , Burada hem windows , hem güvenlik hemde 3.party uygulamaların güncelliği sağlanmadığından.

Yukarıda bazı sebeplerden bahsettim , bunun gibi birçok sebepte bunlara bağlı olarak düşünülebilir. Öncellikle sizlere bir tane PTH atağın nasıl gerçekleştiğini göstererek nasıl engelleriz bunları anlatacağım.

PTH Attack

İlk önce standart bir kullanıcı ile bir bilgisayara giriş yapıyoruz. Burada Domain Controller bağlanmayı denediğimde yetkimizin olmadığını göstermektedir. (Username = standartuser)

Burada kullanıcının yetkilerini görebilmekteyiz.

Gelgelelim Meşhur mimikatz.exe ye geldik . Burada ekranda gözüktüğü gibi logonpasswords sıralaması yapıyoruz.

Pass To Hash Attack Korunma Yöntemleri ATTACK

Burada sanş eseri daha önceden oturum açmış bir hesap bulduk. ADFSadmin isimlendirmesi yetkili olabileceğini göstermektedir. NTLM Hash değerini bir yere kopyalıyoruz.

Bu hash değerini kullanıyoruz.

Şimdi açılan cmd üzerinden Domain Controller C: diskine erişim sağlamaya çalışıyoruz ve erişim sağladık. Username hala standartuser olarak gözükmektedir.

Pass To Hash Attack Korunma Yöntemleri Sonuçları

Sonuç olarak başka bir sunucuya veya Domain Controller yapısına kadar yetki yükselterek erişim sağladık. Bunu daha farklıda düşünebilirsiniz. Ele geçirilen hash değeri bir local kullanıcıya ait olabilirdi , bu hash değerlerini diğer bilgisayar üzerinde yanal hareket edebilmekteyiz. Sunucuların admin olan kullanıcıya ulaşabilirdik , bu sefer sunucu segmentine atlayarak orada yanal veya dikey hareket ederek domain controllera ulaşabiliyoruz.

Pass To Hash Attack Korunma Yöntemleri geçmeden önce öncellikle Gelişen bilişim sektörü ile veri her yerde barınabilmektedir. Bu kullanıcı bilgisayarlarında da olabilir. O yüzden kullanıcı bilgisayarlarını korumakta sistem yöneticilerin en önemli görevlerinden biridir. Şimdi sıra geldi bu ataktan korunma yöntemlerine , bu atak için bazı korunma yöntemleri var ama lateral movement ve privilege escalation da düşünmekte fayda vardır.

Mitigation

  1. İlk önce sisteminizin güvenliği için Windows , Güvenlik ve 3.party güncellemeleri yaptığınızdan emin olunuz.
  2. Admin hesaplarının ayrıştırılması , kimler nerede admin olacaktır ? bu sorunun cevabı verilmedir. Domain seviyesindeki adminler sunuculara ve bilgisayara erişim sağlamamalıdır. Sunucu seviyesindeki adminler bilgisayarlara ve domain controller seviyesinde erişim sağlamamalıdır. Bilgisayar adminleri sunucu ve domain controllera erişim kesinlikle sağlamamalıdır. Aslında burada bahsedilen Tier Yapısıdır. Daha detaylı bilgi için Tier Model
  3. LAPS kullanılmadır. Local Admin Şifreleri her bilgisayar ve sunucu için farklı olmalıdır.
  4. Windows Firewall açık olmalıdır. Gerekli portlar açılarak yapılandırılmalıdır. En azından Default olarak açık olmasının yararı çok olmaktadır.
  5. Bilgisayarların local administrators grubunda kimler olacağı en başta belirlenmelidir. Bunu da Restricted Group Policy ile yapabilmekteyiz.
  6. Restricted admin kullanabilirsiniz.
  7. LM Hashler Kaldırılmalıdır.
  8. NTLM V1 Kapatılmalıdır.
  9. Privileges Accounts E-mail ve Internet Access
  10. Credential Guard and Device Guard
  11. Protected User Kullanılmalıdır.
  12. PAW veya JUMP server kullanılmalıdır.
  13. Sistemin izlenmesi için ATA veya Azure ATP , Antivirüs çözümleri ve EDR teknolojilerini sistemlerinize entegre ediniz.
  14. Elbette Audit logların Security Baseline göre ayarlandığından emin olun.
  15. Belli başlı Legacy Protocoller disable edilmelidir.

Windows and Security Update

Windows Version kontrolü ve Son Hotfixlerin kontrollerini powershell üzerinden yapabilirsiniz. Server Versionunda 2022 bulunmaktadır. Hot Fixlerde ise her ayın 2. Salısında yayınlanmaktadır. Ayrıca olası herhangi bir bug veya açıklığa göre yeni update gelebilmektedir. Hepsinden ötesi Critical updateların geçildiğinden emin olun. Yine Aynı şekilde 3.party uygulamaların son güncellemelerini aldığına emin olun.

Get-ComputerInfo | select WindowsProductName, WindowsVersion

Get-HotFix  | Sort-Object InstalledOn -Descending |  select Description,HotFixID,InstalledOn 

Tier Model

Tier Model Active Directory hesaplarının yanlış kullanımı sonucunda oluşabilecek problemlerin önüne geçmek için kullanılır. Bu modelde 3 farklı hesap kullanılır. Bu hesapların yetkileri ve bağlantıları sayesinde domain seviyesinin yüzey alanları küçültülür. Her hesap türünün belirli makineler üzerinde yetkileri vardır. Örnek olarak T2 hesapları bilgisayarlar üzerinde yetkiliyken T1 sunucularda yetkilidir.

Eski sistemlerde domain admin kullanıcıları tüm sistemlerde kullanılırdı bu nedenle Bu hesapların ele geçirilmesi ile domain sunucuları ve bütün sistem tehlikeye girmekteydi. Kötü amaçlı kişilerin ilk hedefi genellikle bu hesaplar olmaktaydı. Bu problemin önüne geçmek için TIER model karşımıza çıkmaktadır.

Tier Modeli bir Üçgen gibi düşünelim en tepesinde en kritik sunucularımız yani domain controller makineleri vardır. Bir altında sunucularımız onunda altında bilgisayarlarımız vardır.

Tier Hesaplarını sıralayacak olursak;

  • 2 Hesapları: Bilgisayarları kullanan kullanıcı hesabımız.
  • 1 Hesapları: Sunuculara bağlanmak için kullandığımız hesabımız.
  • 0 Hesapları: Domain Controller sunucusuna bağlanmak için kullandığımız hesabımız.

Sonuç olarak kurallarımız;

  • 1: Tier 0 hesabı ile sunuculara ve bilgisayarlara bağlanamayız.
  • 2: Tier 1 hesabı ile bilgisayarlara ve domain controller sunucularına bağlanamayız.
  • 3: Tier 2 hesabı ile sunuculara ve domain controller sunucularına bağlanamayız.

Bu sayede sayesinde domain controller sunucularının bağlantı yüzey alanını küçültmüş olduk. Bilgisayarlarınızda olabilecek kötü amaçlı yazılımlar ile hesabınız ele geçirilse bile domain controller sunucusuna erişimi olmayacaktır. Ayrıca bu sayede yetki yükseltme olayını çok çok zorlaştırmış olacağız.

Daha detaylı bilgi için Tier Model bakınız.

Laps(Local Admin Password Solution)

Local admin password solution olarak bilinen LAPS en önemli önlemlerden biridir. LAPS bize workstation ve server local admin şifrelerini yönetmemize yardım etmektedir. Workstation local admin şifrelerinin birbirinden farklı olmasını sağlamaktadır. Pass the hash attackta ele geçirilen Lokal admin şifreleri ile diğer bilgisayarlara erişim sağlamaya çalışan saldırganın önünü bir nebze kesmiş olmaktayız.

Bütün lokal admin şifrelerinin aynı olmasını bir düşünün ele geçirilen bir lokal admin şifresi ile tüm bilgisayarlara veya sunuculara bağlanabilirsiniz. Tehlikenin farkındamısınız !!!!

Son olarak LAPS kurulumunu ve Dağıtımını öğrenmek için;

Windows Firewall Yapılandırılması

Group Policy üzerinden windows firewall yapılandırılması yapabilmekteyiz. Bilgisayarlar sunucular ve domain controllerlar için Windows Defender Security Baseline’a göre Inbound block(default) outbound allow olarak ayarlanmalıdır. Windows firewall iç network bağlantıları için en önemli koruyuculardan biridir. Eğer Bu ayarlar yapılamıyorsa bile en azından windows defender’ı sadece açmak bile yeterli olacaktır. Domain , Private ve Public Profile için ayarlar yapılmalıdır.

Pass To Hash Attack Korunma Yöntemleri Firewall

Restricted Groups ile Local Admin Belirleme

Restricted admin group policy sayesinde bizlere Local Admin veya farklı grupların düzenlenmesini sağlamaktadır. Production ortamında birçok sunucunuz olabilir ve lokal admin kullanıcıları gereksiz kullanıcıları eklemiş olabilirler ve sistem adminleri farkında olmayabilir. Bu policy sayesinde bizim belirlediğimizin dışında herhangi biri entry yapsa bile gpupdate sonra yeniden kaldırılacaktır. Tüm makinelerde bulunan adminleri SCCM CMPivot yardımı ile görüntüleyebilirsiniz.

Resimde görüldüğü gibi “korikocan kullanıcısı” bulunmaktadır.

Restricted Groups ile hangi kullanıcılar olacak bunları belirledik.

Pass To Hash Attack Korunma Yöntemleri Restricted Group

Gpupdate sonrası kullanıcı kaldırıldı. Tüm sunucularınızda ve clientlarınızda admin olacak kullanıcıları kesinlikle belirleyiniz.

Restricted Admin

Restricted Admin ile remote connection yapan kullanıcının hash değeri yerine makinenin hash değerini mimikatz yakalamaktadır. Örnek olarak remoteadmin ile ilk olarak remote bağlantı yapıyoruz ve NTLM hash değerini görebilmekteyiz.

Sonrasında Restricted Admin policy ayarlamasını yapıyoruz.

Pass To Hash Attack Korunma Yöntemleri Restricted Admin

Son olarak Makineye Restricted admini kabul etmesini sağlıyoruz.

Tekrar olarak mstsc /restrictedadmin ile remote bağlantı yapıyoruz User’a ait hash bilgileri gözükmemeye başladı.

LM Hash

Muhakkak LM Hashler kaldırılmalıdır. Bunun birçok sebebi bulunmaktadır. LM hash Windows eski işletim sistemlerinde kullanılmaktadır.(NT ,2000, 2003 ,95,98). İlk olarak LM hash özeti çok zayıftır. Bu zayıflıklar;

  • Parolada büyük küçük harf duyarlılığı bulunmamaktadır.
  • Parola hash özeti 14 karaktere kadar desteklemektedir ve 14 haneyi 7 karakterli 2 parçaya böler ve DES şifreleme algoritmasını kullanır.
  • Şifresi aynı olan kullanıcıların LM özetleri aynıdır.
  • Brute Force saldırılarında kolayca kırılabilirler gibi birçok zayıflığı bulunmaktadır.

Dolayısıyla kaldırılması önemlidir. Group Policy yardımıyla kolayca ayarlanır.

Pass To Hash Attack Korunma Yöntemleri LM Hash

NTLM V1

NTLMV1 LM’e göre biraz daha güvenlidir. Fakat modern şifreleme teknikleri kullanmaz. PTH ataklara karşı zayıftır. Bu sebepten dolayı sistemlerinizden kaldırmak gerekmektedir. Fakat bunu kaldırmak o kadar da kolay değildir. Çünkü sistemlerinizde NTLM kullanan birçok cihaz olabilir. Öncellikler bu cihazları belirlemek gerekmektedir. Bunun için ilk olarak NTLM trafiğini loglamak gerekmektedir.

Pass To Hash Attack Korunma Yöntemleri NTLM V1

Bunun için Eventlerin kontrol edilmesi gerekir.

Event ID:4624

Message: ntlm v1

Bu konuda ayrıntılı olarak Microsoft Makalesi bulunmaktadır.

Privileges Accounts Email and Internet Access

Privileges yetkilere sahip hesapların email adreslerinin olmamasına özen gösteriniz. Bu hesaplara gelebilecek zararlı oltalama mailleri bu hesapların ele geçirilmesine sebep olabilmektedir. Ayrıca Yine bu hesapların kullanıldığı ( remote veya login) sunucu veya bilgisayarların internet erişimleri konusunda dikkatli olmak gerekmektedir.

Credential ve Device Guard

Pass the Hash Attack Korunma Yöntemlerinden biride Credential ve Device Guardtır. İlk olarak bu özellikler nedir ve ne tür bir savunma katmanı sağlamaktadır onu açıklamak gerekmektedir. Bilindiği gibi herhangi bir sisteme login olunduğunda kullandığımız şifreler bellekte yer alır. Zararlı yazılımlar bu bellekteki login bilgilerini çalmak için uğraşmaktadır. Hele ki admin kullanıcılarının login olduğu sistemlerse kolayca server ve domain controller yapısına zıplayabilirler. Tier yapısında bundan bahsetmiştik.

Bellekte yer alan LSA bilgilerinin korunması gerekmektedir. Burada devreye Credential ve Device Guard devreye girmektedir. Credential Guard ile beraber LSA bilgileri sanallaştırmış ve izole edilmiş konteynerde turmaya başlar. Bu konteynerda LSA sadece kernel ile iletişim kurabilir. Bu alanda Kerberos ve NTLM korunması sağlanmaktadır. Ekstra LSA için bir katman oluşturur ve koruma sağlamaktadır.

Fakat bu özelliği aktif edebilmek için client bilgisayarlarında gerekli olan bazı şartlar vardır. Bilgisayarlarda Secure Boot ve Virtualization Technology aktif edilmesi gerekmektedir. Bu ayarlar yapılmadıysa boot’da ciddi sıkıntılar yaşayabilirsiniz.

Yapılacak GPO ile beraber Hyper-V platform otomatik olarak yüklenmektedir. DMA protection ise harici çevre birimlerinin belleğe yetkisiz erişimine karşı koruma sağlamaktadır.

Pass To Hash Attack Korunma Yöntemleri Guard

Protected Users

Admin Kullanıcılar için protected users grubu kullanılmalıdır. Bunun en güzel sebebi bu grubun üyelerinin;

  • NTLM Kullanmazlar, Kerberos kullanırlar
  • Kerberos Ticket geçerlilik süresi 4 saattir.
  • Kerberos delegasyonunu desteklemez.
  • Zayıf Kerberos algoritmalarını kullanmazlar. (RC4 veya DES) Bunun yerine AES kullanır.

Dikkat edilmesi gereken nokta IP adresi ve net use komutunu bu kullanıcılar kullanamazlar. Bunun yerine netbios name üzerinden bağlantı sağlayabilirler.

Sonuç olarak Pass To Hash Attack Korunma Yöntemleri

En Son olarak benim özellikle dikkat ettiğim noktalardan biri herhangi bir şifre herhangi bir txt,csv,word dosyasında bulunmamalıdır. Güvenli digital kasalarda bulunmalıdır. Şifreler ihtiyaç oldukça kullanılmalıdır. Ayrıca yapılan bir çok atak son kullanıcıdan başlamaktadır. Son kullanıcıların bilgilendirilmesi son derece önemlidir.

Pass To Hash Attack Korunma Yöntemleri Yazımızda genel hatları ile Pass the Hash Ataklara Karşı korunma yöntemlerinden az ve öz bir şekilde bahsettik. Bunun yanında lateral movement ve privilege escalation durumlarını bir kaç önlem ile anlattık. Domain yapılarında korunma yöntemleri olarak bu yazı bir başlangıç olarak yayınlamaktayım. Daha farklı konulara’da değineceğimiz yazılarım gelecektir. Diğer yazılarımı aşağıdaki kategorilerden takip edebilirsiniz.