mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/windows-hardening/windows-local-privilege-escalation/RE
This commit is contained in:
parent
142650093c
commit
4516c13c27
@ -16,7 +16,7 @@ access-tokens.md
|
||||
|
||||
### ACL - DACL/SACL/ACE
|
||||
|
||||
**Controlla la seguente pagina per ulteriori informazioni su ACL - DACL/SACL/ACE:**
|
||||
**Controlla la seguente pagina per ulteriori informazioni sulle ACL - DACL/SACL/ACE:**
|
||||
|
||||
{{#ref}}
|
||||
acls-dacls-sacls-aces.md
|
||||
@ -57,21 +57,21 @@ Get-Hotfix -description "Security update" #List only "Security Update" patches
|
||||
```
|
||||
### Version Exploits
|
||||
|
||||
Questo [sito](https://msrc.microsoft.com/update-guide/vulnerability) è utile per cercare informazioni dettagliate sulle vulnerabilità di sicurezza di Microsoft. Questo database ha più di 4.700 vulnerabilità di sicurezza, mostrando la **massiccia superficie di attacco** che un ambiente Windows presenta.
|
||||
Questo [sito](https://msrc.microsoft.com/update-guide/vulnerability) è utile per cercare informazioni dettagliate sulle vulnerabilità di sicurezza di Microsoft. Questo database ha più di 4.700 vulnerabilità di sicurezza, mostrando la **massive attack surface** che un ambiente Windows presenta.
|
||||
|
||||
**Sul sistema**
|
||||
**On the system**
|
||||
|
||||
- _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 ha watson integrato)_
|
||||
|
||||
**Localmente con informazioni di sistema**
|
||||
**Locally with system information**
|
||||
|
||||
- [https://github.com/AonCyberLabs/Windows-Exploit-Suggester](https://github.com/AonCyberLabs/Windows-Exploit-Suggester)
|
||||
- [https://github.com/bitsadmin/wesng](https://github.com/bitsadmin/wesng)
|
||||
|
||||
**Repo Github di exploit:**
|
||||
**Github repos of 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)
|
||||
@ -79,7 +79,7 @@ Questo [sito](https://msrc.microsoft.com/update-guide/vulnerability) è utile pe
|
||||
|
||||
### Environment
|
||||
|
||||
Qualsiasi informazione di credenziali/juicy salvata nelle variabili di ambiente?
|
||||
Qualsiasi credenziale/informazione sensibile salvata nelle variabili di ambiente?
|
||||
```bash
|
||||
set
|
||||
dir env:
|
||||
@ -135,7 +135,7 @@ reg query HKCU\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\Script
|
||||
reg query HKLM\Wow6432Node\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging
|
||||
```
|
||||
Gli eventi di registrazione per il Script Block possono essere trovati all'interno di Windows Event Viewer al percorso: **Application and Services Logs > Microsoft > Windows > PowerShell > Operational**.\
|
||||
Per visualizzare gli ultimi 20 eventi puoi usare:
|
||||
Per visualizzare gli ultimi 20 eventi, puoi usare:
|
||||
```bash
|
||||
Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview
|
||||
```
|
||||
@ -154,18 +154,31 @@ Get-PSDrive | where {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}|
|
||||
|
||||
Puoi compromettere il sistema se gli aggiornamenti non vengono richiesti utilizzando http**S** ma http.
|
||||
|
||||
Inizi controllando se la rete utilizza un aggiornamento WSUS non SSL eseguendo il seguente:
|
||||
Inizi controllando se la rete utilizza un aggiornamento WSUS non SSL eseguendo il seguente comando in cmd:
|
||||
```
|
||||
reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer
|
||||
```
|
||||
Se ricevi una risposta come:
|
||||
O il seguente in PowerShell:
|
||||
```
|
||||
Get-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate -Name "WUServer"
|
||||
```
|
||||
Se ricevi una risposta come una di queste:
|
||||
```bash
|
||||
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
|
||||
WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535
|
||||
```
|
||||
E se `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` è uguale a `1`.
|
||||
|
||||
Allora, **è sfruttabile.** Se l'ultimo registro è uguale a 0, l'entry WSUS sarà ignorata.
|
||||
```bash
|
||||
WUServer : http://xxxx-updxx.corp.internal.com:8530
|
||||
PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\policies\microsoft\windows\windowsupdate
|
||||
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\software\policies\microsoft\windows
|
||||
PSChildName : windowsupdate
|
||||
PSDrive : HKLM
|
||||
PSProvider : Microsoft.PowerShell.Core\Registry
|
||||
```
|
||||
E se `HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer` o `Get-ItemProperty -Path hklm:\software\policies\microsoft\windows\windowsupdate\au -name "usewuserver"` è uguale a `1`.
|
||||
|
||||
Allora, **è sfruttabile.** Se l'ultimo registro è uguale a 0, allora, l'entry WSUS sarà ignorata.
|
||||
|
||||
Per sfruttare queste vulnerabilità puoi usare strumenti come: [Wsuxploit](https://github.com/pimps/wsuxploit), [pyWSUS ](https://github.com/GoSecure/pywsus)- Questi sono script di exploit MiTM armati per iniettare aggiornamenti 'falsi' nel traffico WSUS non SSL.
|
||||
|
||||
@ -184,7 +197,7 @@ Fondamentalmente, questo è il difetto che questo bug sfrutta:
|
||||
>
|
||||
> Inoltre, poiché il servizio WSUS utilizza le impostazioni dell'utente corrente, utilizzerà anche il suo archivio certificati. Se generiamo un certificato autofirmato per il nome host WSUS e aggiungiamo questo certificato nell'archivio certificati dell'utente corrente, saremo in grado di intercettare sia il traffico WSUS HTTP che HTTPS. WSUS non utilizza meccanismi simili a HSTS per implementare una validazione di tipo trust-on-first-use sul certificato. Se il certificato presentato è fidato dall'utente e ha il nome host corretto, sarà accettato dal servizio.
|
||||
|
||||
Puoi sfruttare questa vulnerabilità utilizzando lo strumento [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (una volta che è stato liberato).
|
||||
Puoi sfruttare questa vulnerabilità utilizzando lo strumento [**WSUSpicious**](https://github.com/GoSecure/wsuspicious) (una volta liberato).
|
||||
|
||||
## KrbRelayUp
|
||||
|
||||
@ -234,15 +247,15 @@ create-msi-with-wix.md
|
||||
|
||||
- **Genera** con Cobalt Strike o Metasploit un **nuovo payload TCP EXE Windows** in `C:\privesc\beacon.exe`
|
||||
- Apri **Visual Studio**, seleziona **Crea un nuovo progetto** e digita "installer" nella casella di ricerca. Seleziona il progetto **Setup Wizard** e clicca su **Avanti**.
|
||||
- Dai al progetto un nome, come **AlwaysPrivesc**, usa **`C:\privesc`** per la posizione, seleziona **posiziona soluzione e progetto nella stessa directory**, e clicca su **Crea**.
|
||||
- Dai un nome al progetto, come **AlwaysPrivesc**, usa **`C:\privesc`** per la posizione, seleziona **posiziona soluzione e progetto nella stessa directory**, e clicca su **Crea**.
|
||||
- Continua a cliccare su **Avanti** fino a raggiungere il passo 3 di 4 (scegli i file da includere). Clicca su **Aggiungi** e seleziona il payload Beacon che hai appena generato. Poi clicca su **Fine**.
|
||||
- Evidenzia il progetto **AlwaysPrivesc** nell'**Esplora Soluzioni** e nelle **Proprietà**, cambia **TargetPlatform** da **x86** a **x64**.
|
||||
- Evidenzia il progetto **AlwaysPrivesc** nell'**Esplora soluzioni** e nelle **Proprietà**, cambia **TargetPlatform** da **x86** a **x64**.
|
||||
- Ci sono altre proprietà che puoi cambiare, come **Autore** e **Produttore** che possono far sembrare l'app installata più legittima.
|
||||
- Fai clic destro sul progetto e seleziona **Visualizza > Azioni personalizzate**.
|
||||
- Fai clic destro su **Installa** e seleziona **Aggiungi azione personalizzata**.
|
||||
- Fai doppio clic su **Cartella dell'applicazione**, seleziona il tuo file **beacon.exe** e clicca su **OK**. Questo garantirà che il payload beacon venga eseguito non appena l'installer viene avviato.
|
||||
- Sotto le **Proprietà dell'azione personalizzata**, cambia **Run64Bit** in **True**.
|
||||
- Infine, **compilalo**.
|
||||
- Infine, **compila**.
|
||||
- Se viene mostrato l'avviso `File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'`, assicurati di impostare la piattaforma su x64.
|
||||
|
||||
### Installazione MSI
|
||||
@ -291,7 +304,7 @@ reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL
|
||||
```
|
||||
### Credentials Guard
|
||||
|
||||
**Credential Guard** è stato introdotto in **Windows 10**. Il suo scopo è proteggere le credenziali memorizzate su un dispositivo contro minacce come gli attacchi pass-the-hash.| [**Maggiore info su Credentials Guard qui.**](../stealing-credentials/credentials-protections.md#credential-guard)
|
||||
**Credential Guard** è stato introdotto in **Windows 10**. Il suo scopo è proteggere le credenziali memorizzate su un dispositivo contro minacce come gli attacchi pass-the-hash.| [**More info about Credentials Guard here.**](../stealing-credentials/credentials-protections.md#credential-guard)
|
||||
```bash
|
||||
reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags
|
||||
```
|
||||
@ -332,7 +345,7 @@ Se **appartieni a un gruppo privilegiato, potresti essere in grado di elevare i
|
||||
### Manipolazione dei token
|
||||
|
||||
**Scopri di più** su cosa sia un **token** in questa pagina: [**Windows Tokens**](../authentication-credentials-uac-and-efs/index.html#access-tokens).\
|
||||
Controlla la seguente pagina per **scoprire token interessanti** e come abusarne:
|
||||
Controlla la pagina seguente per **scoprire token interessanti** e come abusarne:
|
||||
|
||||
{{#ref}}
|
||||
privilege-escalation-abusing-tokens.md
|
||||
@ -393,15 +406,15 @@ todos %username%" && echo.
|
||||
```
|
||||
### Estrazione password dalla memoria
|
||||
|
||||
Puoi creare un dump della memoria di un processo in esecuzione utilizzando **procdump** di sysinternals. Servizi come FTP hanno le **credenziali in chiaro nella memoria**, prova a eseguire il dump della memoria e leggere le credenziali.
|
||||
Puoi creare un dump della memoria di un processo in esecuzione utilizzando **procdump** di sysinternals. Servizi come FTP hanno le **credenziali in chiaro nella memoria**, prova a dumpare la memoria e leggere le credenziali.
|
||||
```bash
|
||||
procdump.exe -accepteula -ma <proc_name_tasklist>
|
||||
```
|
||||
### Insecure GUI apps
|
||||
|
||||
**Le applicazioni che girano come SYSTEM possono consentire a un utente di avviare un CMD o navigare tra le directory.**
|
||||
**Le applicazioni in esecuzione come SYSTEM possono consentire a un utente di avviare un CMD o navigare tra le directory.**
|
||||
|
||||
Esempio: "Windows Help and Support" (Windows + F1), cerca "command prompt", clicca su "Click to open Command Prompt"
|
||||
Esempio: "Windows Help and Support" (Windows + F1), cerca "command prompt", fai clic su "Click to open Command Prompt"
|
||||
|
||||
## Services
|
||||
|
||||
@ -472,7 +485,7 @@ I privilegi possono essere elevati attraverso vari permessi:
|
||||
- **GENERIC_WRITE**: Eredita anche la capacità di modificare le configurazioni del servizio.
|
||||
- **GENERIC_ALL**: Eredita anch'essa la capacità di modificare le configurazioni del servizio.
|
||||
|
||||
Per la rilevazione e lo sfruttamento di questa vulnerabilità, si può utilizzare _exploit/windows/local/service_permissions_.
|
||||
Per la rilevazione e lo sfruttamento di questa vulnerabilità, si può utilizzare il _exploit/windows/local/service_permissions_.
|
||||
|
||||
### Permessi deboli dei binari dei servizi
|
||||
|
||||
@ -489,10 +502,10 @@ sc query state= all | findstr "SERVICE_NAME:" >> C:\Temp\Servicenames.txt
|
||||
FOR /F "tokens=2 delims= " %i in (C:\Temp\Servicenames.txt) DO @echo %i >> C:\Temp\services.txt
|
||||
FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> C:\Temp\path.txt
|
||||
```
|
||||
### Modifica delle autorizzazioni del registro dei servizi
|
||||
### Servizi modifica permessi del registro
|
||||
|
||||
Dovresti controllare se puoi modificare qualche registro di servizio.\
|
||||
Puoi **controllare** le tue **autorizzazioni** su un **registro** di servizio eseguendo:
|
||||
Puoi **controllare** i tuoi **permessi** su un **registro** di servizio facendo:
|
||||
```bash
|
||||
reg query hklm\System\CurrentControlSet\Services /s /v imagepath #Get the binary paths of the services
|
||||
|
||||
@ -595,7 +608,7 @@ Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Ac
|
||||
```
|
||||
### Esegui all'avvio
|
||||
|
||||
**Controlla se puoi sovrascrivere qualche registro o binario che verrà eseguito da un utente diverso.**\
|
||||
**Controlla se puoi sovrascrivere qualche registro o binario che verrà eseguito da un altro utente.**\
|
||||
**Leggi** la **seguente pagina** per saperne di più su interessanti **posizioni di autorun per escalare i privilegi**:
|
||||
|
||||
{{#ref}}
|
||||
@ -604,7 +617,7 @@ privilege-escalation-with-autorun-binaries.md
|
||||
|
||||
### Driver
|
||||
|
||||
Cerca possibili driver **di terze parti strani/vulnerabili**.
|
||||
Cerca possibili driver **di terze parti strani/vulnerabili**
|
||||
```bash
|
||||
driverquery
|
||||
driverquery.exe /fo table
|
||||
@ -640,7 +653,7 @@ Controlla altri computer noti hardcoded nel file hosts
|
||||
```
|
||||
type C:\Windows\System32\drivers\etc\hosts
|
||||
```
|
||||
### Interfacce di Rete & DNS
|
||||
### Interfacce di rete e DNS
|
||||
```
|
||||
ipconfig /all
|
||||
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
|
||||
@ -662,7 +675,7 @@ Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIn
|
||||
arp -A
|
||||
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L
|
||||
```
|
||||
### Firewall Rules
|
||||
### Regole del Firewall
|
||||
|
||||
[**Controlla questa pagina per i comandi relativi al Firewall**](../basic-cmd-for-pentesters.md#firewall) **(elenca regole, crea regole, disattiva, disattiva...)**
|
||||
|
||||
@ -709,7 +722,7 @@ Il Vault di Windows memorizza le credenziali che Windows può utilizzare per acc
|
||||
|
||||
A meno che le applicazioni non interagiscano con il Gestore delle credenziali, non penso sia possibile per loro utilizzare le credenziali per una data risorsa. Quindi, se la tua applicazione desidera utilizzare il vault, dovrebbe in qualche modo **comunicare con il gestore delle credenziali e richiedere le credenziali per quella risorsa** dal vault di archiviazione predefinito.
|
||||
|
||||
Usa il `cmdkey` per elencare le credenziali memorizzate sulla macchina.
|
||||
Usa `cmdkey` per elencare le credenziali memorizzate sulla macchina.
|
||||
```bash
|
||||
cmdkey /list
|
||||
Currently stored credentials:
|
||||
@ -740,7 +753,7 @@ Get-ChildItem C:\Users\USER\AppData\Local\Microsoft\Protect\
|
||||
```
|
||||
Puoi usare il **modulo mimikatz** `dpapi::masterkey` con gli argomenti appropriati (`/pvk` o `/rpc`) per decrittarlo.
|
||||
|
||||
I **file delle credenziali protetti dalla password principale** si trovano solitamente in:
|
||||
I **file di credenziali protetti dalla password principale** si trovano solitamente in:
|
||||
```powershell
|
||||
dir C:\Users\username\AppData\Local\Microsoft\Credentials\
|
||||
dir C:\Users\username\AppData\Roaming\Microsoft\Credentials\
|
||||
@ -756,9 +769,9 @@ dpapi-extracting-passwords.md
|
||||
|
||||
### Credenziali PowerShell
|
||||
|
||||
Le **credenziali PowerShell** sono spesso utilizzate per **scripting** e compiti di automazione come un modo per memorizzare comodamente credenziali criptate. Le credenziali sono protette usando **DPAPI**, il che significa tipicamente che possono essere decriptate solo dallo stesso utente sullo stesso computer su cui sono state create.
|
||||
Le **credenziali PowerShell** sono spesso utilizzate per **scripting** e compiti di automazione come un modo per memorizzare comodamente credenziali criptate. Le credenziali sono protette usando **DPAPI**, il che significa che possono essere decriptate solo dallo stesso utente sullo stesso computer su cui sono state create.
|
||||
|
||||
Per **decriptare** una credenziale PS dal file che la contiene puoi fare:
|
||||
Per **decriptare** una credenziale PS dal file che la contiene, puoi fare:
|
||||
```powershell
|
||||
PS C:\> $credential = Import-Clixml -Path 'C:\pass.xml'
|
||||
PS C:\> $credential.GetNetworkCredential().username
|
||||
@ -788,7 +801,7 @@ e in `HKCU\Software\Microsoft\Terminal Server Client\Servers\`
|
||||
HCU\<SID>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
|
||||
HKCU\<SID>\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
|
||||
```
|
||||
### **Gestore delle credenziali di Desktop Remoto**
|
||||
### **Gestore delle credenziali di Desktop remoto**
|
||||
```
|
||||
%localappdata%\Microsoft\Remote Desktop Connection Manager\RDCMan.settings
|
||||
```
|
||||
@ -886,13 +899,13 @@ $ErrorActionPreference = $OrigError
|
||||
### SCClient / SCCM
|
||||
|
||||
Controlla se `C:\Windows\CCM\SCClient.exe` esiste .\
|
||||
Gli installer vengono **eseguiti con privilegi di SYSTEM**, molti sono vulnerabili a **DLL Sideloading (Info da** [**https://github.com/enjoiz/Privesc**](https://github.com/enjoiz/Privesc)**).**
|
||||
Gli installer vengono **eseguiti con privilegi SYSTEM**, molti sono vulnerabili a **DLL Sideloading (Info da** [**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." }
|
||||
```
|
||||
## Files and Registry (Credenziali)
|
||||
## File e Registro (Credenziali)
|
||||
|
||||
### Credenziali Putty
|
||||
```bash
|
||||
@ -1000,7 +1013,7 @@ Utilizzando crackmapexec per ottenere le password:
|
||||
```bash
|
||||
crackmapexec smb 10.10.10.10 -u username -p pwd -M gpp_autologin
|
||||
```
|
||||
### Configurazione Web IIS
|
||||
### IIS Web Config
|
||||
```powershell
|
||||
Get-Childitem –Path C:\inetpub\ -Include web.config -File -Recurse -ErrorAction SilentlyContinue
|
||||
```
|
||||
@ -1052,7 +1065,7 @@ C:\inetpub\logs\LogFiles\*
|
||||
#Apache
|
||||
Get-Childitem –Path C:\ -Include access.log,error.log -File -Recurse -ErrorAction SilentlyContinue
|
||||
```
|
||||
### Chiedere le credenziali
|
||||
### Chiedere credenziali
|
||||
|
||||
Puoi sempre **chiedere all'utente di inserire le sue credenziali o anche le credenziali di un altro utente** se pensi che possa conoscerle (nota che **chiedere** direttamente al cliente le **credenziali** è davvero **rischioso**):
|
||||
```bash
|
||||
@ -1064,7 +1077,7 @@ $cred.GetNetworkCredential() | fl
|
||||
```
|
||||
### **Possibili nomi di file contenenti credenziali**
|
||||
|
||||
File noti che qualche tempo fa contenevano **password** in **chiaro** o **Base64**
|
||||
File noti che tempo fa contenevano **password** in **chiaro** o **Base64**
|
||||
```bash
|
||||
$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history
|
||||
vnc.ini, ultravnc.ini, *vnc*
|
||||
@ -1198,7 +1211,7 @@ dir /S /B *pass*.txt == *pass*.xml == *pass*.ini == *cred* == *vnc* == *.config*
|
||||
where /R C:\ user.txt
|
||||
where /R C:\ *.ini
|
||||
```
|
||||
**Cerca nel registro i nomi delle chiavi e le password**
|
||||
**Cerca nel registro chiavi e nomi utente**
|
||||
```bash
|
||||
REG QUERY HKLM /F "password" /t REG_SZ /S /K
|
||||
REG QUERY HKCU /F "password" /t REG_SZ /S /K
|
||||
@ -1220,8 +1233,8 @@ Invoke-SessionGopher -AllDomain -u domain.com\adm-arvanaghi -p s3cr3tP@ss
|
||||
```
|
||||
## Leaked Handlers
|
||||
|
||||
Immagina che **un processo in esecuzione come SYSTEM apra un nuovo processo** (`OpenProcess()`) con **accesso completo**. Lo stesso processo **crea anche un nuovo processo** (`CreateProcess()`) **con privilegi bassi ma ereditando tutti i gestori aperti del processo principale**.\
|
||||
Quindi, se hai **accesso completo al processo con privilegi bassi**, puoi afferrare il **gestore aperto al processo privilegiato creato** con `OpenProcess()` e **iniettare un shellcode**.\
|
||||
Immagina che **un processo in esecuzione come SYSTEM apra un nuovo processo** (`OpenProcess()`) con **accesso completo**. Lo stesso processo **crea anche un nuovo processo** (`CreateProcess()`) **con privilegi bassi ma ereditando tutti i handle aperti del processo principale**.\
|
||||
Quindi, se hai **accesso completo al processo con privilegi bassi**, puoi afferrare l'**handle aperto al processo privilegiato creato** con `OpenProcess()` e **iniettare un shellcode**.\
|
||||
[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/).
|
||||
|
||||
@ -1231,7 +1244,7 @@ I segmenti di memoria condivisa, noti come **pipe**, consentono la comunicazione
|
||||
|
||||
Windows fornisce una funzionalità chiamata **Named Pipes**, che consente a processi non correlati di condividere dati, anche su reti diverse. Questo assomiglia a un'architettura client/server, con ruoli definiti come **named pipe server** e **named pipe client**.
|
||||
|
||||
Quando i dati vengono inviati attraverso una pipe da un **client**, il **server** che ha impostato la pipe ha la possibilità di **assumere l'identità** del **client**, a condizione che abbia i diritti necessari **SeImpersonate**. Identificare un **processo privilegiato** che comunica tramite una pipe che puoi imitare offre l'opportunità di **ottenere privilegi più elevati** adottando l'identità di quel processo una volta che interagisce con la pipe che hai stabilito. Per istruzioni su come eseguire un attacco del genere, puoi trovare guide utili [**qui**](named-pipe-client-impersonation.md) e [**qui**](#from-high-integrity-to-system).
|
||||
Quando i dati vengono inviati attraverso una pipe da un **client**, il **server** che ha impostato la pipe ha la possibilità di **assumere l'identità** del **client**, a condizione che abbia i necessari diritti **SeImpersonate**. Identificare un **processo privilegiato** che comunica tramite una pipe che puoi imitare offre l'opportunità di **ottenere privilegi più elevati** adottando l'identità di quel processo una volta che interagisce con la pipe che hai stabilito. Per istruzioni su come eseguire un attacco del genere, puoi trovare guide utili [**qui**](named-pipe-client-impersonation.md) e [**qui**](#from-high-integrity-to-system).
|
||||
|
||||
Inoltre, il seguente strumento consente di **intercettare una comunicazione di named pipe con uno strumento come burp:** [**https://github.com/gabriel-sztejnworcel/pipe-intercept**](https://github.com/gabriel-sztejnworcel/pipe-intercept) **e questo strumento consente di elencare e vedere tutte le pipe per trovare privescs** [**https://github.com/cyberark/PipeViewer**](https://github.com/cyberark/PipeViewer)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user