DEFCON Conference 22. GTVHacker Group. Retas semuanya: 20 perangkat dalam 45 menit. Bagian 1

Amir Etemadi: Saya menyambut semua orang dan selamat datang di presentasi GTVHacker "Retas semuanya: 20 perangkat dalam 45 menit". Kami telah menjadi pencipta produk Google TV asli sejak 2010, serta produk-produk seperti Chromecast, Roku, dan Nest, dan kami juga merilis exploit untuk semua perangkat Google TV.



Jadi siapa kita? Saya seorang ilmuwan riset di Accuvant Labs, yang diciptakan oleh GTVHacker, CJ adalah pemimpin tim dan peneliti keamanan, dan juga terkadang bertindak sebagai pengembang teknologi. Hans Nielsen adalah konsultan keamanan senior untuk Matasano, sementara Mike Baker mengembangkan firmware dan merupakan salah satu pendiri OpenWRT.

Ada 8 anggota di grup kami, termasuk Gynophage, saat ini ia terlibat dalam hal yang disebut DefCon CTF, Jay Freeman, pencipta Cydia, siswa Coa Hoang dan Tom Dwenger, spesialis terbesar di APK dan dalam segala hal yang berkaitan dengan Jawa.

Jadi, mengapa kita memutuskan untuk meretas ke dalam perangkat, mengapa tidak perangkat lunak yang juga tidak kita sukai? Anda tahu, ketika sebuah perangkat menjadi usang, mencapai akhir hidupnya, itu hanya dibuang ke tempat pembuangan sampah. Bahkan, perangkat lama membunuh, dan tidak ada gunanya melakukan ini, seperti yang terjadi dengan Logitech Revue.

Kami memberikan kehidupan baru pada perangkat yang dibuang, dan kami juga selalu berusaha untuk membuat produk lebih baik, memberikan lebih banyak fitur, dan jika kami bisa melakukannya, kami melakukannya. Kami suka menjawab tantangan teknis, Anda tahu, ini seperti teka-teki yang ingin Anda selesaikan.

Belajar, tentu saja, adalah proses yang luar biasa, tetapi esensi dari presentasi ini dapat diungkapkan dengan kata-kata:

"Kamu punya root!"



Pada dasarnya, "meretas 20 perangkat dalam 45 menit," yaitu, selama presentasi, tidak meninggalkan kita banyak waktu untuk dihabiskan secara rinci pada setiap perangkat. Karena itu, saya akan menunjukkan kepada Anda sebuah showcase perangkat yang akan masuk ke Wiki kami tepat setelah presentasi. Kami akan memperkenalkan kepada Anda rincian teknis, diagram peralatan, semua yang kami bisa, karena cukup sulit untuk dibaca. Di bagian bawah slide Anda melihat tautan, Anda dapat menggunakannya setelah presentasi untuk mendapatkan akses ke semua hal yang ditunjukkan selama demonstrasi ini. Dan sekarang saya memberikan lantai kepada rekan saya yang akan memberi tahu Anda tentang "Prospek serangan".

Hans Nielsen: Ada banyak cara untuk menyerang perangkat seperti ini. Hari ini, dengan menggunakan contoh 20 perangkat ini, kami akan mempertimbangkan 3 metode peretasan utama.

Yang pertama adalah penggunaan port debug yang terletak di dalam perangkat itu sendiri. Metode kedua - kita dapat menggunakan port serial atau kartu memori EMMC, ini adalah kartu SD versi lama untuk menghubungkan ke perangkat dan memodifikasi penyimpanan. Metode ketiga adalah untuk mendapatkan akses langsung ke OS, yang memungkinkan Anda untuk mengimplementasikan sejumlah besar perintah melalui baris perintah untuk menyebabkan kesalahan elektronik konsumen yang paling umum.

Jadi, mari kita bicara tentang UART - transceiver asinkron universal. Ini digunakan oleh pengembang untuk men-debug peralatan dan tidak lagi membawa beban fungsional. Ini adalah antarmuka yang sangat sederhana - satu kabel untuk transmisi, lainnya untuk penerimaan, dan yang ketiga berfungsi sebagai ground.



