Günlük hayatta kullandığımız şifreler, bugün dünyada en yaygın kullanılan güvenlik araçlarından bir tanesidir. Güçlü şifreler bilgi güvenliğinin en önemli koruyucu yanıdır ve zayıf şifreler en büyük başarısızlığıdır. Parola tahmin etme veya parola kırma gibi parola saldırılar, zaman alan saldırılardır. Hash-the pass saldırısında amaç, elde edilen hash’i doğrudan kırmadan kullanmaktır, bu zaman alıcı parola saldırılarını (Brute-Force vb. gibi) daha hızlı hale getirir. Hash-the pass saldırı tekniği yeni bir teknik değildir. İlk kez 1997 yılında Paul Ashton’ın Bugtraq’taki “NT Pass the Hash” isimli bir yazısında yayınladığı zaman ilk olarak ortaya çıkmıştır.
Pass-the Hash (PtH), kullanıcının açık metin (clear-text) şifresine erişmeden (şifrenin hash’ini kullanılarak) kullanıcı olarak kimlik doğrulaması yöntemidir. Bu yöntem, açık bir şifre gerektiren standart kimlik doğrulama adımlarını atlayarak doğrudan şifre hash’ini kullanarak kimlik doğrulaması bölümüne atlar. Bu teknikte, kullanılan hesap için geçerli parola sağlama bilgileri bir Credential Access tekniği kullanılarak yakalanır. Yakalanan hash’ler, kullanıcı olarak kimliğini doğrulamak için PtH ile kullanılır. Kimlik doğrulaması yapıldığında, yerel veya uzak sistemlerde eylemler gerçekleştirmek için PtH kullanılabilir.
Pass-the Hash (PtH), yetki yükseltmesi sadece birkaç dakika süren çok popüler bir saldırılardan bir tanesidir. Başarılı olduğunda, saldırgan anında bir etki alanı yöneticisi hesabı için bir şifre hash’i yakalayabilir. Elde ettiği hash’i kullanarak ağda yatay olarak hareket etmek için kullanılabilir, saldırgan bu kimlik bilgileriyle sistemdeki her şeye erişebilir.
Saldırganın, Bilgi Teknolojileri ekibinizi ayrıcalıklı kimlik bilgilerini vermesi için kandırmasına gerek yoktur. Herhangi bir çalışanı kimlik avı saldırısı yoluyla açığa çıkarılması veya alt düzey çalışanın bilgisayarına kötü amaçlı yazılım bulaştırması yeterlidir. Ağa girdikten sonra, bir saldırganın yapması gereken, o çalışanın bilgisayarında bir sorunu olana kadar Bilgi Teknolojilerinden bir görevliyi çağırması ve Bilgi Teknolojilerinden birisinin sorunu gidermek için yönetici kimlik bilgileriyle kötü amaçlı yazılım bulaşan bilgisayara giriş yapması yeterlidir.
Bilgi Teknolojileri yöneticiniz login ekranında ayrıcalıklı hesap bilgileri girdiğinde, uzaktan bağlanıldığında bile şifre hash’i bellekte saklanır. Bir saldırgan Hash’i yakalayabiliyorsa, orijinal şifreyi bilmeye gerek kalmadan ağın herhangi bir yerinde kullanabilir. Pass-the Hash saldırıları, siber güvenlik topluluğu tarafından bilinen en yaygın ve en hızlı saldırılardan biridir.
Şifreleri elde etmek basittir ve Window’un kimlik bilgileri düzenleyicisi (WCE) gibi bir çok Pass-the Hash aracını içerir. Hash yakalamak, makineye yerel yönetici erişimi gerektirir, ancak bu, defense-in-depth uygulamalarında (ayrıcalıklı hesapları ayrıcalıklı olmayanlardan ayırmamak) veya zayıf bir savunma avantajından yararlanarak yerel bir kullanıcıdan yerel bir kullanıcıya yükseltme yapmak için kolayca elde edilebilir.
Parola sağlama işlemleri Local Security Authority Subsystem’e (Lsass) yüklenir. Lsass, kullanıcı kimlik doğrulamasından sorumlu olan “% SystemRoot%\System32\Lsass.exe” adlı yürütülebilir dosya olarak çalışır. Hash damping araçlarını kullanarak, saldırgan daha fazla kullanım için şifrelerin hash değerlerini dump edebilir (örn. Pass-the Hash saldırısında olduğu gibi). Windows SAM veritabanından veya bellekten parola hash’lerini dump etmek için yönetici ayrıcalıkları gerekmektedir.
Aşağıda adım adım saldırganların Pass-the Hash saldırısında parola eşleştirmelerini nasıl kullanabileceğini sizlere açıklamaya çalışacağım. Açıkladığım saldırıda, saldırganın sistemi ele geçirdiğini ve üzerinde yönetim haklarının elde edildiğini varsaydığımı unutmayın.

  1. Saldırgan, “Kurban” sunucusundan gelen şifreleri dump ederek hash’lerini elde eder.
  2. Saldırgan, Pass-the Hash araçları kullanarak, elde ettiği hashlardan birini (tercihen idari ayrıcalıklara sahip bir kullanıcı için) yerel Lsass’ına yerleştirebilir.
  3. İleriye doğru, Windows, saldırgan bir şifre sağlamaya gerek kalmadan “Kurban” sunucusuna erişmeye çalıştığında saldırgan adına yeni kimlik bilgilerini otomatik olarak sağlar.

