Sedat KIZILÇINAR

Computer Engineer | Sr. Security Engineer | Instructor | AppSec

Kategori : sistem-guvenligi

Windows Sistemlerinde Post Exploitation Part-1

Günümüzde gelişen teknoloji ile birlikte güvenliğin önemi de artmaktadır. Kurum ve kuruluşlar gelişen teknolojiyi yakından takip edip sistemleri üzerinde yeni güncellemeler yapmaktadır. Fakat sistemleri üzerinde gerekli kontrolleri yapmadıkları veya eksik güncellemeler yaptıkları için sistemlerinin güvenlik açıkları ortaya çıkmaktadır. Bu güvenlik açıkları ise bir saldırgan tarafından fark edildiğinde, sistem üzerinde istenmeyen işlemler gerçekleşebilmektedir. Bu istenmeyen işlemler, saldırganın sisteminizdeki gizli bilgilerinizi ele geçirmek, çalışanlarınıza ait kişisel veya finansal verilere sahip olmak, bu verileri değiştirmek veya silmek gibi işlemlerdir. Sistemlerinizi bu gibi işlemlerden korumak için güncellemeler ve konfigürasyon işlemleri eksiksiz bir şekilde tamamlanmalıdır. Ayrıca sistemlerin güvenlik önlemleri arttırılabilmektedir.

Saldırgan, genellikle sistemlerinizde güvenlik açıklarını tespit ettiklerinde doğrudan sisteminize saldırmamaktadır. Öncelikle sistemleriniz hakkında bilgi sahibi olmak için bilgi toplama işlemlerini gerçekleştirmektedir. Sistemlerin üzerindeki işletim sistemi bilgisi, sistemler üzerinde çalışan belli başlı yazılımların sürüm bilgisi, dışarıya açık bırakılan ağın portları hakkında bilgi edinmek saldırgan için önem arz etmektedir. Saldırgan bu bilgileri elde ettikten sonra sisteme yönelik saldırı işlemleri başlatarak sistemi ele geçirmeye çalışmaktadır. Saldırgan, sistemi ele geçirdikten sonra sistem üzerinde kritik bilgiler olup olmadığını kontrol etmektedir. Fakat hedeflediği aşamaya ulaşamayınca veya istediği bilgileri elde etmediğinde ele geçirmiş olduğu sistem üzerinden diğer sistemlere ulaşmanın yollarını aramaktadır. Saldırganların, hedef sisteme erişim sağlandıktan ve yetkiler yükseltildikten sonra başlayan bir sürece ise post exploitation sürecidir. Yani erişim sağladıktan sonra bu erişimin kalıcı hale getirilmesi ve sürdürülmesi amaçlanmaktadır.

Kurum ve kuruluşlardaki çalışanlar, saldırganlar tarafından böyle bir saldırıya maruz kalacaklarını düşündükleri için bu tür sistemlerde bilgi bulundurmamaktadır. Fakat, saldırgan amacına ulaşana kadar elde ettikleri sistemleri kullanarak diğer sistemlere girmeyi hedeflemektedir. Bundan dolayı elde edilen makine üzerinden diğer sistemlere yönelik sızma işlemleri gerçekleştirmek için tekrar bilgi toplayıp ağ taraması gerçekleştirmektedir. Böylelikle ağ üzerinde bulunan diğer makineler hakkında bilgi sahibi olup tespit edilen açık portlar üzerinden diğer sistemlere yönelik sızma işlemi gerçekleştirmektedir. Saldırgan yerel ağda sızdığı sistem üzerinde gerekli gördüğü işlemleri gerçekleştirerek sistemdeki kimlik bilgilerinin elde edilmesi ve diğer bilgileri elde etmektedir. Bu bilgileri elde etmenin yanında yerel ağda düğer sistemleri ele geçirmek için belli başlı araçları çalıştırmak gerekmektedir. Bu araçların çalıştırması için sistem üzerinde hak ve yetkinin yükseltilmesi gerekmektedir. Bundan dolayı, saldırgan ele geçirilmiş sistem üzerinde hak ve yetki yükseltme işlemlerini gerçekleştirmesi gerekmektedir. Hak yetki işlemlerini yükseltilmesiyle birlikte diğer sistemlere yönelik işlemler gerçekleştirmektedir. Bu işlemler ise;

  • Var olan ağın taranmasıyla birlikte açık makinelerin ve portların tespit edilmesini sağlayarak ağ topolojisini çıkarmak
  • Var olan domain ortamı hakkında bilgi sahibi olmak
  • Tespit edilen makinelerin zafiyet tespitini gerçekleştirmek
  • Tespit edilen sistemlerin uzaktan yönetilmesini sağlamak