Mereka bertanya berapa umur saya - saya jawab, saya 27 tahun, terima kasih atas pertanyaan Anda! Jadi, di sini protokol pertukaran data yang sangat sederhana digunakan, dan port itu sendiri beroperasi dengan tegangan level yang berbeda, misalnya, 1.8V, 3.3V atau 5V dan merupakan port serial, mirip dengan port USB pada komputer.

Jadi, Anda memiliki beberapa adaptor gratis yang memungkinkan Anda bermain dengan perangkat Anda sendiri, dan saya harap Anda mendapatkan manfaat sebanyak mungkin dari yang kami dapat. Jadi bagaimana Anda bisa menggunakan UART?

Pertimbangkan perangkat tertentu - MFP Epson Artisan 700/800, yang merupakan printer, pemindai, dan mesin fotokopi, yang dapat digunakan sebagai printer jaringan. Itu dikendalikan oleh Linux 2.6.21 - arm1. Apa yang bisa dilakukan dengan itu? Jika Anda membuka kasing, Anda dapat melihat papan sirkuit cetak tempat 4 kontak berada: penerimaan, transmisi, pentanahan, daya. Ini adalah opsi koneksi UART klasik.



Setelah menghubungkan port debug kami di sini, kami melihat menu konsol pengaturan printer.



Kita dapat menghidupkan ulang printer, mengatur ulang pengaturan, menjalankan perintah shell arbitrer, menjalankan perintah yang kita butuhkan, secara umum, bersenang-senang bermain dengan printer kita.

Perangkat kedua adalah soket pintar Belkin WeMo dengan kontrol Internet. Ini memungkinkan Anda untuk menggunakan ponsel untuk menghidupkan pembuat kopi dan peralatan rumah tangga lainnya melalui Internet dan digunakan secara luas oleh orang yang berbeda.



Ini adalah perangkat yang cukup kecil, sehingga membaca notasi pada papan sirkuit cukup sulit. Tetapi kami menemukan kontak dari penerima dan pemancar dan menghubungkan UART ke mereka. Setelah itu, Internet melaporkan bahwa perangkat itu ditambal, tetapi ini tidak benar. Ternyata kami hanya memiliki 2 detik untuk memasukkan perintah, setelah itu perangkat secara otomatis reboot.



Pada saat yang tepat, kami berhasil memasukkan perintah yang "membunuh" skrip reboot, setelah itu kami dapat melakukan apa pun yang kami inginkan dengan soket pintar ini.

Perangkat ketiga adalah lampu pintar Greenwave Reality, pesaing Phillips Hue, yang menggunakan protokol jaringan tingkat atas ZigBee, banyak yang telah mengatakan tentang hal itu. Lucu bahwa ia menggunakan mikroprosesor PowerPC. Saat startup, lampu ini menyediakan server SSH yang darinya kami tidak memiliki kata sandi.



Ketika kami membuka kasing, kami juga menemukan kontak untuk UART. Perangkat ini dilengkapi dengan U-boot bootloader universal boot terbuka yang memuat dan menjalankan Linux. Dengan menggunakan bootloader ini, Anda dapat melakukan apa saja - reflash perangkat, ubah baris perintah kernel. Anda dapat menemani boot Linux dengan berbagai opsi, misalnya, memungkinkan Anda untuk mengetahui jumlah memori perangkat. Kami berhasil mendapatkan hak root dengan mengubah baris perintah bootloader. Untuk melakukan ini, kami terhubung melalui UART, memasukkan modul bin / sh ke baris perintah kernel, dan kemudian masuk ke shell bootloader.



Untuk menggunakan perangkat dengan aman di masa mendatang, kami memecahkan kata sandi thinkgreen untuk mengakses hak root.

Perangkat keempat adalah File Transporter, flash drive dengan kemampuan untuk mentransfer data melalui jaringan. Ini adalah semacam "cloud" portabel yang menggunakan hard disk besar dari HDD format klasik dengan kapasitas 1 TB untuk menyimpan file. Anda dapat menghubungkannya ke jaringan rumah Anda dan mengakses file di berbagai perangkat rumah.



"Transfer file" ini muncul di pasaran baru-baru ini dan merupakan jenis perangkat yang cukup standar yang menjalankan Linux. Ini adalah hal yang agak lucu, dan setelah melepas kasingnya, kami dengan mudah menemukan adaptor untuk menghubungkan UART.



