- Melakukan reverse engineering pada perangkat smart home berbasis ESP32 dan mengintegrasikannya dengan Home Assistant
- Menganalisis aplikasi mobile dan memastikan koneksinya dengan server cloud
- Menyadap trafik jaringan untuk mencoba mengendalikan perangkat
- Membuang dan menganalisis flash ESP32 untuk mencoba memodifikasi firmware
- Menganalisis struktur paket untuk memahami enkripsi dan checksum
Pengantar
- Baru-baru ini sedang mencoba menghubungkan semua perangkat ke Home Assistant
- Karena pemurni udara tertentu tidak bisa terhubung selain melalui aplikasinya sendiri, perangkat itu hendak diretas agar bisa diintegrasikan
- Menunjukkan masalah pada produk yang bergantung pada koneksi internet dan akun cloud
Rencana
- Dipastikan bahwa aplikasi mobile terhubung ke server cloud sehingga kontrol jarak jauh dimungkinkan
- Mencari cara untuk mengendalikan perangkat dengan menyadap trafik jaringan
Analisis aplikasi mobile
- Menganalisis aplikasi Android dan memastikan bahwa aplikasi tersebut dikembangkan dengan React Native
- Menemukan bahwa aplikasi terhubung ke server cloud melalui WebSocket
Pemeriksaan jaringan
- Menggunakan Pi-hole untuk memeriksa kueri DNS dan menganalisis trafik dengan Wireshark
- Mengonfirmasi komunikasi antara perangkat dan server melalui paket UDP
Analisis paket
- Menggunakan proxy UDP untuk meneruskan trafik antara perangkat dan server cloud
- Menganalisis struktur paket melalui Wireshark dan memastikan kemungkinan adanya enkripsi
Pembongkaran fisik
- Membongkar perangkat berbasis ESP32 dan membuang firmware dari chip flash
- Menggunakan esptool untuk membaca data melalui koneksi serial
Analisis flash
- Menggunakan esp32knife untuk menganalisis data flash dan memeriksa tabel partisi
- Menemukan file-file penting di sistem file FAT
Analisis statis awal
- Menggunakan Ghidra untuk menganalisis string dalam firmware dan memastikan penggunaan library enkripsi
- Mengimplementasikan algoritme ECDH dan HKDF menggunakan library mbedtls
Modifikasi firmware
- Menonaktifkan fitur CapSense melalui Ghidra dan mem-boot perangkat dengan firmware yang dimodifikasi
- Menyelesaikan masalah checksum dan berhasil mem-flash firmware yang telah dimodifikasi
Header paket
- Menganalisis struktur header paket dan mengidentifikasi nomor seri serta pengenal pesan
- Memahami pola permintaan klien dan respons server
Checksum paket
- Memeriksa checksum CRC untuk memverifikasi integritas data paket
1 komentar
Opini Hacker News
Solusi jangka panjangnya adalah tidak membeli produk rumah tangga yang mengabaikan kontrol lokal
Pembersih udara yang meningkatkan kinerjanya saat kualitas udara dalam ruangan menurun tidak memerlukan perangkat IoT, aplikasi, komunikasi nirkabel, atau hub
Untuk penjual perangkat IoT berbasis ESP32:
Untuk pemilik perangkat IoT berbasis ESP32:
Saya penasaran apakah mungkin mengetahui pin mana yang terhubung pada board perangkat, lalu mem-flash-nya sepenuhnya dengan ESPHome dan menulis konfigurasi yaml kustom
Setiap kali saya berada di tim perancang perangkat IoT, insinyur yang berfokus pada keamanan selalu menangani perlindungan boot
Masukan untuk artikelnya:
Saya penasaran mengapa tidak menggunakan solusi yang sudah distandardisasi
Jarang sekali saya melihat enkripsi firmware digunakan pada perangkat IoT ESP32
Pendapat tentang keputusan para service engineer untuk tidak mengimplementasikan protokol standar seperti DTLS
Orang yang menggunakan perangkat pintar seharusnya memakai DD-WRT, OpenWrt, Tomato, Asuswrt-Merlin untuk mengisolasi perangkat di VLAN yang terpisah dari jaringan pribadi
Seharusnya tidak perlu meretas produk yang dibeli agar bisa digunakan