gibi işlemler yapılmaktadır. Bu işlemler saldırganın sistemler üzerinde kontrol sağlaması için önemlidir. Bu işlemlerden birinin eksik yapılması hedeflenen işlemin başarı derecesini düşürmekte olup hatta başarısızlıkla sonuçlanabilmektedir. Kurumsal ağlarda bütün makineleri kontrol altında tutmak, makineler arasındaki veri akışını izleyip kontrol etmek, bütün ağı bir hiyerarşiye göre yönetmek büyük bir önem arz etmektedir. Bundan dolayı kurum ve kuruluşlarda domain ortamı oluşturulmaktadır.

Domain ortamı genellikle kurum ve kuruluşların IT birimlerindeki çalışanlar, sunucular üzerinde bu ortamı oluşturduktan sonra bu servisler üzerinde diğer istemci makineleri kullanılması için kurum ve kuruluşta bulunan bütün çalışanlar adına bir kullanıcı adı ve parola atamaktadırlar. Kurum veya kuruluşun hiyerarşine ve departmanlarına göre domain ortamı oluşturulmaktadır. Domain ortamı üzerinden kullanıcıların yetkilendirilmeleri yaptıkları işlere ve çalışmış oldukları departmanlara göre düzenlenmektedir. Bu durum sonucunda domain ortamının bir yöneticisi bulunmaktadır. Domain ortamının yöneticisi Domain Admin olarak adlandırılmaktadır. Domain Admin yetkisine sahip olan kullanıcı genellikle IT departmanındaki bir yetkilidir. Domain ortamının en yetkili kullanıcı olup domain ortamında gerçekleşen her gelişme, olay, veri akışı yönetici tarafından izlenilebilir, müdahale edilebilir ve kontrol altına alınabilmektedir. Domain Admin, en yetkili kullanıcı olduğundan dolayı kimlik bilgisi karmaşık oluşturmalıdır. Buna ek olarak kimlik bilgilerini üst düzey korunmalıdır. Her istemci makinesine uzaktan veya doğrudan Domain Admin kimlik bilgileri ile giriş yapılmamalıdır. Şekil 1’de örnek senaryo için bir domain ortamı oluşturulmuştur.

atgr1
Şekil1 : Örnek Domain Ortamı


Şekil 1’de gösterilen domain ortamında Domain admin, Domain Controller makinesinin kullanıcısı olup, domain ağının yöneticisidir. İstemci makineler ise farklı departmanlardaki farklı yetkilerdeki makineleri belirtmektedir.

Active Directory

Active Directory ağ üzerindeki nesneler hakkındaki bilgileri depolayıp yöneticiler ve kullanıcılar için bu bilgileri bulup kullanmayı kolay hale getirmektedir. Active Directory dizin bilgileri için mantıksal ve hiyerarşik olarak kurulmuş ve yapılandırılmış bir veri deposu kullanmaktadır. Active Directory Domain Services (AD DS) gibi bir dizin hizmeti dizin verilerini depolamak ve bu verileri ağ kullanıcıların ve yöneticilerin sunmak için yöntemler sağlamaktadır. Örneğin, AD DS kullanıcı hesapları, adları, parolalar, telefon numaralarını vb. gibi ilgili bilgileri depolar ve bu bilgilere erişmek aynı ağ üzerindeki diğer yetkili kullanıcılara sağlamaktadır. Bu veri deposu olarak da bilinen dizini, Active Directory nesneleri hakkında bilgi içermektedir. Bu nesneler genellikle sunucular, yazıcıları ve ağ kullanıcı ve bilgisayar hesapları gibi paylaşılan kaynakları içermektedir. Güvenlik, oturum açma kimlik doğrulaması ve dizindeki nesnelere erişim denetimi aracılığıyla Active Directory ile tümleşiktir. Bir tek ağ oturum açma ile yöneticiler dizin verileri ve düzenlemesini ağlarındaki yönetebilir ve yetkilendirilmiş ağ kullanıcılarına herhangi bir yerden ağ üzerindeki kaynaklara erişebilmelerini sağlamaktadır. İlke tabanlı yönetim bile en karmaşık ağın yönetimini kolaylaştırmaktadır.

