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 63736dff8..23b948db3 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 @@ -19,12 +19,12 @@ Electron 앱의 소스 코드에서 `packet.json` 안에 보안 설정이 지정 ``` Electron에는 2가지 프로세스 유형이 있습니다: -- Main Process (NodeJS에 대한 완전한 접근 권한을 가짐) -- Renderer Process (보안상의 이유로 NodeJS 접근 권한이 제한되어야 함) +- 메인 프로세스 (NodeJS에 대한 완전한 접근 권한을 가짐) +- 렌더러 프로세스 (보안상의 이유로 NodeJS 접근 권한이 제한되어야 함) ![](<../../../images/image (182).png>) -**renderer process**는 파일을 로드하는 브라우저 창이 될 것입니다: +**렌더러 프로세스**는 파일을 로드하는 브라우저 창이 될 것입니다: ```javascript const { BrowserWindow } = require("electron") let win = new BrowserWindow() @@ -32,7 +32,7 @@ let win = new BrowserWindow() //Open Renderer Process win.loadURL(`file://path/to/index.html`) ``` -**렌더러 프로세스**의 설정은 **main.js** 파일 내의 **메인 프로세스**에서 **구성**할 수 있습니다. 일부 구성은 **설정이 올바르게 구성된 경우** Electron 애플리케이션이 RCE 또는 기타 취약점에 노출되는 것을 **방지**합니다. +**렌더러 프로세스**의 설정은 **main.js** 파일의 **메인 프로세스**에서 **구성**할 수 있습니다. 일부 구성은 **설정이 올바르게 구성된 경우** Electron 애플리케이션이 RCE 또는 기타 취약점에 노출되는 것을 **방지**합니다. Electron 애플리케이션은 Node API를 통해 **장치에 접근할 수 있지만**, 이를 방지하도록 구성할 수 있습니다: @@ -42,7 +42,7 @@ Electron 애플리케이션은 Node API를 통해 **장치에 접근할 수 있 - [**`sandbox`**](https://docs.w3cub.com/electron/api/sandbox-option) - 기본값은 꺼져 있습니다. NodeJS가 수행할 수 있는 작업을 제한합니다. - 워커에서의 Node 통합 - **`nodeIntegrationInSubframes`** - 기본값은 꺼져 있습니다. -- **`nodeIntegration`**이 **활성화**되면, 이는 Electron 애플리케이션 내의 **iframe에 로드된 웹 페이지에서 Node.js API**를 사용할 수 있게 합니다. +- **`nodeIntegration`**이 **활성화**되면, 이는 Electron 애플리케이션 내의 **iframe**에 로드된 웹 페이지에서 **Node.js API**를 사용할 수 있게 합니다. - **`nodeIntegration`**이 **비활성화**되면, 프리로드는 iframe에서 로드됩니다. 구성 예시: @@ -97,7 +97,7 @@ onerror="alert(require('child_process').execSync('uname -a').toString());" /> ``` ### 트래픽 캡처 -start-main 구성을 수정하고 다음과 같은 프록시 사용을 추가합니다: +start-main 구성을 수정하고 다음과 같은 프록시 사용을 추가하세요: ```javascript "start-main": "electron ./dist/main/main.js --proxy-server=127.0.0.1:8080 --ignore-certificateerrors", ``` @@ -111,7 +111,7 @@ Electron 앱을 로컬에서 실행할 수 있다면 임의의 자바스크립 ## RCE: XSS + nodeIntegration -**nodeIntegration**이 **on**으로 설정되어 있으면, 웹 페이지의 자바스크립트는 `require()`를 호출하기만 하면 Node.js 기능을 쉽게 사용할 수 있습니다. 예를 들어, Windows에서 calc 애플리케이션을 실행하는 방법은 다음과 같습니다: +**nodeIntegration**이 **on**으로 설정되어 있으면, 웹 페이지의 자바스크립트는 `require()`를 호출하는 것만으로도 Node.js 기능을 쉽게 사용할 수 있습니다. 예를 들어, Windows에서 calc 애플리케이션을 실행하는 방법은 다음과 같습니다: ```html