Güvenlik Ayarları¶
Bunlar nedir¶
Saldırganlar gizli kalmak ve kimlik bilgilerine ulaşmak için Windows'un güvenlik ayarlarını değiştirir. Microsoft Defender'ı kapatır veya araçlarını onun kapsamı dışında bırakır, Windows'un parolaları açık metin olarak tutmasını sağlar, Uzak Masaüstü'nü açar, güvenlik duvarını kapatır ve PowerShell günlüğünü susturur. Kayıt defteri bu ayarları tutar:
SOFTWARE: Defender, dışlamaları ve ilkeleri; UAC; Uzak Masaüstü ve güvenlik duvarı ilkeleri; PowerShell yürütme ilkesi, günlük ilkeleri ve AMSI sağlayıcıları; Sistem Geri Yükleme; olay günlüğü kanalları.SYSTEM(denetim kümesi başına):WDigest, LSA koruması, Credential Guard, Restricted Admin, NTLM; Uzak Masaüstü; güvenlik duvarı profilleri; SMBv1; son erişim zamanları; her olay günlüğünün boyutu.NTUSER.DAT: kullanıcının PowerShell yürütme ilkesi ve günlük ilkeleri ile Windows Script Host için AMSI.
parse-registry security-settings, bulduğu her ayarı bir kayıt olarak raporlar. Her kayıt
ayarın değerini, değerin ne anlama geldiğini ve varsayılanı zayıflatıp zayıflatmadığını içerir: yani bir
korumayı veya kanıt kaynağını kapatıp kapatmadığını ya da onu güncel Windows'un (10 ve 11) bu değer
olmadan yaptığının altına düşürüp düşürmediğini.
En iyi sonuç: kovan kaydedildiğinde bu ayar bu değere sahipti ve anahtar en son bu zamanda yazıldı. Zayıflatılmış bir ayar bir ipucudur, ele geçirilmenin kanıtı değildir. Yöneticiler, Grup İlkesi, diğer güvenlik ürünleri ve eski Windows sürümleri de bu değerlerin bazılarını ayarlar; bu durum yaygın olduğunda anlam alanı bunu belirtir.
Konum¶
C:\Windows\System32\config\SOFTWARE
Microsoft\Windows Defender[\Real-Time Protection|\Features|\Spynet]
Microsoft\Windows Defender\Exclusions\Paths|Extensions|Processes|IpAddresses|TemporaryPaths
Policies\Microsoft\Windows Defender\…
Microsoft\Windows\CurrentVersion\Policies\System UAC
Policies\Microsoft\Windows NT\Terminal Services RDP policy
Policies\Microsoft\WindowsFirewall\<profile> firewall policy
Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell ExecutionPolicy
Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging|ModuleLogging|Transcription
Microsoft\AMSI\Providers\{CLSID}
Microsoft\Windows NT\CurrentVersion\SystemRestore DisableSR
Microsoft\Windows\CurrentVersion\WINEVT\Channels\<channel> Enabled, MaxSize
C:\Windows\System32\config\SYSTEM (ControlSet00N\…)
Control\SecurityProviders\WDigest UseLogonCredential
Control\Lsa RunAsPPL, LsaCfgFlags, DisableRestrictedAdmin, LmCompatibilityLevel
Control\Terminal Server[\WinStations\RDP-Tcp] fDenyTSConnections, PortNumber, UserAuthentication
Services\SharedAccess\Parameters\FirewallPolicy\<profile> EnableFirewall
Services\LanmanServer\Parameters SMB1
Control\FileSystem NtfsDisableLastAccessUpdate
Services\EventLog\<log> MaxSize
C:\Users\<user>\NTUSER.DAT
Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell ExecutionPolicy
Software\Policies\Microsoft\Windows\PowerShell\…
Software\Microsoft\Windows Script\Settings AmsiEnable
Üç kovanın tamamını işlem günlükleriyle birlikte toplayın. Toplamadan kısa süre önce değiştirilen bir ayar yalnızca günlüklerde bulunabilir.
Analist için uyarılar¶
- Saklanan yapılandırma, etkin koruma durumu değildir. Toplanan kayıt defteri değerleri ve hasarlı değer listeleri için tanılama satırları
raporlanır. Eksik veriler varsayılanları, toplanmamış kaynakları veya başka bir yönetim
mekanizmasını yansıtabilir; korumanın etkin veya devre dışı olduğunun kanıtı değildir.
WeakensDefault, uygulandıklarında belirtilen temel düzeyi düşürebilecek ayarları işaretler. - Eski Defender bayrakları yok sayılabilir.
DisableAntiSpywareveDisableAntivirus, Defender'ın durduğunu kanıtlamaz. Uygulanabilirlik platform sürümüne, eklemeye (onboarding) ve kurcalama korumasına (tamper protection) bağlıdır. Microsoft bu eski ayarları açıklar. - Modern yönetilen dışlamalar kayıt defteri yakalamalarında bulunmayabilir. Platform 4.18.25110.6 sürümünden itibaren, Defender for Endpoint yapılandırma yönetimini kullanan aygıtlar, dışlama yapılandırmasını almak için desteklenen Defender PowerShell cmdlet'lerini gerektirir. Bu nedenle çevrimdışı kayıt defterinde bulunmaması, dışlama olmadığını göstermez. Microsoft yapılandırma kılavuzu.
- Zayıflatılmış, kötü amaçlı demek değildir. Örnekler:
DisableAntiSpyware= 1, başka bir antivirüs kayıtlıyken Windows tarafından da ayarlanır.- Uzak Masaüstü sunucularda bilinçli olarak açılır.
- Windows 7 daha küçük olay günlükleri tutardı ve son erişim zamanlarını güncellemezdi.
- Varsayılanlar sürüme bağlıdır. Bazı değerler eskiden varsayılandı:
NtfsDisableLastAccessUpdate= 1, Windows 10 1803'ten önce varsayılandı. Bir hüküm olmadan raporlanır; ancak daha sonraki bir sürümde elle ayarlanan0x80000001zayıflatılmış sayılır.RunAsPPL,LsaCfgFlagsveUseLogonCredentialgüncel Windows ile karşılaştırılır.- Defender dışlamaları: her yol, uzantı, işlem veya adres bir kayıttır. Her dışlama
Defender'ı zayıflatır. Defender'ın kendisinin eklediği
TemporaryPathsiçin hüküm verilmez. Kullanıcının yazabildiği klasörleri,.ps1/.exeuzantılarını ve LOLBin'leri (rundll32.exe,powershell.exe) arayın. - İlke anahtarları (
Policy= True) Grup İlkesi, araçlar ve ilkelerin yerel ayarlara üstün geldiğini bilen saldırganlar tarafından yazılır. Bunları etki alanının GPO'larıyla ilişkilendirin. - Olay günlüğü kanalları: yalnızca güvenlikle ilgili 25 kanal, Windows'un her birini varsayılan olarak
açıp açmadığı bilgisiyle birlikte raporlanır. Örneğin
TaskScheduler/OperationalveDNS-Client/Operationalvarsayılan olarak kapalıdır. Diğerleri içinparse-registry readkullanın. - Anahtar zamanları:
KeyLastWrittenUTCanahtara aittir; bu nedenle bu değerin değiştiği zaman olmak zorunda değildir. BirPoliciesanahtarının tamamının tek seferde yazılması yaygındır. - Denetim kümeleri: varsayılan olarak Windows'un en son kullandığı denetim kümesi okunur.
--all-control-setstümünü okur.
Juntei ile ayrıştırma¶
Usage: juntei parse-registry security-settings <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SOFTWARE, SYSTEM and NTUSER.DAT hives
-f, --file <FILE> Parse one hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Filtering:
--all-control-sets Every control set, not only the one in use
--weakened-only Only settings that weaken the default
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry security-settings -d evidence/ -o settings.csv
juntei parse-registry security-settings --weakened-only -d evidence/ -t jsonl \
| jq -r '[.Host, .Area, .KeyPath, .ValueName, .Value, .Meaning] | @tsv'
Özet, ayarları alana göre sayar. Varsayılanı zayıflatan ayarları ve tüm Defender dışlamalarını listeler.
Çıktı alanları¶
| Alan | Yorumlama |
|---|---|
Host, SourcePath, HiveType |
Ana bilgisayar, kovan ve türü (SOFTWARE, SYSTEM, NTUSER.DAT). |
ControlSet, IsCurrentControlSet |
SYSTEM için: denetim kümesi ve Windows'un en son kullandığı küme olup olmadığı; Select\Current eksik veya geçersiz olduğunda bilinmez. |
User, UserSID |
NTUSER.DAT için: profil klasörünün adı ve sistemin ProfileList verisinden kullanıcının SID'i. |
Area |
defender, uac, credentials, remote_access, network, powershell, evidence. |
Setting |
Ayarın ne olduğu: defender_disable_realtime_monitoring, defender_exclusion_path, uac_local_account_token_filter_policy, wdigest_use_logon_credential, rdp_deny_connections, powershell_script_block_logging, event_channel_enabled, … |
Value |
Değer: ondalık bir sayı, bir dize veya dışlamanın kendisi. Değer ayarın türünde değilse boştur. |
Meaning |
Değerin ne anlama geldiği. |
WeakensDefault |
Değer, güncel Windows'un o değer olmadan yaptığını zayıflatıyorsa True, zayıflatmıyorsa False; bu uygulanamıyorsa (bir boyut, bir bağlantı noktası, bir AMSI sağlayıcısı) veya belirlenemiyorsa boş. |
Policy |
Anahtarın bir Policies anahtarı altında olup olmadığı. |
KeyPath, ValueName |
Anahtar ve değer. Bir dışlamanın değer adı dışlanan öğedir; bir AMSI sağlayıcısının değer adı yoktur. |
KeyLastWrittenUTC |
Anahtarın son yazılma zamanı. |
DataRaw |
Ayarın türünde olmadığında değerin baytları (onaltılık). |
TransactionLogStatus, LogsApplied |
Kayıt defteri kurtarma bağlamı. |
Problems |
Yanlış türdeki değerler ve okunamayan anahtarlar. |
İnceleme stratejisi¶
- Her ana bilgisayarda
--weakened-onlyile çalıştırın ve ana bilgisayarları birbiriyle karşılaştırın: yalnızca tek bir ana bilgisayarda bulunan bir ayar dikkat çeker. - Her Defender dışlamasını ana bilgisayarda ve Defender günlüklerinde bulunan araçlarla karşılaştırın (Olay 5007 yapılandırma değişikliklerini kaydeder).
- Anahtar zamanlarını oturum açmalar, hizmet yüklemeleri ve işlem oluşturma ile ilişkilendirin.
reg.exe,Set-MpPreference,netsh advfirewallvepowershellkomut satırlarını arayın (olay 4688, Sysmon 1 ve 13, PowerShell 4104). - Kimlik bilgisi ayarları (
WDigest,RunAsPPL,LocalAccountTokenFilterPolicy,DisableRestrictedAdmin) için sonrasında gerçekleşen kimlik bilgisi dökümü ve pass-the-hash etkinliklerini arayın. - Bir varsayılanı geri yüklemek için silinen değerler için
parse-registry read --recover-deleted, eski denetim kümeleri için--all-control-setskullanın.
Daha fazla ayrıntı¶
- Microsoft: Microsoft Defender Virüsten Koruma için dışlamaları yapılandırma ve doğrulama
- Microsoft: Kullanıcı Hesabı Denetimi ayarları ve yapılandırması
- Microsoft: Ek LSA korumasını yapılandırma
- Microsoft: about_Logging_Windows
- MITRE ATT&CK T1562.001: Impair Defenses: Disable or Modify Tools
- ys-registry-parser