Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
- 3. 1. Pembukaan oleh MC
2. Pembacaan Doa
3. Sambutan dari RW / perwakilan pengurus
4. Sambutan sekaligus penyampaian Laporan Pertangung
jawaban RT lama
5. Serah terima Atribut RT lama ke Ketua Panitia
6. Proses pemilihan RT Tahun 2022
- 4. 1.What is Electron App
2. File asar Electron App
3. Intercept Request
4. Remote Code Execution
5. Code Injection
6. Bypass File Quarantine
- 5. Definisi paling sederhana: Electron adalah
Framework yang memungkinkan pembuatan
aplikasi desktop untuk semua platform OS
(Windows, Mac, dan Linux).
Electron adalah proyek Open Source yang
dikelola oleh Github dan komunitas kontributor
yang aktif. Electron sekarang digunakan untuk
membuat berbagai aplikasi desktop seperti
Whatsapp,Visual Code Studio, Slack and Discord,
dll.
electronjs.org/apps
- 6. Definisi yang sedikit mendalam:
Electron adalah Framework GUI yang
menggabungkan mesin rendering
Chromium dan runtime Node.js untuk
memungkinkan proses browser dan
beberapa proses renderer lainnya
menjalankan logika aplikasi.
Proses browser menjalankan logika
aplikasi (main.js => titik masuk utama
untuk aplikasi) dan proses rendering
bawaan lainnya membuat jendela
dengan merender HTML dan CSS.
- 7. Aplikasi Electron harus memiliki security checklist sebelum membangun Aplikasi, tetapi
pengembang Aplikasi hanya mendesain yang mengesankan dan tidak memeriksa auditor
kebijakan keamanan dalam aplikasi
Electron Security Checklist : https://www.electronjs.org/docs/latest/tutorial/security
Celah keamanan dari aplikasi electron sama seperti aplikasi desktop pada umum nya,
kerentanan seperti Security Misconfiguration, Broken Authentication & Session Management,
Injection, Sensitive Data Exposure, etc ( OWASP Top 10 Desktop App )
OWASP : https://owasp.org/www-project-desktop-app-security-top-10/
- 8. ❑File ASAR adalah arsip yang digunakan untuk mengemas kode sumber untuk
aplikasi yang dibuat oleh Electron. File .asar disimpan dalam format yang mirip
dengan arsip .TAR di mana file yang terkandung dalam arsip, seperti file .HTML,
.JS, dan .CSS, digabungkan bersama tanpa kompresi.
❑Karena electron adalah kerangka kerja javascript, dekompresi file app.asar
memungkinkan seseorang untuk melakukan analisis kode untuk menemukan
kerentanan.
- 11. Analisa source code dari aplikasi
untuk menemukan beberapa
informasi seperti kredensial, kunci
api, token, dan lainnya.
Ada beberapa cara untuk mencari
informasi sensitif menggunakan
keywords di Github EdOverflow.
Bounty : 1 Reward Bounty
- 13. ❑Materi selanjut nya adalah konfigurasi aplikasi Electron untuk intercept request
melalui proxy
❑Karena aplikasi Electron running chromium, kita dapat menggunakan beberapa
argumen baris command untuk mengalihkan permintaan request yang dibuat di
dalam aplikasi ke server proxy.
❑Tools intercept request Burpsuite and Proxyman
- 14. Intercept with Tools Burpsuite
▪ /Applications/App.app/Contents/MacOS/App --args --proxy-
server=localhost:8081 --ignore-certificate-errors
Intercept with Tools Proxyman
- 15. Vulnerability IDOR in Electron App,
Skenario ini menggabungkan 2 Tools
Proxyman dan Burpsuite.
Private Program : 2 Reward Bounty
- 17. ❑Untuk menemukan kerentanan ini ada beberapa tahapan yang tentunya masih
membaca source code aplikasi dari file app.asar
❑Atau untuk detail analisis menggunakan tools dari @doyensec Electronegativity
(temuan terkadang false positive)
npm install @doyensec/electronegativity -g
- 18. Untuk melakukan scanning
menggunakan alat Elektronegativitas,
Direktori dekompilasi atau ekstrak dari
file app.asar yang diekstrak sebelumnya
electronegativity -i decompile_asar/
- 19. Singkatnya file main.js adalah untuk
menjalankan proses utama yang
mengontrol kerja aplikasi seperti
menampilkan tampilan dashboard,
user interface dan proses render
halaman Web dan Aplikasi Electron
hanya memiliki satu proses utama.
- 20. Jika fungsi Aplikasi Elektron
nodeIntegration diatur ke mode true ini
menyebabkan javascript berjalan di
modul Node.js, dalam kerentanan ini
kita dapat menggunakan modul di
Electron untuk memanggil URI
eksternal
- 21. Do not enable Node.js
integration for remote content
https://www.electronjs.org/doc
s/latest/tutorial/security
- 22. Script RCE with code html
Medium (Unofficial) : No Bounty
Private Program : 1 Reward Bounty
- 24. Sama seperti beberapa Sistem Operasi, Injection pada Sistem Operasi macOS ada
beberapa teknik yang digunakan dan juga beberapa metode yang digunakan,
beberapa contoh Code Injection pada macOS :
Code Injection script exploit di masukan ke dalam plugin yang menargetkan aplikasi seperti Safari, Mail, XCode.
Code Injection di Addition daemon service aplikasi
Code Injection menggunakan port Mach dengan menggunakan mach_override dan mach_inject tetapi metode ini memiliki beberapa
kelemahan ( hak akses root )
Code Injection di sisi kernel sistem operasi
Code Injection modifikasi binary dari aplikasi.
Code Injection menggunakan variable DYLD_INSERT_LIBRARIES, Metode ini sangat sederhana hanya inject code exploit ke aplikasi yang akan
di jalankan.
- 25. Untuk mengeksploitasi
kerentanan ini, korban harus
menginstal aplikasi berbahaya
di perangkat.
Atau telah memperoleh akses
ke sistem operasi macOS
dengan akses pengguna.
DYLD_INSERT_LIBRARIES DYLIB INJECTION IN MACOS / OSX
Aplikasi tidak memerlukan izin
root untuk membuka aplikasi lain
dengan variabel environtment
DYLD_INSERT_LIBRARY
- 26. macOSVersion 10.12 < macOSVersi 10.14 >
SIP (SYSTEM INTEGRITY PROTECTION)
❑ Apple memperkenalkan System Integrity Protection mode pada versi MacOS El Capitan.
❑ SIP ini berfungsi untuk mencegah pengguna merubah root level files yang ada di macOS
- 27. ❑ Active : Allow DYLD Environment Variables Entitlement
❑ Nilai Boolean yang menunjukkan apakah aplikasi dapat dipengaruhi oleh variabel
lingkungan linker dinamis, yang dapat di gunakan untuk memasukkan kode ke
dalam proses aplikasi.
com.apple.security.cs.allow-dyld-environment-variables
- 31. - h1 Program : 4 Reward Bounty,5 Duplicate
- Bugcrowd Program : 1 Reward Bounty,1
Duplicate
- Zoho Program : 2 Reward Bounty
- Zerocopter Private Program : 2 Reward Bounty
- Zerocopter Huawei Program : 4 Reward
Bounty ( Not Electron App )
- Private Program : 3 Reward Bounty
- 32. ❑Materi selanjutnya sesuai dengan judul diatas bagaimana cara bypass aplikasi yang
menjalankan file .terminal
❑Quarantine & GateKeeper adalah mekanisme keamanan macOS yang penting, yang mencegah
pengguna/perangkat menjalankan executable file yang di download
❑Kerentanan ini memiliki dampak rendah/sedang, tetapi dapat dikombinasikan dengan perilaku
kustom lainnya, dan fitur UX untuk meningkatkan keparahan.
❑Banyak produk populer seperti Keybase, Slack, Skype, Signal,Telegram memutuskan untuk
memperbaiki masalah ini, tetapi kerentanannya tetap tidak diperbaiki dalam aplikasi
sinkronisasi file: Dropbox, OneDrive, Google Drive, dll.
❑Reference : https://medium.com/@metnew/exploiting-popular-macos-apps-with-a-single-
terminal-file-f6c2efdfedaa
- 33. Intinya aplikasi yang bisa mendownload file harus mengaktifkan karantina file , dikarenakan:
Tidak ada atribut Quarantine untuk file yang di download, sehingga memungkinkan menjalankan file tersebut yang tidak di periksa oleh
GateKeeper di macOS
File yang di download tanpa atribut meta com.apple.quarantine tidak akan menampilkan peringatan saat menjalankan file tersebut.
Inti nya adalah menjalankan file yang sudah di dowload dapat melewati security Quarantine & GateKeeper
- 35. Script RCE file .terminal
Facebook Program : 1 Reward Bounty
Private Program : 1 Reward Bounty