Active Directory’nin mantıksal yapısı, tüm kullanıcıların, bilgisayarların ve diğer fiziksel kaynakların hiyerarşik bir organizasyonu olmasına rağmen, forest ve domain, mantıksal yapının temelini oluşturmaktadır. Mantıksal yapının güvenlik sınırları olan forest, bir kuruluşta hem siteyi hem de grup kimliklerini yansıtabilecek ve fiziksel topolojiye bağımlılığı kaldıracak şekilde veri ve hizmet özerkliği ve izolasyonu sağlayacak şekilde yapılandırabilmektedir. Domainler, veri ve hizmet özerkliği sağlamak (ancak izolasyon değil) ve verilen bir bölge ile çoğaltmayı optimize etmek için bir forest yapılandırabilmektedir. Mantıksal ve fiziksel yapıların bu şekilde ayrılması, yönetilebilirliği arttırır ve idari maliyetleri azaltmaktadır. Çünkü mantıksal yapı, fiziksel yapıdaki değişikliklerden etkilememektedir. Mantıksal yapı ayrıca verilere erişimi kontrol etmeyi mümkün kılmaktadır. Bu, verileri bölümlere ayırmak için mantıksal yapıyı kullanabileceğiniz ve böylece çeşitli bölümlere erişimi kontrol ederek ona erişimi kontrol edebileceğiniz anlamına gelmektedir.

AD’de depolanan veriler birçok farklı kaynaktan geldiği için, AD bir tür standart depolama mekanizması kullanarak verilerin bütünlüğünü koruyabilecektir. AD’de, bilgileri dizinde depolamak için nesneler kullanılır ve tüm nesneler şemada tanımlanmaktadır. Nesne tanımları, dizinin saklanan verilerin geçerli olmasını sağlamak için kullandığı veri türü ve sözdizimi gibi bilgiler içermektedir. Verileri depolamak için kullanılan nesneler ilk önce şemada tanımlanmadıkça dizinde veri depolanamaz. Varsayılan şema, AD’nin çalışması için ihtiyaç duyduğu tüm nesne tanımlarını içerir; ancak şemaya nesne tanımları da ekleyebilirsiniz.

Dizin, domain ve forest gibi öğelerden oluşan bir mantıksal yapı aracılığıyla belirtilirken, dizinin kendisi bir forestteki tüm domain controller’de depolanan bir veritabanından oluşan fiziksel bir yapı aracılığıyla uygulanmaktadır. AD veri deposu, veritabanına tüm erişimi yönetmektedir. Veri deposu hem hizmetler hem de fiziksel dosyalardan oluşmaktadır. Bu hizmetler ve fiziksel dosyalar dizini kullanılabilir duruma getirir ve her Domain Controller’ın sabit diskinde bulunan veritabanındaki verileri okuma ve yazma işlemlerini yönetmektedir.

Post Exploitation

Kurum ve kuruluşlarda temel olarak bir domain ortamı bulunmaktadır. Bu domain ortamı üzerinde hiyerarşik bir düzen içerisinde makineler bulunmaktadır. Bu ortam üzerindeki makineler belirli domain ortamı politikaları göz önüne alınarak birbirleri arasında iletişim içerisindedir.

atgr2
Şekil2 : Post Exploitation Sürecinin Akış Diyagramı


