From 6a6aac1be241028ce8cf59b750f34e97c2eaa67f Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 7 Jan 2025 18:44:11 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-web/electron-des --- .../electron-desktop-apps/README.md | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) 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 444b8ffe4..ef67e9187 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 @@ -2,11 +2,11 @@ {{#include ../../../banners/hacktricks-training.md}} -## Introduction +## Inleiding Electron kombineer 'n plaaslike backend (met **NodeJS**) en 'n frontend (**Chromium**), alhoewel dit sommige van die sekuriteitsmeganismes van moderne blaaiers mis. -Gewoonlik kan jy die electron app kode binne 'n `.asar` toepassing vind, om die kode te verkry moet jy dit onttrek: +Gewoonlik sal jy die electron app kode binne 'n `.asar` toepassing vind, om die kode te verkry moet jy dit onttrek: ```bash npx asar extract app.asar destfolder #Extract everything npx asar extract-file app.asar main.js #Extract just a file @@ -32,18 +32,18 @@ let win = new BrowserWindow() //Open Renderer Process win.loadURL(`file://path/to/index.html`) ``` -Die instellings van die **renderer-proses** kan **gekonfigureer** word in die **hoofproses** binne die main.js-lêer. Sommige van die konfigurasies sal **voorkom dat die Electron-toepassing RCE** of ander kwesbaarhede kry as die **instellings korrek geconfigureer** is. +Die instellings van die **renderer-proses** kan **gekonfigureer** word in die **hoofproses** binne die main.js-lêer. Sommige van die konfigurasies sal **voorkom dat die Electron-toepassing RCE kry** of ander kwesbaarhede as die **instellings korrek geconfigureer is**. -Die electron-toepassing **kan toegang tot die toestel** verkry via Node-apis alhoewel dit geconfigureer kan word om dit te voorkom: +Die electron-toepassing **kan toegang tot die toestel verkry** via Node-apis alhoewel dit geconfigureer kan word om dit te voorkom: -- **`nodeIntegration`** - is `af` per standaard. As dit aan is, laat dit toe om toegang te verkry tot node-funksies vanaf die renderer-proses. -- **`contextIsolation`** - is `aan` per standaard. As dit af is, is hoof- en renderer-prosesse nie geïsoleer nie. +- **`nodeIntegration`** - is `af` per standaard. As aan, laat dit toe om toegang te verkry tot node-funksies vanaf die renderer-proses. +- **`contextIsolation`** - is `aan` per standaard. As af, is hoof- en renderer-prosesse nie geïsoleer nie. - **`preload`** - leeg per standaard. - [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - is af per standaard. Dit sal die aksies wat NodeJS kan uitvoer beperk. - Node Integrasie in Werkers - **`nodeIntegrationInSubframes`** - is `af` per standaard. - As **`nodeIntegration`** **geaktiveer** is, sal dit die gebruik van **Node.js APIs** in webbladsye wat in **iframes** binne 'n Electron-toepassing **gelaai** word, toelaat. -- As **`nodeIntegration`** **gedeaktiveer** is, sal preloads in die iframe gelaai word. +- As **`nodeIntegration`** **gedeaktiveer** is, sal preloads in die iframe laai. Voorbeeld van konfigurasie: ```javascript @@ -101,7 +101,7 @@ Wysig die start-main konfigurasie en voeg die gebruik van 'n proxy soos by: ```javascript "start-main": "electron ./dist/main/main.js --proxy-server=127.0.0.1:8080 --ignore-certificateerrors", ``` -## Electron Plaaslike Kode Inspuiting +## Electron Plaaslike Kode-inspuiting As jy 'n Electron App plaaslik kan uitvoer, is dit moontlik dat jy dit kan laat uitvoer willekeurige javascript kode. Kyk hoe in: @@ -177,13 +177,13 @@ electron-contextisolation-rce-via-ipc.md ### Bypass klik gebeurtenis -As daar beperkings toegepas word wanneer jy op 'n skakel klik, kan jy dalk hulle omseil **deur 'n middelklik** te doen in plaas van 'n gewone linkerklik +As daar beperkings toegepas word wanneer jy op 'n skakel klik, mag jy in staat wees om dit te omseil **deur 'n middelklik** in plaas van 'n gewone linkerklik. ```javascript window.addEventListener('click', (e) => { ``` ## RCE via shell.openExternal -Vir meer inligting oor hierdie voorbeelde, kyk [https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8](https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8) en [https://benjamin-altpeter.de/shell-openexternal-dangers/](https://benjamin-altpeter.de/shell-openexternal-dangers/) +Vir meer inligting oor hierdie voorbeelde, kyk na [https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8](https://shabarkin.medium.com/1-click-rce-in-electron-applications-79b52e1fe8b8) en [https://benjamin-altpeter.de/shell-openexternal-dangers/](https://benjamin-altpeter.de/shell-openexternal-dangers/) Wanneer 'n Electron-desktoptoepassing ontplooi word, is dit van kardinale belang om die korrekte instellings vir `nodeIntegration` en `contextIsolation` te verseker. Dit is gevestig dat **kliënt-kant afstandkode-uitvoering (RCE)** wat op preload-skripte of Electron se inheemse kode van die hoofproses teiken, effektief voorkom word met hierdie instellings in plek. @@ -200,11 +200,11 @@ Hierdie luisteraars word **oorheers deur die lessenaartoepassing** om sy eie **b ![https://miro.medium.com/max/1400/1*ZfgVwT3X1V_UfjcKaAccag.png](<../../../images/image (963).png>) -Electron JS sekuriteitsbeste praktyke raai teen die aanvaarding van onbetroubare inhoud met die `openExternal` funksie, aangesien dit kan lei tot RCE deur verskeie protokolle. Bedryfstelsels ondersteun verskillende protokolle wat RCE kan ontketen. Vir gedetailleerde voorbeelde en verdere verduideliking oor hierdie onderwerp, kan 'n mens na [hierdie hulpbron](https://positive.security/blog/url-open-rce#windows-10-19042) verwys, wat Windows-protokolvoorbeelde insluit wat in staat is om hierdie kwesbaarheid te benut. +Electron JS sekuriteitsbeste praktyke raai teen die aanvaarding van onbetroubare inhoud met die `openExternal` funksie, aangesien dit kan lei tot RCE deur verskeie protokolle. Bedryfstelsels ondersteun verskillende protokolle wat RCE kan ontketen. Vir gedetailleerde voorbeelde en verdere verduideliking oor hierdie onderwerp, kan 'n mens na [hierdie hulpbron](https://positive.security/blog/url-open-rce#windows-10-19042) verwys, wat Windows protokolvoorbeelde insluit wat in staat is om hierdie kwesbaarheid te benut. In macos kan die `openExternal` funksie benut word om arbitrêre opdragte uit te voer soos in `shell.openExternal('file:///System/Applications/Calculator.app')`. -**Voorbeelde van Windows-protokolontploffings sluit in:** +**Voorbeelde van Windows protokol eksploit is:** ```html