Bazı siber güvenlik araştırmacıları, “Windows parola toplama mekanizmasının tasarımındaki bir zayıflık nedeniyle” pass-the hash saldırısının mümkün olduğunu iddia etmektedirler. Salting, Türkçe adıyla ‘tuzlama’ tipik olarak şifre hashing’ini gösteren bir kavramdır. Bunu yapmak için de şifrenin sonuna farklı bir hash değeri eklenir. Bu sayede hashing işleminde güvenlik katmanı oluşturulurken, özellikle de brute force saldırılarının önüne geçilir. Brute Force saldırısı, bir bilgisayar veya botnet ağının şifreyi bulana kadar her türlü olasılığı rakamlar ve harflerle deneme işlemidir. Tuzlama (Salting) kesinlikle önceden hesaplanmış hash saldırıları durduracak, ancak pass-the hash saldırısını durduramayacaktır. Bunun nedeni, bir parola Hash işleminin düz metin parolasına eşdeğer olmasıdır. Saldırgan Hash elde ederse, sanki açık metin şifresini almış gibi olacaktır. O zaman “Salting” olsa bile Hash kullanabilecektir. Saldırganların hash’i için, Hash’leri depolayan sistem üzerinde yöneticinin haklarına sahip olmaları gerekir. Bu gerçeği ve bunun getirdiği riskleri anlamak, kuruluşlara, pass-the hash saldırılarını (ve diğer saldırıları) azaltmalarına yardımcı olacak etkili bir derinlemesine savunma stratejisi oluşturmada yardımcı olacaktır. Pass-the hash saldırılardan korunmak için aşağıdaki önlemleri alabiliriz.

