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

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

Okunası Makaleler: Group Policy

Group Policy Makaleleri

Configure Account Lockout Policies

Kaynak site:
http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/AdminTips/Security/AccountLockoutPolicies.html

How to use Group Policy to Allow or Block URL’s
Kaynak site:
http://www.grouppolicy.biz/2010/07/how-to-use-group-policy-to-allow-or-block-urls/

Add Domain Users to local Remote Desktop Users group using Group Policy
Kaynak site:
http://www.vkernel.ro/blog/add-domain-users-to-local-remote-desktop-users-group-using-group-policy

Windows Group Policy Settings
Kaynak site:
http://www.vanstechelman.eu/windows/group_policy_settings

Exploiting Windows 2008 Group Policy Preferences
Kaynak site:
http://esec-pentest.sogeti.com/exploiting-windows-2008-group-policy-preferences

Okunası Makaleler: Windows

Windows Makaleleri

Managing Security Dependencies on Windows Networks
Kaynak site:
http://www.windowsitpro.com/content1/topic/managing-security-dependencies-windows-networks-142470/catpath/security

Forgot administrator password? The Sticky Keys trick
Kaynak site:
http://4sysops.com/archives/forgot-the-administrator-password-the-sticky-keys-trick/

Security Vulnerabilities Published In 2012
Kaynak site:
http://www.cvedetails.com/vulnerability-list.php?vendor_id=26&product_id=739&version_id=&page=1&hasexp=0&opdos=0&opec=0&opov=0&opcsrf=0&opgpriv=0&opsqli=0&opxss=0&opdirt=0&opmemc=0&ophttprs=0&opbyp=0&opfileinc=0&opginf=0&cvssscoremin=0&cvssscoremax=0&year=2012&month=0&cweid=0&order=3&trc=24&sha=ae01f10b142929c25950e042d74165ffa1b2c1e4

The trust relationship between this domain and the primary domain failed
Kaynak site:
http://siberblog.org/index.php/the-trust-relationship-between-this-domain-and-the-primary-domain-failed/

Distinguished Names
Kaynak site:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366101(v=vs.85).aspx

WS2008: Network Level Authentication and Encryption
Kaynak site:
http://blogs.technet.com/b/askperf/archive/2008/02/16/ws2008-network-level-authentication-and-encryption.aspx

Top 10 Windows Security Configurations: Where and How!
Kaynak site:
http://www.windowsecurity.com/articles/Top-10-Windows-Security-Configurations-Where-How-Part1.html

Well-known security identifiers in Windows operating systems
Kaynak site:
http://support.microsoft.com/default.aspx?scid=kb;EN-US;243330

Sysprep nedir ? Nasıl yapılır ?
Kaynak site:
http://www.vanstechelman.eu/windows/group_policy_settings


MCITP 70-640: Active Directory forest and trees
Kaynak site:
http://www.youtube.com/watch?v=Whh3kPS0FdA





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/