Konferensi BLACK HAT USA. Bagaimana seorang hacker Hollywood menggunakan kamera pengintai. Bagian 1Kami juga dapat menggunakan kesalahan ini untuk mendapatkan atau mengganti kata sandi administrator terenkripsi, yang disimpan di / etc / privpasswd.

Kami dapat menarik konten dari file ini. Seperti yang Anda lihat, ini berisi nama pengguna root dan kata sandi terenkripsi.

Saat ini, kami memiliki 2 opsi: Anda dapat mencoba mendekripsi kata sandi menggunakan alat seperti John the Ripper:

Jika ini tidak berhasil, persetan dengan itu - kami memiliki root, dan kami hanya menimpa file ini. Bagaimanapun, kami mendapatkan akses ke "panel admin", dan dengan cara yang sama seperti dalam kasus dengan kamera sebelumnya, kami akan kembali memiliki hak administrator dan pengguna root.

Kerentanan ini terjadi di sebagian besar kamera IQ InVision, termasuk seri 3 dan 7, seri Sentinel, Alliance-Pro, Alliance-MX, dan Alliance-Mini. Saya tidak akan mencantumkan semua model, jika tidak saya akan tinggal di sini selamanya, seluruh daftar kamera ini tersedia di Internet dalam daftar Shodan Dork. Yang menyedihkan adalah bahwa, seperti yang Anda tahu, kamera dari pabrikan ini banyak digunakan di sekolah, kantor polisi, bank, kasino, perusahaan keuangan dan konsultan, layanan DHL, dan sebagainya.
Saya melihat bahwa hari ini kamera yang paling mahal adalah N5072 3SVision. Harganya ditunjukkan oleh frasa "Hubungi kami", jadi saya segera menyadari bahwa saya tidak mampu membelinya. Saya mempunyai beberapa masalah dengan kamera ini, karena untuk semua kamera lain saya hanya bisa mengunjungi situs web pabrikan, mengunduh firmware dan menganalisis kode untuk kerentanan. Saya tidak perlu membeli perangkat, setidaknya untuk melakukan pengujian awal.

Tetapi ketika saya pergi ke situs web produsen untuk mengunduh firmware untuk kamera ini, jendela sembul JavaScript muncul di depan saya meminta saya untuk memasukkan kata sandi. Saya segera mencoba semua kata sandi yang paling umum: cinta, seks, dewa, tetapi tidak berhasil. Namun pada akhirnya, tab kata sandi = 4 berfungsi. Dan kamu tahu kenapa? Karena jika Anda melihat JavaScript yang mengirim kata sandi kembali ke server, saya bahkan tidak perlu menjelaskan apa yang Anda lihat di sana (tertawa), itu bagus sekali.

Sampai Anda mendapatkan kata sandi yang benar, Anda cukup diarahkan ke URL saat ini dengan ampersand tab = 4 di akhir baris. Karena saya cukup kompeten untuk memahami apa itu, saya memasukkan hal ini sebagai kata sandi dan pergi ke halaman unduh firmware.
Pendekatan semacam itu bukan pertanda baik untuk keamanan sistem mereka. Fakta bahwa mereka menggunakan server web httpd khusus di firmware terlihat sangat tidak berbahaya, tetapi jika Anda melihat baris dalam file biner ini, Anda dapat melihat bahwa mereka semua sangat dapat dikustomisasi.

Jadi saya memutuskan bahwa karena tampilannya benar-benar dapat disesuaikan, saya perlu mempertimbangkan bagaimana server web mereka menangani otentikasi. Sekarang saya tahu bahwa kamera menggunakan perangkat HTTP dasar untuk otentikasi, saya menggunakan base64 untuk mendekripsi. Jika Anda terbiasa dengan otentikasi melalui http, maka Anda tahu bahwa di sini nama pengguna dan kata sandi digabungkan, dan kemudian disandikan dalam base64.