Bootloader U-boot juga digunakan di sini, sehingga, seperti pada kasus sebelumnya, kami bisa mendapatkan hak root menggunakan baris perintah kernel. Ini memberi kami kesempatan untuk mengubah kata sandi root dan mendapatkan akses ke perangkat.



Perangkat kelima adalah model media player jaringan Vizio CoStar LT ISV-B11. Ini memberikan akses ke saluran CoStar, yang dulunya bagian dari jaringan Google TV. Pemutar media ini terhubung ke perangkat lain melalui Internet atau kabel melalui output HDMI.



Mungkin terlihat lucu bahwa Google TV tidak ada lagi, tetapi masih ada grup kami yang disebut GTVHacker. Jadi, di sudut kiri atas papan sirkuit cetak, huruf putih menunjukkan konektor klasik untuk menghubungkan UART dari 4 pin berturut-turut. Di sini kami mengalami beberapa kesulitan berkomunikasi dengan kernel, karena setelah kami mencolokkan "flash drive", kami mendapat pesan "" sistem file yang tidak dapat dipahami pada flash drive ". Kami memformat ulang ke FAT32, setelah itu muncul pesan: "Saya tidak dapat menemukan fs.sys". Itu terlihat mencurigakan, jadi kami melakukan riset.

Akibatnya, disimpulkan bahwa saat boot, Anda harus memiliki kedua file pada USB flash drive - fs.sys dan safe-kernel.img1. File pertama adalah pengunduh gambar skrip U-Boot yang berisi perintah U-Boot sewenang-wenang yang dijalankan saat boot. Kami menggunakan teknik yang sama seperti ketika meretas perangkat sebelumnya. Modifikasi baris perintah kernel memberi kami kesempatan untuk meretas kernel dan mendapatkan hak root. Untuk mengunduh kernel yang benar-benar baru, Anda dapat menggunakan kombinasi kedua file yang terletak di flash drive yang hanya terhubung ke UART.

Staples Connect, model Linksys Zonoff, adalah perangkat keenam yang kami retas. Ini adalah pusat otomatisasi rumah kecil lainnya, hub yang berkomunikasi bersama perangkat rumah dari berbagai merek dan tipe. Ini dilengkapi dengan modul Wi-Fi dan port USB untuk menghubungkan hard disk dan didasarkan pada penggunaan teknologi cloud.
Di papan sirkuit, kami menemukan blok dengan soket kontak. Kami menyingkat pin memori NAND 29/30, yang menyebabkan kesalahan saat memuat lingkungan U-Boot dan perangkat melakukan reboot. Menetapkan batas waktu default, kami menjalankan perintah setenv bootargs “console = ttyS0,115200 init = / bin / sh [...]”, kami boot ke konsol root. Menambahkan baris # dropbear - d 222, kami dapat memodifikasi, menyimpan, dan mengedit U-Boot. Untuk mengakses root, kata sandi SSH oemroot digunakan, yang kami berhasil atasi dengan relatif mudah. Dan sekarang saya ingin memperkenalkan Anda kepada CJ.



CJ Jerez: Saya ingin berbicara dengan Anda tentang kartu memori non-volatile dalam format eMMC - Embedded MultiMedia Card. Mereka didasarkan pada chip kartu memori SD standar. Ini adalah hal yang sangat keren yang mencakup modul flash dan pengontrol flash. Dalam hal ini, Anda tidak perlu khawatir tentang bit ajaib tambahan.



Kartu memori biasa berisi bit tambahan yang menangani kesalahan dan mengandung kode koreksi kesalahan, fungsi ini ditujukan untuk pengembang. Kartu memori eMMC menggunakan sistem file biasa, dan aksesnya adalah melalui pembaca kartu multimedia yang murah, yang membaca kartu SD biasa dan eMMC sama baiknya. Karena kartu ini secara struktural adalah chip BGA yang dipasang di permukaan, temuannya adalah bola solder yang disimpan di bagian belakang pad. Untuk bekerja dengan kartu seperti itu, Anda perlu mengidentifikasi kontak ini, yaitu, kami membutuhkan bola tertentu untuk menghubungkan debugger.

