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