Şekil 2’de gösterildiği gibi kurum ve kuruluşlardaki domain ortamı üzerinde hangi aşamalar ile ilerleneceği gösterilmektedir. Güvenlik duvarlarının atlatılması ile domain ağın içerisindeki herhangi bir makine üzerinde erişim sağladıktan sonra makinede gerekli olan kritik bilgileri tespit edememesi sonucunda ağ taraması gerçekleştirerek diğer makinelere erişim sağlayıp kritik bilgilerin elde edilmesine kadar devam eden bir döngü süreci görülmektedir. Post exploitation, bir ağda bulunan sisteme sızdıktan sonraki evre olarak adlandırılabilmektedir. Domain ortamı üzerinde post exploitation işlemleri yerel ağ üzerinden gerçekleştirilmektedir. Bu işlemlerin gerçekleştirilmesinden önce exploitation işleminin gerçekleştirilmiş olması gerekmektedir. Çünkü yerel ağ üzerinden gerçekleşecek işlemlerde saldırganın yerel ağdaki bir makineyi ele geçirmesi gerekmektedir. Bu işlem temel olarak exploitation işlemi olarak bilinmektedir. Saldırgan exploitation işlemini gerçekleştirip dışarıdan yerel ağa dahil bir bilgisayarı ele geçirmektedir. Böylelikle post exploitation evresinin işlemlerinin yapılmasına geçilmektedir. Bu işlemler ise;

  • Domain Ortamı Hakkında Bilgi Toplama
  • Yerel Ağ Tarama
  • Kimlik Bilgilerin Elde Edilmesi
  • Hak ve Yetki Yükseltme
  • Uzak Bağlantı Sağlama

gibi temel işlemlerdir. Bu işlemler gerçekleştirilerek saldırgan domain ortamı üzerinde hedefe yönelik işlemleri başarıyla gerçekleştirebilmektedir.

Domain Ortamı Hakkında Bilgi Toplama

Saldırgan tarafından gerçekleştirilen exploitation işlemleri sonucunda hedef domain ağ üzerindeki bir istemci makinesinin ele geçirilmesiyle birlikte, makine üzerinde işlemler yapılarak gerekli bilgiler elde edilip edilmediğine bakılmaktadır. Saldırgan istemci makinesi üzerinde istenilen bilgileri elde edemediği takdirde, istemci makinesi üzerinden domain ortamı hakkında gerekli bilgileri elde etmek için araçlar kullanmaktadır. Bu araçlar domain adı, domain ortamındaki DC makinesinin bilgilerini, domain ortamındaki forestler ve organizational unitler hakkında gerekli bilgileri getirmektedir. Saldırgan böylelikle, içerisinde olduğu domain ortamı hakkında bilgi elde edip domain ortamını ele geçirmek için gerekli senaryoları hazırlamaktadır. Bu senaryonun başarılı bir şekilde gerçekleştirilebilmesi için doğru, tutarlı bilgiler elde edilmelidir.

Yerel Ağ Tarama

Saldırgan domain ortamı üzerinde gerekli bilgileri topladıktan sonra domain ortamının kurulmuş olduğu yerel ağ üzerinde de tarama gerçekleştirmesi gerekmektedir. Domain ortamının kurulu olduğu yerel ağın altyapısı hakkına bilgi sahibi olmak saldırının başarı derecesini arttırmaktadır. Bu tarama işlemi aynı şekilde hazırlanmış araçlarla gerçekleştirilmektedir. Bu araçlarla yapılan taramada, yerel ağ üzerinde çalışan bütün makinelerin IP bilgileri ve açık olan port bilgileri elde edilmektedir. Bu bilgilerden yola çıkarak açık makineler üzerinde hangi servis veya yazılımın çalıştığı tespit edilebilmektedir. Çünkü makineler üzerinde açık olan portlar birer kapıdır. Bu kapılar üzerinde de güvenlik açığı bulunması halinde saldırgan yerel ağ üzerinde hedef makineye sızma işlemini gerçekleştirebilmektedir. Bundan dolayı yerel ağ taraması da domain ortamı hakkında bilgi toplama kadar önemli bir işlemdir. Çünkü saldırgan böylelikle domain ortamı ele geçirme konusunda ilerleme kaydedecektir.

Kimlik Bilgilerinin Elde Edilmesi