Untuk menemukan kontak yang diperlukan, kami pertama-tama memeriksa desain papan, semua jenis stiker, label di bawah resistor, pelacakan media yang dicetak dan kontak di sisi lain papan. Lalu kami mengambil keuntungan dari intuisi dan analisis logis, dan setelah itu kami hanya mengeluarkan chip dan memastikan bahwa itu tidak berfungsi. Kami dapat menghubungkan kartu ini ke pembaca MMC dan mengatur ulang pengaturan.

Sekarang mari kita bicara tentang perangkat ketujuh kita, ini adalah set-top box Amazon Fire TV dengan remote control.



Ini dilengkapi dengan prosesor 4-core 1,7 GHz Snapdragon 600 dan 8 GB eMMC memory drive, dan dikendalikan oleh versi Android 4.2.2 yang dimodifikasi yang disebut Fire OS 3.0.

Setelah membuka kasing, kami mulai mencari pinout eMMC, dan selama pencarian kami merusak satu perangkat, karena kami memecahkan salah satu kontak ketika kami mengeluarkan chip eMMC, jadi kami harus mengerjakan salinan kedua dari kotak dekoder.



Di sebelah kiri pada slide menunjukkan lokasi kontak eMMC, di sebelah kanan - kontak UART di 1.8V.

Setelah berhasil memecahkan set-top box ini, kami mengambil perangkat nomor 8 - Hisense Android TV, smart TV yang menjalankan Android, ini adalah semacam Google TV, yang diganti namanya. Ia menggunakan salah satu prosesor terbaru, Marvell 4-core MV88DE3108. Pada konferensi DefCon tahun lalu, kami menunjukkan cara memintas boot dalam mode aman untuk prosesor dari baris ini karena kesalahan kecil dalam firmware mereka.



Slide berikutnya menunjukkan bagaimana kontak terlihat untuk menghubungkan debugger. Mereka cukup kecil, tetapi kami tidak perlu mengeluarkan chip memori flash.



Saya harus melakukan prosedur yang cukup luas untuk perangkat ini - pertama-tama pasang bagian pengaturan pabrik "factory_settings" menggunakan perintah / dev / mmcblk0p3, yang disimpan di antara unduhan, kemudian gunakan mode lama yang baik # chmod 4755 su, Anda juga dapat menggunakan program untuk mendapatkan hak super root SU. Selanjutnya, melalui jembatan debug Android "ADB", Anda dapat memodifikasi OS, yang sangat mirip dengan Android asli.
Jadi, lanjutkan. Jangan pernah berkata, "Perangkat X tidak dapat diretas." Pada 2011, layanan pos USPS menerbitkan iklan yang menyatakan bahwa "kulkas tidak bisa retak." Perusahaan ini telah memposisikan dirinya sebagai pemimpin dalam keamanan kulkas. Video tentang ini dapat dilihat di YouTube di sini . Saya menganggapnya sebagai tantangan. Saya tidak memiliki tambahan $ 3.000 untuk menguji pernyataan ini di kulkas baru, tetapi di tempat sampah Anda dapat menemukan apa pun, termasuk bagian dari lemari es yang dibuang. Saya berhasil mendapatkan pengisian elektronik LG Smart Refrigerator, model LFX31995ST, menjalankan sistem operasi Android 2.3 yang sedikit ketinggalan zaman. Ini adalah perangkat kesembilan yang bisa retak.



"Otak" kulkas mengendalikan pembekuan, suhu makanan, pembuatan es, konsumsi air minum, dan perangkat itu sendiri dilengkapi dengan modul Wi-Fi, port USB, dan kartu memori SD.

Pada papan sirkuit tercetak terdapat kontak UART, memungkinkan Anda untuk mengunduh konsol Root, dan chip eMMC. Ini memungkinkan untuk memasang sistem, seperti dalam kasus Fire TV, masukkan bootloader saham Android dan unduh biner superuser. Ternyata, parameter ro.secure = 0, yaitu, perangkat sudah memiliki akses superuser. Mungkin, para pengembang yakin bahwa tidak ada yang akan mengambil kesempatan ini.