Jadi saya mulai mencari kode untuk referensi silang yang menyebutkan b64_decode. Yang mereka lakukan ketika mereka mendekripsi kata sandi Anda adalah meneruskannya ke b64_decode untuk verifikasi, dan tidak apa-apa, mereka mendekripsi kata sandi Anda. Kemudian mereka membuat dua perbandingan string: string dengan parameter 3sadmin hard-coded dan string 27988303 hard-coded lainnya.
Dulu saya berpikir bahwa Anda tidak bisa begitu bodoh untuk memasukkan hal-hal yang sulit di server HTTP Anda, karena ini tidak bisa dipercaya, tetapi terus bekerja.

Dengan demikian, Anda dapat mengakses kamera 3SVision dan menjadi administrator. Ini memberi Anda akses ke register kas video, pos pemeriksaan Taiwan, dan ruang bawah tanah perusahaan industri Rusia.
Tapi melihat semua video ini dengan cepat menjadi membosankan, jadi saya ingin mendapatkan root. Untungnya, kode mereka penuh dengan semua jenis panggilan sistem tidak aman, dan penyerang membuka bidang terlebar untuk diserang, terutama jika ia masuk sebagai administrator. Contoh terbaik adalah penangan video records.cgi.

Tidak semua, tetapi banyak dari kamera ini mendukung penyimpanan lokal, sehingga Anda dapat, misalnya, memasukkan kartu memori SD Anda ke dalam kamera dan menyimpan video untuk Anda sendiri di dalamnya. Anda juga diberi kesempatan untuk mengelola beberapa file dasar melalui antarmuka admin, dan ini dilakukan melalui fungsi do_records pada halaman cgi. Cgi bukan halaman fisik pada disk. Ketika server web melihat bahwa Anda meminta catatan CGI, itu memanggil penangan fungsi do_records, yang memeriksa tindakan apa yang Anda lakukan. Misalnya, jika Anda ingin menghapus file, Anda harus memberikan nilai perintah aRemove yang setara dengan "hapus".

Selain itu, Anda harus menunjukkan file mana yang ingin Anda hapus.

Nama file ini dimasukkan ke dalam perintah RM, yang diteruskan ke sistem.

Saya pikir Anda sudah mengerti apa yang bisa menyebabkan hal ini. Alih-alih nama file, Anda dapat memasukkan perintah yang akan menyebabkan sistem reboot, dan sebagainya. Dalam hal ini, kita akan mendapatkan kontrol penuh atas sistem, seperti halnya dengan peretasan kamera sebelumnya.

Ini bekerja pada hampir seluruh lini produk 3SVision, dan mempengaruhi tidak hanya kamera, tetapi juga server video mereka, karena mereka menggunakan server web yang sama. Ketika saya melakukan penelitian, saya menemukan perusahaan lain bernama A-Linking, yang menggunakan firmware yang sama di kameranya. Tetapi mereka mengubah kredensial hard-coded menjadi sesuatu yang lain. Jadi mereka masih memiliki data kode-keras ini, tetapi sekarang mereka berbeda dari kredensial yang digunakan dalam firmware kamera 3SVision. Saya tidak akan mencantumkan semua model kamera seperti itu, saya hanya mencatat bahwa mereka semua berada di peringkat kerentanan Shodan Dork.

Mengingat biayanya yang tinggi dibandingkan dengan kamera dari pabrikan lain, ini sangat menarik, selain itu, seperti yang Anda tahu, kamera ini digunakan di perusahaan militer, energi dan industri asing. Jika Anda melihatnya di Shodan Dork, berhati-hatilah dengan menjual kamera-kamera ini di luar negeri dan jangan salahkan saya jika militer Tiongkok datang untuk Anda.
Jadi apa yang memberi saya tentang apa yang saya katakan? Saya menembus jaringan Anda, saya melihat Anda dan saya memiliki hak root. Ini adalah peluang besar bagi penyerang, mengingat sebagian besar kamera ini juga terhubung ke jaringan internal. Anda dapat mengaksesnya dari jarak jauh, masuk ke dalam, mendapatkan hak root, masuk ke komputer berbasis Linux dan dari sana melakukan apa pun yang Anda inginkan dengan jaringan lokal mereka.
Di sini saya mundur sedikit dan berkata: "ok, ini bagus, tapi apa yang bisa saya lakukan dengan kamera itu sendiri"? Saya mendapatkan akses root ke kamera, ini luar biasa, tetapi jika Anda pergi ke administrator sistem pengawasan yang biasa dan mengatakan kepadanya bahwa Anda memiliki akses root ke kamera, dia bahkan tidak akan mengerti apa artinya ini. Karena itu, saya ingin melakukan sesuatu yang lebih menarik, sesuatu yang benar-benar menunjukkan semua kemungkinan. Saya ingin memotong aliran video yang terlihat seperti ini:

