Hack 62 Slot – Furbo adalah kamera anjing pelempar suguhan yang awalnya mulai mendapatkan daya tarik di Indegogo pada tahun 2016. Kesuksesannya yang cepat di platform crowdfunding menyebabkan peluncuran publiknya di tahun yang sama. Furbo sekarang tersedia secara luas di Chewy dan Amazon, di mana ia telah menjadi penjual #1. Furbo menawarkan akses kamera 24/7 melalui aplikasi seluler, streaming video, dan audio dua arah. Fitur jarak jauh lainnya termasuk penglihatan malam, pemantauan perilaku anjing, deteksi darurat, pemberitahuan waktu nyata, dan kemampuan untuk merawat anjing Anda. Mengingat rangkaian fitur dan popularitas perangkat yang kaya, Somerset Recon membeli beberapa Furbo untuk menyelidiki keamanannya. Posting blog ini mendokumentasikan kerentanan di server RTSP yang berjalan di perangkat Penelitian yang disajikan di sini berkaitan dengan model Furbo: Furbo 2.
Begitu kami mendapatkan beberapa firbo, kami mulai melihat permukaan serangan. Awalnya, Furbo berpasangan dengan aplikasi seluler di ponsel Anda melalui Bluetooth Low Energy (BLE), memungkinkan perangkat terhubung ke jaringan Wi-Fi lokal Anda. Dengan Furbo di jaringan, pemindaian port mengungkapkan bahwa port 554 dan 19531 sedang mendengarkan. Port 554 digunakan untuk RTSP, protokol jaringan yang biasa digunakan untuk streaming video dan audio. Awalnya, layanan RTSP Furbo tidak memerlukan otentikasi dan kami dapat melihat streaming kamera dari jarak jauh melalui RTSP menggunakan klien pemutar media VLC. Namun, setelah memperbarui dan mem-boot ulang, kamera memerlukan autentikasi untuk mengakses aliran RTSP.
Hack 62 Slot
Server RTSP di Furbo menggunakan autentikasi intisari HTTP. Ini berarti bahwa saat menghubungkan ke klien RTSP, klien harus mengautentikasi dirinya sendiri dengan memberikan nama pengguna dan kata sandi. Klien menggunakan status dan nilai pengecualian yang dikirim oleh server untuk membuat header autentikasi, yang disertakan dalam permintaan. Dengan mengingat hal ini, kami memutuskan untuk mencoba mengidentifikasi kerentanan di layanan RTSP.
From Iphones To Ipads: The Apple Gadgets You Should—and Shouldn’t—buy Right Now
Kerusakan terdeteksi dengan menyamarkan layanan RTSP secara manual Teknik umum untuk menemukan stack overflow adalah mengirimkan masukan yang besar, jadi kami meluncurkan beberapa permintaan dengan nama pengguna yang besar dan, yang membuat kami senang, melihat layanan RTSP dimulai ulang. Kami akhirnya menentukan bahwa layanan RTSP gagal karena penguraian header autentikasi yang salah karena nama pengguna lebih dari 132 karakter. Contoh aplikasi dapat ditemukan di bawah ini:
Pada titik ini, kami ingin mengakses shell di Furbo untuk menguji kerusakan dan mengembangkan eksploit. Untuk melakukan itu, kami mengganti persneling dan melihat perangkat kerasnya.
Langkah pertama yang penting dan berguna dalam menyerang Furbo dan sebagian besar perangkat IoT adalah mendapatkan root shell atau akses internal lainnya ke perangkat. Melakukannya dapat membantu mengklarifikasi proses, data, atau komunikasi yang tidak jelas atau rahasia. Kami memfokuskan upaya kami untuk mendapatkan akses root ke Furbo dengan langsung menyerang perangkat keras yang terdiri dari beberapa papan sirkuit tercetak (PCB) yang saling terhubung. Ada tiga PCB yang kami uji.
PCB belakang memiliki sakelar reset dan port USB mikro B, yang dapat digunakan untuk menyalakan Furbo, seperti yang ditunjukkan di sini:
Review: Evercade Handheld
Harap perhatikan chip dan soket yang tidak terpakai. Kami melacaknya untuk melihat apakah ada di antara mereka yang menyediakan akses serial, tetapi menemukan bahwa mereka terhubung ke garis D+ dan D- pengontrol USB. Konektor ini mungkin digunakan untuk mem-flash selama produksi, tetapi tidak memberi kami akses serial yang kami cari.
Ini berisi relai, pengatur daya, potensiometer trim dan PIC16F57. Berdasarkan rekayasa balik awal, chip tampaknya mengontrol komponen fisik seperti bilah status LED, penembak permen, dan sakelar mekanis yang mendeteksi pergerakan penembak permen.
Papan yang ditunjukkan di atas mendukung Wi-Fi dan Bluetooth, seperti yang ditunjukkan oleh antena tambalan yang terpasang di sisi Furbo. PCB berisi system-on-chip (SoC) utama yang menjalankan fungsi tingkat tinggi Furbo. SoC adalah Ambarella S2Lm.
SoC Ambarella adalah target utama: SoC ARM Cortex-A9 berkinerja tinggi yang menjalankan Linux (tetapi terbatas dibandingkan dengan PIC16 dan chip nirkabel), mungkin melakukan semua fungsi utama Furbo dan mudah-mudahan dalam shell TTY yang dapat diakses. (Akses Serial) Seperti banyak SoC kompleks atau khusus baru, lembar data terperinci dan spesifikasi untuk chip Ambarella sulit ditemukan. Sebagai gantinya, kami menghubungkan penganalisis logika ke berbagai titik uji hingga kami mendapatkan pin UART TTY TX dengan baud rate 115200. Dari sini, kami mendapatkan pin penerima (RX) dengan menghubungkan FTDI ke pin yang berdekatan hingga terdaftar. Tekan pada terminal serial. Titik uji akses serial yang dihasilkan terletak di sisi kiri bawah papan, seperti yang ditunjukkan pada gambar berikut:
Bmw I8 Long Term Review
Kami menyolder beberapa kabel ke titik uji di atas dan mendapatkan akses serial yang andal ke SoC Ambarella. Konfigurasi log boot yang dihasilkan ditampilkan di sini:
Seperti yang dapat kita lihat di atas, konfigurasi catatan boot dimulai dengan bootloader AMBoot. Ini mirip dengan bot Das U, tetapi dibuat khusus oleh Umbrella. Ini akan memuat image dari flash NAND dan kemudian mem-boot kernel Linux v3.10.73. Di log boot, cari baris yang menunjukkan parameter yang digunakan oleh AMBoot untuk memulai kernel Linux:
Terminal Linux dilindungi oleh kredensial masuk, tetapi prosesnya dapat disusupi dan memungkinkan Furbo mengakses bootloader AMBoot. Lihat demo serupa untuk mengakses shell root dari AMBoot di sini. Untuk Furbo, ini dapat dilakukan dengan menekan Enter di terminal TTY segera setelah mem-boot ulang, yang akan membawa Anda ke terminal AMBoot yang ditampilkan di sini:
AMBoot menggunakan perintah “boot” init=/bin/sh, seperti yang ditunjukkan di atas, untuk mem-boot langsung ke shell root, melewati prompt login Linux. Hasilnya dapat dilihat di sini:
Cooking Gifts For The Chef In Your Life In 2022: Le Creuset, Our Place, Food52, Amazon, Brightland
Setelah shell root dapat diakses, pengguna root permanen dapat dibuat dengan menambahkan atau mengubah entri di /etc/passwd dan /etc/shadow. Shell root persisten ini dapat diakses melalui prompt login Linux biasa.
Sekarang kami memiliki akses shell ke perangkat, kami melihat sekeliling dan memahami cara kerja layanan yang mendasarinya. Apps_launcher yang dapat dieksekusi digunakan untuk meluncurkan berbagai layanan termasuk rtsp_svc (server RTSP). Semua proses ini dipantau oleh skrip pengawas dan dimulai ulang jika ada yang gagal. Kami menemukan bahwa memulai proses apps_launcher secara manual menghasilkan beberapa hasil yang menjanjikan.
Di sini kita melihat bahwa layanan rtsp_svc tampaknya gagal dua kali sebelum mogok sepenuhnya. Perhatikan bahwa alamat segfault diatur ke 0x41414141, menunjukkan buffer overflow yang berhasil dan kemungkinan kontrol aliran program. Untuk melakukan ini, kita perlu memulai proses debug dan memulihkan layanan RTSP yang macet.
Berdasarkan informasi yang dikumpulkan sejauh ini, kami cukup yakin bahwa kami telah menemukan eksploitasi. Kami telah menambahkan binari dropbear-ssh dan gdbserver yang dikompilasi secara statis ke Furbo untuk membantu proses debug dan menyelam. Kami terhubung ke gdbserver di Furbo dari mesin jarak jauh menggunakan gdb-multiarch dan GEF dan dengan cepat menemukan bahwa kami harus banyak bekerja:
Pirate Hack Bonus Bingo Free Games For Kindle 2015 Raider Steal Eye Patch Update Bingo Free Bingo Games Pirates Showdown Blitz Free Casino Games:amazon.com:appstore For Android
Perhatikan keberadaan “A” pada nama pengguna, yang menunjukkan bahwa isi dari penghitung program ($pc), tumpukan ($sp), dan register $r4 hingga $r11 dapat dikontrol. Masing-masing menggunakan pola siklik untuk nama pengguna Menunjukkan offset record yang dapat dikontrol. Misalnya, program counter offset 164 karakter ditemukan.
Log tautan ($lr) menunjukkan bahwa masalahnya ada pada fungsi parse_authenticaton_header(). Fungsi ini ada di file libamprotocol-rtsp.so.1. Kami mengekstrak file ini dari Furbo untuk melihat apa yang terjadi. Banyak nama file dan fungsi yang digunakan oleh layanan RTSP menunjukkan bahwa mereka adalah bagian dari Ambarella SDK Di bawah ini adalah sebagian dari fungsi rentan yang didekompilasi dengan Gadra.
Dengan asumsi kami mengirim permintaan dengan nama pengguna yang diisi sebagai “A”, saat Anda mendapatkan cuplikan pertama yang ditampilkan, Anda akan menghapus semua yang ada di permintaan hingga parameter nama pengguna. Perhatikan bahwa bagian yang disorot req_str_ menunjukkan nama pengguna “AAAAAAAAAA”.
Perlu dicatat bahwa Ghidra tampaknya salah mengartikan argumen ke sscanf() dalam kasus ini, karena daftar harus memiliki dua tempat: parameter dan nilainya. Penentu format pertama mem-parsing nama parameter, seperti nama pengguna, dan menyimpannya di parameter. Penentu format kedua menyalin nilai parameter asli, seperti AAAAAAAAAAA, dan menyimpannya di lokasi nilai, yang dialokasikan hanya 132 byte. Tidak ada kontrol panjang, yang menyebabkan buffer overflows. Saat fungsi kembali, layanan gagal karena alamat pengirim di *req_str ditimpa dengan karakter nama pengguna yang meluap.
The Three Most Common Ways Bad Actors Target Your Digital Supply Chain
Informasi tambahan dikumpulkan untuk mengembangkan PoC fungsional. Kamera dikompilasi menggunakan pengacakan tata letak ruang alamat (ASLR) dan tanpa mengimplementasikan objek bersama (NX). Biner rtsp_svc tidak dikompilasi dengan flag position-independent executable (PIE). Namun, rentang alamat yang dapat dieksekusi berisi dua byte nol di depan (0x000080000) yang sayangnya tidak dapat ditambahkan.