Kemudian kami mulai mengetik perintah. Saya perhatikan bahwa Anda tidak boleh mempercayai data yang dimasukkan pengguna dan tidak pernah menggunakan perintah shell. Memasukkan perintah ls% s dengan parameter “; reboot” memberikan hasil dari ls; reboot, setelah itu sistem berhasil reboot.

Pameran No. 10, yang dengan sempurna menunjukkan kemampuan peretasan, adalah Vizio Smart TV, model VF552XVT, yang didasarkan pada seri Smart TV BCM97XXX Yahoo Powered Smart TV. Terlepas dari kenyataan bahwa platform ini sudah usang, masih banyak digunakan.



Ini adalah salah satu televisi LED-backlit terbaru, yang terasa lebih tipis dari model LCD.

Injeksi baris perintah di sini adalah melalui kata sandi Wi-Fi, yang merupakan versi yang lebih modern dari debugger UART melalui port USB.



Jika Anda mengatur mode Wi-Fi, Anda dapat masuk ke menu dan menghubungkan ke titik akses Wi-Fi. Jika Anda berhasil memasukkan perintah yang ditunjukkan pada slide, Anda akan mendapatkan akses ke root sistem.

Untuk melakukan ini, kami menggunakan adaptor USB UART dan kemudian memasukkan serangkaian karakter yang memberi tahu kernel tempat mengirim data. Setelah beberapa menit, kami menerima kesalahan entri data, dan kemudian memasukkan perintah bash 2 yang panjang, yang berarti bahwa semua data yang berasal dari perangkat ini harus dikirim ke shell, dan semua data shell harus dikirim ke perangkat. Dengan demikian, kami dapat memperoleh hak root melalui USB UART.

Perangkat No. 11 adalah Sony BDP-S5100 Blu-ray player dengan prosesor MTK 8500 yang menjalankan OC Linux. Ini dilengkapi dengan Wi-Fi, akses ke layanan menonton film online Netflix, VUDU dan sebagainya.



Pemutar Blu-ray lain pada chipset yang sama adalah perangkat nomor 12, LG BP530, dengan fungsi yang serupa.



Kami menemukan bahwa kedua perangkat ini memiliki kesalahan firmware chipset yang sama yang mendukung penggunaan SDK.

Jika Anda meletakkan file kosong bernama "vudu.txt" di folder bernama "vudu" pada USB flash drive, dan buat exploit "vudu.sh" yang berisi baris-baris berikut:

mount –t overlayfs –o overlayfs /etc/passwd echo "root::0:0:root:/root:/bin/sh" > /etc/passwd /mnt/rootfs_normal/usr/sbin/telnetd 

Maka Anda dapat melakukan hal berikut.

Luncurkan layanan VUDU, ia akan menjalankan skrip shell sebagai superuser, dan Anda akan dapat menggunakan koneksi tersebut secara bebas melalui jaringan Telnet. Hal ini dapat dilakukan dengan semua pemain pada chipset MTK 8500, termasuk perangkat berikutnya di nomor 13 - pemutar Blu-ray Panasonic DMP-BDT230.



Ini sangat sederhana. Slide berikutnya menunjukkan papan sirkuit tercetak yang memiliki tata letak yang hampir sama untuk semua pemain yang disebutkan. Ada keluaran konsol 115200 8n1 di mana Anda dapat menghubungkan UART. Ini sangat penting bagi kami, karena memungkinkan kami mendeteksi kesalahan di atas selama debugging. Namun, ada kemungkinan lain untuk menyuntikkan baris perintah melalui konsol root menggunakan menu di layar, karena nama folder jaringan tidak diperiksa sebelum digunakan.



Dengan demikian, Anda dapat memperoleh hak pengguna super dan mengelola semua kemampuan perangkat sesuai kebijakan Anda.



24:10 mnt

DEFCON Conference 22. GTVHacker Group. Retas semuanya: 20 perangkat dalam 45 menit. Bagian 2


Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikannya kepada teman-teman Anda, diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami temukan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (pilihan tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps hingga Desember secara gratis ketika membayar untuk jangka waktu enam bulan, Anda dapat memesan di sini .

Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki 2 x Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 TV dari $ 249 di Belanda dan Amerika Serikat! Baca tentang Cara Membangun Infrastruktur kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?

Source: https://habr.com/ru/post/id424907/


All Articles