Dan gantilah dengan sesuatu yang terlihat seperti ini:

Ini adalah semacam hack Hollywood klasik, ketika Anda ingin menembus objek yang dijaga diisi dengan kamera pengintai, dan seorang hacker dari grup Anda harus memecahkan kamera ini sehingga itu menunjukkan bahwa tidak ada seorang pun di sana, walaupun dalam kenyataannya ada seseorang di sana. Untuk membuktikan kemungkinan trik semacam itu, saya memilih kamera pengintai Trendnet TV-IP410WN.

Saya memilihnya karena beberapa alasan. Pertama-tama, saya mampu membelinya, yang merupakan nilai tambah besar. Kedua, ia memiliki akun backdoor:

Mengizinkan Anda membuka file-file ini:

Yang memiliki kerentanan sangat luas yang memungkinkan injeksi perintah:

Yang, pada gilirannya, dapat dengan sangat sederhana digunakan untuk mengirim paket yang kita butuhkan ke kamera:


Di sini ada peluang peretasan yang sama yang saya sebutkan sebelumnya, hanya dalam hal ini kami memiliki kamera yang lebih murah.
Ternyata, kesalahan khusus ini diketahui kembali pada tahun 2011. Tetapi masalahnya adalah baik saya maupun orang lain tidak dapat menggunakan informasi ini, karena dalam uraian kerentanan ini tidak ada daftar perangkat yang ada, atau indikasi firmware tertentu, sehingga semua orang mengabaikannya. pesan. Karena itu, jika Anda beralih ke Google dengan permintaan "Kerentanan kamera TV-IP410WN", Anda tidak akan menemukan apa pun.
Masalah lain dari tidak memberikan informasi tersebut adalah bahwa kerentanan ini tidak diketahui tidak hanya oleh orang-orang yang terlibat dalam keamanan komputer, tetapi juga bagi produsen dan pemasok produk. Ini tidak memungkinkan mereka untuk menentukan firmware mana dan model kamera mana yang perlu diperbaiki. Jadi perangkat ini masih dijual di mana-mana dengan bug yang sama - Shodan Dork menunjuk ke lebih dari 28 ribu kamera semacam itu.
Jadi, anggaplah bahwa gambar saluran video yang diamati oleh administrator ditampilkan di sini, yang paling konsisten dengan tujuan percobaan kami. Kami berasumsi bahwa administrator melihat video ini melalui antarmuka web, dan bukan melalui semacam layanan pengguna, RTPID, atau sesuatu seperti itu.

Jika Anda mengambil gambar dari kamera khusus ini dilihat di browser, Anda dapat melihat bahwa proses mjpg.cgi bertanggung jawab untuk menonton video streaming ini.

Menggunakan injeksi perintah, kita dapat melihat proses mana yang sedang berjalan, dan kemudian benar-benar "membunuh" semua proses mjpg.cgi:

Ini akan menyebabkan efek "pembekuan" sementara dari gambar saluran video administrator. Ini akan terjadi karena browser akan menampilkan gambar terakhir yang diterima dan tidak akan lagi menerima gambar dari kamera ini. Tetapi kami tidak akan melakukan ini, karena jika administrator memperbarui browser atau menavigasi ke halaman baru, dan kemudian kembali untuk melihat dari kamera, streaming video akan dilanjutkan dan dia akan melihat gambar secara real time.
Oleh karena itu, kami akan mencoba mengganti file mjpg.cgi, yang seharusnya tidak sulit - dua baris skrip bash akan cukup.

Khususnya, yang harus Anda lakukan adalah mengganti halaman cgi ini pada disk dengan skrip yang mengembalikan beberapa header dasar ke browser, dan kemudian menggunakan perintah cat untuk memasukkan gambar JPEG statis dari lift kosong ke dalam transfer. Bisa jadi gambar kambing, apa saja. Tetapi dalam kasus kami, administrator sekarang akan terus-menerus melihat lift kosong terlepas dari apa yang sebenarnya terjadi di sana.

