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
19d09e22f0
commit
da6b5bcf6b
@ -103,7 +103,7 @@ onerror="alert(require('child_process').execSync('uname -a').toString());" />
|
||||
```
|
||||
## Electron Local Code Injection
|
||||
|
||||
Якщо ви можете виконати Electron App локально, можливо, ви зможете виконати довільний код JavaScript. Перевірте, як це зробити в:
|
||||
Якщо ви можете виконати Electron App локально, можливо, ви зможете виконати довільний javascript код. Перевірте, як це зробити в:
|
||||
|
||||
{{#ref}}
|
||||
../../../macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-electron-applications-injection.md
|
||||
@ -157,7 +157,7 @@ _**contextIsolation**_ вводить **окремі контексти між
|
||||
Якщо контексти не ізольовані, зловмисник може:
|
||||
|
||||
1. Виконати **произвольний JavaScript у рендерері** (XSS або навігація на зовнішні сайти)
|
||||
2. **Перезаписати вбудований метод**, який використовується в preload або внутрішньому коді Electron, на власну функцію
|
||||
2. **Перезаписати вбудований метод**, який використовується в preload або внутрішньому коді Electron на власну функцію
|
||||
3. **Запустити** використання **перезаписаної функції**
|
||||
4. RCE?
|
||||
|
||||
@ -200,11 +200,11 @@ webContents.on("will-navigate", function (event, url) {}
|
||||
|
||||
.png>)
|
||||
|
||||
Найкращі практики безпеки Electron JS радять не приймати ненадійний контент з функцією `openExternal`, оскільки це може призвести до RCE через різні протоколи. Операційні системи підтримують різні протоколи, які можуть викликати RCE. Для детальних прикладів та подальшого пояснення з цього питання можна звернутися до [цього ресурсу](https://positive.security/blog/url-open-rce#windows-10-19042), який містить приклади протоколів Windows, здатних експлуатувати цю вразливість.
|
||||
Найкращі практики безпеки Electron JS радять не приймати ненадійний контент з функцією `openExternal`, оскільки це може призвести до RCE через різні протоколи. Операційні системи підтримують різні протоколи, які можуть викликати RCE. Для детальних прикладів та подальшого пояснення цієї теми можна звернутися до [цього ресурсу](https://positive.security/blog/url-open-rce#windows-10-19042), який містить приклади протоколів Windows, здатних експлуатувати цю вразливість.
|
||||
|
||||
У macos функцію `openExternal` можна експлуатувати для виконання довільних команд, як у `shell.openExternal('file:///System/Applications/Calculator.app')`.
|
||||
|
||||
**Приклади експлойтів протоколів Windows включають:**
|
||||
**Приклади експлуатації протоколів Windows включають:**
|
||||
```html
|
||||
<script>
|
||||
window.open(
|
||||
@ -228,9 +228,7 @@ window.open(
|
||||
|
||||
**Вимкнення `contextIsolation` дозволяє використовувати `<webview>` теги**, подібно до `<iframe>`, для читання та ексфільтрації локальних файлів. Наведено приклад, який демонструє, як експлуатувати цю вразливість для читання вмісту внутрішніх файлів:
|
||||
|
||||
.png>)
|
||||
|
||||
Крім того, поділено ще один метод для **читання внутрішнього файлу**, що підкреслює критичну вразливість читання локальних файлів в Electron десктопному додатку. Це передбачає ін'єкцію скрипта для експлуатації програми та ексфільтрації даних:
|
||||

|
||||
|
||||
## **XSS Phishing via Internal URL regex bypass**
|
||||
@ -273,12 +271,12 @@ window.open("<http://subdomainagoogleq.com/index.html>")
|
||||
Модуль Electron Remote дозволяє **процесам рендерера отримувати доступ до API основного процесу**, полегшуючи комунікацію в рамках програми Electron. Однак, увімкнення цього модуля вводить значні ризики безпеки. Це розширює поверхню атаки програми, роблячи її більш вразливою до уразливостей, таких як атаки міжсайтового скриптингу (XSS).
|
||||
|
||||
> [!TIP]
|
||||
> Хоча модуль **remote** відкриває деякі API з основного процесу для процесів рендерера, отримати RCE лише зловживаючи компонентами не так просто. Однак компоненти можуть розкривати чутливу інформацію.
|
||||
> Хоча модуль **remote** відкриває деякі API з основного процесу для процесів рендерера, отримати RCE, просто зловживаючи компонентами, не так просто. Однак компоненти можуть відкривати чутливу інформацію.
|
||||
|
||||
> [!WARNING]
|
||||
> Багато додатків, які все ще використовують модуль remote, роблять це таким чином, що **вимагає увімкнення NodeIntegration** в процесі рендерера, що є **величезним ризиком безпеки**.
|
||||
|
||||
З моменту виходу Electron 14 модуль `remote` Electron може бути увімкнений у кількох кроках, оскільки з причин безпеки та продуктивності **рекомендується не використовувати його**.
|
||||
З версії Electron 14 модуль `remote` може бути увімкнений у кількох етапах через причини безпеки та продуктивності, тому **рекомендується не використовувати його**.
|
||||
|
||||
Щоб увімкнути його, спочатку потрібно **увімкнути його в основному процесі**:
|
||||
```javascript
|
||||
@ -358,8 +356,8 @@ console.log('Recent Places:', recentPlaces);
|
||||
|
||||
## **Tools**
|
||||
|
||||
- [**Electronegativity**](https://github.com/doyensec/electronegativity) — це інструмент для виявлення неправильних налаштувань і антипатернів безпеки в додатках на базі Electron.
|
||||
- [**Electrolint**](https://github.com/ksdmitrieva/electrolint) — це плагін з відкритим кодом для VS Code для додатків Electron, який використовує Electronegativity.
|
||||
- [**Electronegativity**](https://github.com/doyensec/electronegativity) - це інструмент для виявлення неправильних налаштувань і антипатернів безпеки в додатках на базі Electron.
|
||||
- [**Electrolint**](https://github.com/ksdmitrieva/electrolint) - це плагін з відкритим кодом для VS Code для додатків Electron, який використовує Electronegativity.
|
||||
- [**nodejsscan**](https://github.com/ajinabraham/nodejsscan) для перевірки вразливих сторонніх бібліотек
|
||||
- [**Electro.ng**](https://electro.ng/): Вам потрібно його купити
|
||||
|
||||
@ -397,7 +395,7 @@ npm start
|
||||
- [https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=8](https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=8)
|
||||
- [https://www.youtube.com/watch?v=a-YnG3Mx-Tg](https://www.youtube.com/watch?v=a-YnG3Mx-Tg)
|
||||
- [https://www.youtube.com/watch?v=xILfQGkLXQo\&t=22s](https://www.youtube.com/watch?v=xILfQGkLXQo&t=22s)
|
||||
- Більше досліджень та статей про безпеку Electron у [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
- Більше досліджень та статей про безпеку Electron на [https://github.com/doyensec/awesome-electronjs-hacking](https://github.com/doyensec/awesome-electronjs-hacking)
|
||||
- [https://www.youtube.com/watch?v=Tzo8ucHA5xw\&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq\&index=81](https://www.youtube.com/watch?v=Tzo8ucHA5xw&list=PLH15HpR5qRsVKcKwvIl-AzGfRqKyx--zq&index=81)
|
||||
- [https://blog.doyensec.com/2021/02/16/electron-apis-misuse.html](https://blog.doyensec.com/2021/02/16/electron-apis-misuse.html)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user