1) Hassas Sistemlerin İzolasyonu
Bir saldırganın, bir etki alanı yöneticisinin bir kez bile oturum açtığı bir sistemi kontrol altına alırsa neler yapabileceğini yukarıda sizlerle paylaşmıştım. “gsecdump.exe” gibi bir araç kullanarak, saldırgan etki alanı ile bağlantı kurabilir ve alan adının hash’lerini dump edebilir. Saldırganlar, güvenli bir sistemde hashları dinlemek, yakalamak ve kaydetmek için “whosthere.exe” gibi bir aracı kullanarak gerçekleştirmektedirler. Etki alanı yöneticisinin bu sisteme etki alanı yönetici ayrıcalıklarıyla bir noktada oturum açmasını ve böylece tüm etki alanının anahtarını vermelerini sağlıyorlar. Ancak, bir sistemin uzlaşması, tüm alanın güvenliğinin tehlikeye atıldığı anlamına gelirse, sistem yöneticileri ellerinde ciddi bir güvenlik problemine sahiptir.
Bu durumda şu kuralı asla unutmamalıyız: “Daha hassas bir sistem, güvenliği için asla daha az hassas bir sisteme bağlı olmamalıdır.” Bu durum bizi iki önemli noktaya yönlendirir:
İlk olarak, veriler sistemin kendisinden daha hassassa, hiçbir zaman verileri girmek, işlemek veya verileri (yani, etki alanı yöneticisi hash’lerini) kullanmak için kullanılmamalıdır. Bu nedenle, etki alanı yöneticilerinin hesapları, etki alanı denetleyicileri dışındaki herhangi bir sisteme doğrudan giriş yapmamalıdır. Ağdaki diğer sistemlere erişmek için bir etki alanı yöneticisi hesabı kullanmaya ihtiyaç duyulması durumunda, kullanımın tamamlanmasından sonra geçici bir hesap oluşturulabilir ve silinebilir. Bu kuralın bir istisnası, yalnızca etki alanı yöneticisi oturum açmaları için kullanılan birkaç güvenilir ve belirlenmiş sistem içindir. Bu sistemler yalnızca üzerlerinde kurulu yönetim araçlarına sahip olmalı ve internete erişememelidir. İkinci önemli nokta ise daha az hassas olan bir sistem, hassas bir sistemi yönetmek için asla kullanılmamalıdır.
2) Least User Access'in Zorlanması (LUA)
Kullanıcılara sistemlerinde idari haklar verilmesi, kötü amaçlı yazılım riskini önemli ölçüde artırabilir. Web’te yönetici ayrıcalıklarıyla dolaşan, tehlikeye atılmış bir web sitesini ziyaret eden veya bir e-posta iletisindeki bir bağlantıyı tıklatan bir kullanıcı, saldırganların kullanıcının sistemi veya tüm ağ üzerinde tam kontrol sahibi olmasına neden olabilecek istemeden ve bilmeden kötü amaçlı kod çalıştırabilirler. Organizasyon, korumalarını hafifletebilir ve En Az Kullanıcı Erişimi (LUA) uygulayarak kötü niyetli kodlardan ve sıfır günlük kullanımlardan kaynaklanan riskleri önemli ölçüde azaltabilir. Bir araştırma, kritik Microsoft yazılım açıklarının yüzde 92’sinin, genellikle onlara ihtiyacı olmayan kullanıcılara verilen yönetici haklarının ortadan kaldırılmasıyla azaltılabileceğini göstermiştir. LUA her ortamda çalışmayabilir. Örneğin, bazı eski uygulamalar LUA ile uyumlu olacak şekilde yazılmamıştır. Bu gibi durumlarda, kuruluşlar güvenlik açığını kapatmak için BeyondTrust Privilege Manager gibi araçlar kullanabilirler.
3) LM ve NTLM kullanmaktan kaçınma
LM ve NTLM bugünün standartlarına göre zayıf sayılıyor ve bundan kaçınılması gerekiyor. Daha iyi bir yaklaşım, NTLMv2 veya Kerberos kullanımı olacaktır. NTLMv2, Windows NT4 SP4’te ilk görünümünü yaptı. Windows 95’te Windows 98SE ile yerel olarak desteklenmez, ancak Windows 2000 Server CD’sinde bulunabilen bir eklenti olan DC istemcisi kullanılarak eklenebilir. Yöneticiler yanıtları Grup İlkeleri ile kontrol edebilirler.
İlk bölüm istemci (client) içindir, istemcinin ne sunması gerektiğini belirtir. İkinci bölüm, Etki Alanı Denetleyicisi’nin (DC) ne kabul etmesi gerektiğini belirtir. Örneğin istemci “LM & NTLM yanıtlarını gönder” ayarını yaptığında, istemci hem LM hem de NTLM yanıtlarını gönderir. Bu durumda DC, bu politikada DC için talimat olmadığı için LM, NTLM veya NTLMv2’yi kabul etmeye devam edecektir. En iyi ayar “Yalnızca NTLMv2 yanıtlarını gönder / LM ve NTLM’yi reddet” olmalıdır. Bu, istemciyi yalnızca NTLMv2 yanıtı göndermeye zorlar, DC ise NTLMv2’yi kabul eder ve hem LM hem de NTLM’yi yok sayar. Windows Vista’daki varsayılan “Yalnızca NTLMv2 yanıtlarını gönder” şeklindedir, ancak Windows 7’de bu politika tanımlanmaz. Administrators ayrıca LMCompatibilityLevelin’i, istemcinin ne gönderebileceğini ve DC’nin ne gönderebileceğini ve kabul edebileceğini zorlamak için kayıt defterini ayarlayabilir. Bu kayıt defterindeki HKLM\SYSTEM\CurrentControlSet\Control\Lsa\LMCompatibilityLevel aracılığıyla ayarlanabilir.
4) Önbelleğe Alınmış Kimlik Bilgilerini Sınırlanması
Önbelleğe alınmış kimlik bilgileri, kullanıcıların bağlantı kopması durumunda oturum açmasını sağlar. Önbelleğe alınmış kimlik bilgileriyle, kullanıcıların hash’leri süresiz olarak önbelleğe alınır. Windows 2008 dışındaki tüm Windows sürümlerinde önbelleklenen varsayılan oturum açma sayısı 10’dur, Windows 2008’deki sayı 25’e yükselmiştir. Bazı kuruluşlar tüm sistemlerinde tüm yönetici hesapları için aynı parolayı kullanır. Bu uygulama, tüm organizasyonların sistemlerinin uzlaşmasına yol açabileceğinden, sistemlerden birinin tehlikeye girmesi durumunda çok ciddi hasarlara neden olabilir. Bir etki alanı yöneticileri bir kez bile sistemde oturum açarsa, hash bu sistemde önbelleğe alınır. Bu sistem daha sonra tehlikeye girerse, saldırganlar saniyeler içinde etki alanı yöneticisi kazanacaktır. Bu senaryodan kaçınmak ve neden olabileceği olası zararlardan kaçınmak için, önbelleğe alınmış kimlik bilgileri masaüstü bilgisayarlar ve sunucular için 0, dizüstü bilgisayarlar için 1 olmalıdır. Önbelleğe alınmış oturum açma, aşağıdaki kayıt defteri girdisini kullanarak değiştirilebilir:
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon\
5) Programların Hata Ayıklama Kullanıcı Hakkı devre dışı bırakılmalı
Hata ayıklama programı, kullanıcıya herhangi bir sürece, çekirdeğine bir hata ayıklayıcı ekleme yeteneği sağlayan bir “kullanıcı hakkıdır”. Bu, kullanıcıya hassas ve kritik işletim sistemi bileşenlerine erişim sağlar. Bu hak, saldırganlar tarafından şifre hashlerini ayıklamalarına veya rootkit kodunu enjekte etmelerine izin veren araçlar yoluyla da kullanılabilir. Bu hak varsayılan olarak yalnızca yöneticilere verilir. “Debug Programları” kullanıcı hakkı bir production sisteminde nadiren gereklidir, bu nedenle iptal edilmesinin sistem üzerinde bir etkisi olmamalıdır. Ancak, sistemde “Cluster Service” çalışıyorsa, devre dışı bırakılması, “Cluster Service” ihtiyacı olduğu için hizmetin başarısız olmasına neden olur. “Hata ayıklama programları” kullanıcı hakkı aşağıda paylaştığım şekilde iptal edilebilir.
6) Token tabanlı kimlik doğrulama kullanılması
Token tabanlı kimlik doğrulamasını bir çözüm olarak kullanmak, bu tür bir çözümü uygulamak için gereken para ve uygulamanın karmaşıklığı nedeniyle tüm kuruluşlar için uygun değildir. 2004’te Microsoft ve RSA, Windows için SecureID’yi duyurdu. SecureID’de, altı basamaklı sayıların sözde rasgele dizileri bir donanım belirteci tarafından üretilir. Bu oluşturulan numara cihazda 60 saniye boyunca görüntülenir. Sisteme başarılı bir şekilde giriş yapabilmek için, kullanıcının kullanıcı adını, isteğe bağlı şifreyi ve en sonunda görüntülenen altı basamaklı sayıyı girmesi gerekecektir. Kimlik doğrulama sistemi, kullanıcının yazdığı sayı ile sistemde üretilen sayıyı karşılaştıracaktır. Kullanıcı girişindeki altı basamaklı sayı sistemdekiyle aynıysa, kullanıcıya erişim verilir.
7) Akıllı Kartlar ve Kerberos kullanımı
Kerberos ve akıllı kartlar, hassas bilgileri (örneğin, oturum açma kimlik bilgilerini) ele geçirilmesine bağlı olarak “reply attack” saldırılarını önlemek için mükemmel bir çözüm sağlayabilir. Şu anda Kerberos kullanımdayken pass-the hash saldırısıyla geçilebilecek public hiçbir araç bulunmamaktadır. Bununla birlikte, yakın gelecekte, pshtoolkit gibi araçlar TODO dosyalarına göre Kerberos’un yol haritalarını desteklediğinden dolayı değişebilir. Akıllı kart bilgileri, şifrelere benzer şekilde saklanır. Oturum açmak için akıllı kartlar gerekliyse, DC bu kart için rastgele bir parola oluşturur, hash ve kullanıcı nesnesinde saklar. Kullanıcı bir akıllı kartla oturum açtığında, Kerberos kimlik doğrulamasında kullanılan Anahtar Dağıtım Merkezi (KDC), oturum açma işlemi sırasında kullanıcıya hash değerini sağlar. Bu bilgi kullanıcının genel anahtarı kullanılarak şifrelenmiş olarak gönderilecektir. İstemci tarafında, Kerberos Güvenlik Destek Sağlayıcısı (SSP), hash’in şifresini çözecek ve ardından kullanıcı oturum açma isteminde kullanıcı kimlik bilgilerini girmiş gibi önbelleğe alacaktır. Bu, akıllı kartlar kullanırken bile istemcideki hash’lerin, hala yönetici haklarıyla çalışan kötü amaçlı yazılımlara maruz kaldığı anlamına gelir. Bu nedenle akıllı kartların kullanılması, şifre tabanlı giriş bilgilerinin şifre tabanlı giriş bilgilerinden daha fazla koruma sağlamaz. Akıllı kartların, şifreleme saldırılarına benzer şekilde hash injection ile saldırıya uğrayabilir.
8) Host-tabanlı Saldırı Tespit Sistemi (HIDS) ve Ağ-tabanlı Saldırı Tespit Sistemi (NIDS) İzlenmesi
Kuruluşlar hem sistemler hem de ağdaki izinsiz giriş tespitini kullanarak, çevrelerindeki anormallikleri tespit edebilir. Ana Makineler, yeni oluşturulan hesaplar ve yerel yönetici grubu üyelikleri için günlük olarak izlenmelidir. Sonuçlar onaylanmış bir listeyle karşılaştırılmalıdır. Onaylanan listede bulunmayan bulunan hesaplar kaldırılmalı ve bir uyarı gönderilmelidir. “Snare Agent” tarzı programlar, oturum açma hataları gibi anormal olayları izlemek ve bu uyarıları raporlama için bir Splunk sistemine iletmek için kullanılabilir. Olay görüntüleyicide “Event 552” göründüğünde yüksek öncelikli uyarılar ayarlamak da mümkündür. Bu olay, açık kimlik bilgilerinin başka bir hesaptan kullanıldığını gösterir. Bu uyarının ayarlanması gerekebilir, çünkü aynı alarmı üreten meşru servisler nedeniyle bazı yanlış pozitif uyarılar olacaktır. Örneğin, hassas bir sisteme erişmesine izin verilen whitelist IP listesi oluşturarak bu durumun önüne geçilebilir. Sisteme erişmeye çalışan ve white IP listesin de olmayan herhangi bir IP reddedilmeli ve olaylar bildirilmelidir. Ayrıca, bir komut dosyası, virüsten koruma işlemini izler, durdurulursa işlemi yeniden başlatır ve olayı bildirir. Son olarak, ağ anomali durumları için analiz edilmelidir. Örneğin, belirli bir bağlantı noktasında kısa sürede çok sayıda ana bilgisayara bağlantı yapan bir sistem varsa bu durum incelenmelidir. Bu, normal davranış temel çizgisinin saatlik ve günlük olarak oluşturulmasıyla sağlanabilir.
Yukarıda sizlerle paylaştığım gibi, pass-the-hash, özellikle saldırıyı kolaylaştıran ücretsiz araçların var olduğunu göz önüne alındığımızda ciddi bir saldırı vektörü olarak konumlandırabiliriz. Saldırganın Hash’leri varsa, çevrimiçi saldırılar gibi zaman alıcı parola saldırılarına gerek kalmadan bunları doğrudan kullanabilir. Bununla birlikte, bunun saldırganın ele geçirilen sistem üzerinde yetki yükseltme ayrıcalıklara sahip olmasına da sebebiyet verebilir.
Böyle bir saldırının gerçekleşmesi olasılığını azaltmak için bu adımlar zor olsa da şirketler bu konunun önemi üzerinde ciddi adımlar atmalıdır. Etki alanı denetleyicileri ve diğer hassas sistemler, yalnızca internete erişimi olmayan güvenilir sistemlerden erişilebilir olmalıdır. LM gibi zayıf hash değerlerin geriye dönük uyumluluğundan kesinlikle kaçınılmalıdır. Token kullanan iki faktörlü kimlik doğrulama saldırılarını azaltmak için şiddetle kullanılmasını öneriyorum. En az kullanıcı erişimi kavramı vurgulanmalıdır. Kuruluşun ağındaki ana bilgisayarların ve trafiğin yakından izlenmesi anomali durumlarını tespit etmek için önemlidir.
Ayrıca, VirusTotal gibi hizmetler, bilinen saldırı araçları için çeşitli antivirüs ürünlerinin algılama oranlarının karşılaştırılmasında çok yardımcı olacaktır. Bununla birlikte, kuruluşlara kötü niyetli bir araç yürütüldüğünde beklendiği gibi davranamayacağından bu tür çözümleri test etmelerini şiddetle tavsiye ediyorum. Siber Güvenlik sürekli bir süreçtir, bu nedenle kuruluşlarınızın güvenliğini sürekli değerlendirmeli, güvenlik sorunlarınıza çözümler uygulamalı ve bu çözümlerinizi izlemek zorundasınız. Ayrıca yöneticilerinizi ve kullanıcılarınızı bu konuda eğitmeli ve tekrar başa dönerek bir döngü halinde bu süreçleri tekrar etmelisiniz. Gerçekleşen saldırı olayları bir birinin aynısı olmayacaktır, bu yüzden her siber olaydan öğrenmeli, bilgi toplamalı ve dersler çıkarmalıyız.