Bahkan, itu terlihat jauh lebih menarik dalam video "langsung", jadi jika para dewa demonstrasi bersama saya hari ini, kita akan baik-baik saja. Jadi, seperti yang bisa dilihat di layar, kamera saya menjaga harta saya - sebotol bir. Lihat, saya ambil, dan kamera menampilkannya. Sekarang saya akan menggunakan satu exploit dalam bentuk skrip ini yang akan "membunuh" video secara real time dan menggantinya dengan file gambar statis, yang baru saja saya bicarakan.
Dia juga akan memberi saya hak administratif untuk mengontrol kamera dan membuat URL rahasia sehingga saya masih bisa menonton video asli sementara saluran admin terus menyiarkan video yang dibekukan. Di layar Anda melihat bagaimana eksploit ini dikirim.

Jadi, semuanya berjalan dengan baik, ia mengembalikan saya kredensial pengguna - login administrator dan kata sandi securecam1234.

Dia juga memberi tahu saya bahwa URL telah dikonfigurasi sehingga saya dapat menonton saluran video yang sebenarnya, jadi jika saya pergi ke browser hacker saya sekarang, masukkan kredensial saya, saya dapat melihat apa yang terjadi.

Jadi, jika seseorang mengambil botolnya, saya akan mengetahuinya:

Tetapi administrator - tidak, botolnya akan tetap di atas meja.

Jadi, beberapa pemikiran terakhir tentang hal ini yang ingin saya bahas. Saya telah memberi Anda daftar yang jauh dari daftar kamera rentan, penelitian saya tidak seperti ini. Pada kenyataannya, ada lebih banyak kamera seperti itu, dan kebanyakan dari mereka sangat mudah retak.
Hampir setiap kamera akan menampilkan nomor model pada halaman masuk atau halaman masuk kredensial, bahkan jika Anda tidak mengautentikasi, tergantung pada bagaimana mereka memverifikasi otentikasi ini. Jika penyerang mengetahui nomor model tanpa mengetahui lebih banyak tentang kamera ini, ia dapat pergi ke Google, menemukan situs web produsen dan mengunduh firmware.
Anda mungkin juga perlu mencari tahu tab itu = 4, tetapi setelah menerima firmware, Anda dapat mencari kerentanan di kamera ini bahkan tanpa membelinya.
Ini persis apa yang saya lakukan dengan semua kamera ini - semuanya dilakukan dengan bantuan analisis firmware, semua exploit dibuat atas dasar dan saya tidak membeli satu kamera pun. Kemudian cukup menggunakan Binwalk untuk menganalisis dan membongkar firmware, dan IDA dan Qemu untuk membongkar dan meniru, jika perlu, setelah itu kemenangan menanti saya.
Dan sekarang saya akan menjawab pertanyaan Anda. Mengenai keamanan kamera, saya akan mengatakan ini: selama beberapa jam saya bisa menggambarkan semua kamera yang keamanannya saya periksa, tetapi di antara mereka tidak ada satu kamera pun yang akan terlindungi dengan sempurna. Sementara itu, ada produsen yang produknya saya tidak punya kesempatan untuk berkenalan, karena tidak ada uang untuk membeli kamera seperti itu, karena mereka tidak menyediakan kemampuan untuk mengunduh firmware secara gratis. Karena itu, saya tidak berani menyatakan bahwa tidak ada kamera pengintai yang dapat diandalkan sama sekali.
Mereka bertanya kepada saya apakah mungkin untuk mengganti gambar statis dengan peretasan dengan sesuatu yang dinamis. Cara termudah adalah dengan memasukkan sesuatu seperti file animation.gif, itu akan menjadi solusi murni peretas. Namun, saya pikir sangat mungkin untuk menulis cgi Anda sendiri, yang akan memungkinkan Anda untuk menampilkan video secara real time. Saya terlalu malas untuk ini, meskipun saya demo. Tetapi jika Anda tahu konsep perangkat ini, maka Anda dapat melakukan apa pun yang Anda inginkan dengan mereka.
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 buat untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana membagi server? (opsi 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 Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?