mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/network-services-pentesting/pentesting-web/electron-des
This commit is contained in:
		
							parent
							
								
									08857072dc
								
							
						
					
					
						commit
						cc62f535fa
					
				@ -37,9 +37,9 @@ Le impostazioni del **renderer process** possono essere **configurate** nel **ma
 | 
			
		||||
L'applicazione electron **potrebbe accedere al dispositivo** tramite le API di Node, anche se può essere configurata per prevenirlo:
 | 
			
		||||
 | 
			
		||||
- **`nodeIntegration`** - è `off` per impostazione predefinita. Se attivato, consente di accedere alle funzionalità di Node dal renderer process.
 | 
			
		||||
- **`contextIsolation`** - è `on` per impostazione predefinita. Se disattivato, i processi main e renderer non sono isolati.
 | 
			
		||||
- **`contextIsolation`** - è `on` per impostazione predefinita. Se disattivato, i processi principale e renderer non sono isolati.
 | 
			
		||||
- **`preload`** - vuoto per impostazione predefinita.
 | 
			
		||||
- [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - è disattivato per impostazione predefinita. Restriggerà le azioni che NodeJS può eseguire.
 | 
			
		||||
- [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - è disattivato per impostazione predefinita. Restringerà le azioni che NodeJS può eseguire.
 | 
			
		||||
- Integrazione di Node nei Workers
 | 
			
		||||
- **`nodeIntegrationInSubframes`** - è `off` per impostazione predefinita.
 | 
			
		||||
- Se **`nodeIntegration`** è **abilitato**, questo consentirebbe l'uso delle **API di Node.js** nelle pagine web che sono **caricate in iframe** all'interno di un'applicazione Electron.
 | 
			
		||||
@ -123,7 +123,7 @@ top.require("child_process").exec("open /System/Applications/Calculator.app")
 | 
			
		||||
 | 
			
		||||
## RCE: preload
 | 
			
		||||
 | 
			
		||||
Lo script indicato in questa impostazione è l**oaded prima di altri script nel renderer**, quindi ha **accesso illimitato alle API di Node**:
 | 
			
		||||
Lo script indicato in questa impostazione è l**oaded before other scripts in the renderer**, quindi ha **unlimited access to Node APIs**:
 | 
			
		||||
```javascript
 | 
			
		||||
new BrowserWindow{
 | 
			
		||||
webPreferences: {
 | 
			
		||||
@ -224,7 +224,7 @@ window.open(
 | 
			
		||||
)
 | 
			
		||||
</script>
 | 
			
		||||
```
 | 
			
		||||
## Lettura di File Interni: XSS + contextIsolation
 | 
			
		||||
## Lettura di file interni: XSS + contextIsolation
 | 
			
		||||
 | 
			
		||||
**Disabilitare `contextIsolation` consente l'uso di `<webview>` tags**, simile a `<iframe>`, per leggere ed esfiltrare file locali. Un esempio fornito dimostra come sfruttare questa vulnerabilità per leggere il contenuto di file interni:
 | 
			
		||||
 | 
			
		||||
@ -270,7 +270,7 @@ window.open("<http://subdomainagoogleq.com/index.html>")
 | 
			
		||||
```
 | 
			
		||||
## Modulo remoto
 | 
			
		||||
 | 
			
		||||
Il modulo Remote di Electron consente ai **processi di rendering di accedere alle API del processo principale**, facilitando la comunicazione all'interno di un'applicazione Electron. Tuttavia, abilitare questo modulo introduce rischi significativi per la sicurezza. Espande la superficie di attacco dell'applicazione, rendendola più suscettibile a vulnerabilità come gli attacchi di cross-site scripting (XSS).
 | 
			
		||||
Il modulo Remote di Electron consente ai **processi di rendering di accedere alle API del processo principale**, facilitando la comunicazione all'interno di un'applicazione Electron. Tuttavia, abilitare questo modulo introduce rischi significativi per la sicurezza. Espande la superficie di attacco dell'applicazione, rendendola più suscettibile a vulnerabilità come attacchi di cross-site scripting (XSS).
 | 
			
		||||
 | 
			
		||||
> [!TIP]
 | 
			
		||||
> Anche se il modulo **remote** espone alcune API dal principale ai processi di rendering, non è semplice ottenere RCE solo abusando dei componenti. Tuttavia, i componenti potrebbero esporre informazioni sensibili.
 | 
			
		||||
@ -295,7 +295,7 @@ Quindi, il processo di rendering può importare oggetti dal modulo come:
 | 
			
		||||
```javascript
 | 
			
		||||
import { dialog, getCurrentWindow } from '@electron/remote'
 | 
			
		||||
```
 | 
			
		||||
Il **[post del blog](https://blog.doyensec.com/2021/02/16/electron-apis-misuse.html)** indica alcune interessanti **funzioni** esposte dall'oggetto **`app`** del modulo remoto:
 | 
			
		||||
Il **[blog post](https://blog.doyensec.com/2021/02/16/electron-apis-misuse.html)** indica alcune interessanti **funzioni** esposte dall'oggetto **`app`** del modulo remoto:
 | 
			
		||||
 | 
			
		||||
- **`app.relaunch([options])`**
 | 
			
		||||
- **Riavvia** l'applicazione **uscendo** dall'istanza corrente e **lanciando** una nuova. Utile per **aggiornamenti dell'app** o significativi **cambiamenti di stato**.
 | 
			
		||||
@ -342,7 +342,7 @@ console.log('Recent Places:', recentPlaces);
 | 
			
		||||
 | 
			
		||||
### **getUserDefault / setUserDefault**
 | 
			
		||||
 | 
			
		||||
* **Interfaccia** con **NSUserDefaults**, che memorizza le **preferenze** dell'**applicazione** o **globali** su macOS.
 | 
			
		||||
* **Interagisce** con **NSUserDefaults**, che memorizza le **preferenze** dell'**applicazione** o **globali** su macOS.
 | 
			
		||||
 | 
			
		||||
* **getUserDefault** può **recuperare** informazioni sensibili, come **posizioni di file recenti** o **posizione geografica dell'utente**.
 | 
			
		||||
 | 
			
		||||
@ -367,7 +367,7 @@ Per ulteriori informazioni controlla [https://blog.doyensec.com/2021/02/16/elect
 | 
			
		||||
 | 
			
		||||
In [https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s](https://www.youtube.com/watch?v=xILfQGkLXQo&t=22s) puoi trovare un laboratorio per sfruttare app Electron vulnerabili.
 | 
			
		||||
 | 
			
		||||
Al alcuni comandi che ti aiuteranno con il laboratorio:
 | 
			
		||||
Alcuni comandi che ti aiuteranno con il laboratorio:
 | 
			
		||||
```bash
 | 
			
		||||
# Download apps from these URls
 | 
			
		||||
# Vuln to nodeIntegration
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user