Bilgi toplama ve ağ keşifleri sonucunda elde edilen bilgiler doğrultusunda makineler ele geçirildikten sonra bu makineler üzerinde önemli işlemler gerçekleştirilip gerçekleştirilmediği konusunda araştırma yapılabilmektedir. Yapılan araştırmalar sonucunda makine üzerinde önemli işlemler gerçekleştirildiğine dair bilgiler elde edildiğinde makinenin SAM veritabanı ve belleğindeki kullanıcı kimlik bilgileri elde edilerek önemli ve yüksek yetkili kullanıcıların kimlik bilgilerinin var olup olmadığı tespit edilmektedir. Yüksek yetkili bir kullanıcının kimlik bilgileri elde edildikten sonra hedef ağ üzerinde daha rahat ve hızlı ilerleyip bütün ağ ele geçirilebilmektedir. Çünkü en temel amacımız bütün ağı ele geçirmek için Domain Admin kimlik bilgilerini elde etmektir. Domain Admin kimlik bilgilerini elde ettiğimizde bütün ağ ele geçirilebilmektedir. Bundan dolayı elde edilecek kimlik bilgileri büyük bir önem arz etmektedir.

Yerel yönetici veya SYSTEM yetkileriyle bilgisayara erişim sağlandıktan sonra, bilgisayardaki kullanıcılara ait jetonlar (token) elde edilmektedir. Bu amaçla, mevcut durumda çalışan processler ve processleri çalıştıran kullanıcı hesapları incelenerek jetonlar çalınıp yüksek yetkiler elde edilmektedir. Windows işletim sistemi yüklü olan bir makineye erişim sağlandıktan sonra, disk üzerinde kayıtlı kritik bilgiler elde edilmektedir. Bu işlem el ile gerçekleştirilebildiği gibi, betikler kullanılarak da gerçekleştirilmektedir. SAM/NTDS.dit ve SYSTEM dosyaları alınabileceği gibi, parola özetleri de elde edilmektedir. LSASS dosyası alınabileceği gibi, çeşitli uygulamalar çalıştırılarak parolanın açık hali doğrudan da elde edilmektedir.

Hak ve Yetki Yükseltme

Saldırgan tarafından ele geçirilmiş makine üzerinden bilgi toplayıp yerel ağ tarama işlemlerini gerçekleştirdikten sonra yüksek hak ve yetki gerektiren işlemler yapılmaktadır. Saldırganların ele geçirdikleri makineler genellikle düşük hak ve yetkilerle çalışmaktadır. Fakat saldırgan ele geçirmiş olduğu makine üzerinden kritik işlemler gerçekleştireceği için yüksek hak ve yetkilere ihtiyacı vardır. Bundan dolayı saldırgan sistem üzerinden hak ve yetki yükseltmek için hazırlanmış aracı kullanarak sistem üzerinde hak ve yetkisini yükselterek bir sonraki işlem aşamasına geçebilmektedir.

Windows işletim sisteminde en yetkili kullanıcı hesabı SYSTEM hesabıdır. Domain’deki en yetkili kullanıcı hesabı ise, Domain Admins grubundaki bir hesaptır. Windows işletim sistemine erişim sağlandıktan sonra, işletim sisteminde ve domain ortamındaki bir zafiyet kullanılarak, hak ve yetki yükseltme işlemi gerçekleştirilmektedir. Hak ve yetki yükseltme işlemi için girilen her sistemin bazı özelliklerini kontrol etmek ve zafiyet olup olmadığını incelemek gerekmektedir.

Uzak Bağlantı Sağlama

Genellikle saldırganlar yerel ağ üzerinde bir makineyi ele geçirmeyi ya da uzaktan kontrol altına alarak işlemlerini gerçekleştirmektedir. Uzaktan hedef makine ile etkileşime geçerek aynı şekilde işlemlerine devam edebilmektedir. Böylelikle tek bir makine üzerinden domain ortamı üzerindeki herhangi bir makine üzerinde işlemler gerçekleştirilmektedir. Domain ortamında bu işlemleri gerçekleştirmek için domain üzerinde yüksek yetkilere elde edilmelidir. Bir domain ortamı üzerinde en yüksek hak ve yetkiye sahip olduğunuzda DC dahil bütün makinelere yönelik uzaktan bağlantı işlemi gerçekleştirilmektedir.

Sedat KIZILÇINAR