Konferensi BLACK HAT. Cara membuat ponsel mata-mata. Bagian 2

Konferensi BLACK HAT. Cara membuat ponsel mata-mata. Bagian 1

Hal berikutnya yang perlu kita modifikasi adalah manifes. Ini adalah hal yang mengatakan layanan mana yang terlibat dalam aplikasi, izin apa yang mereka miliki, dan sebagainya.

Jadi, kita akan mulai dengan kode itu sendiri, dan itu dengan kode direktori smali. Jika Anda melihat pohon direktori Angry Birds, Anda akan melihat banyak folder yang berisi berbagai komponen, disusun dalam bentuk subdirektori.



Saya bahkan tidak tahu mana dari hal-hal ini yang benar-benar saya butuhkan dan apa yang mereka lakukan, tetapi saya tidak membutuhkannya. Sekarang saya akan melakukan hal teknis dengan kerumitan luar biasa - salin direktori droidwhisperer dari sini, dari direktori SearchableDictionary, di sini, ke subdirektori com / burst / example / android dari direktori smali. Itu saja, saya harap Anda mengerti apa gunanya.

Jadi, salinan kode kami telah dimasukkan jika perlu, tetapi ada beberapa hal lagi yang perlu dilakukan. Saya melihat kembali daftar cheat saya dan melihat bahwa sekarang perlu untuk membuat perubahan pada manifes. Pertama-tama, ketika kita mengambil manifes, kita perlu mencari tahu nama aplikasi - saya akan menyorotnya dalam warna merah, kemudian kita akan membutuhkannya karena kita memasukkan sesuatu ke dalam kode yang ada.

Jadi, memperbarui manifes diperlukan untuk memasukkan layanan mata-mata yang tertanam dan izinnya dalam aplikasi. Ini terdiri dari langkah-langkah berikut:

- mengingat nama aplikasi asli untuk nanti,
- Definisi layanan Droidwhisperer
- Definisi izin yang diperlukan agar Droidwhisperer berfungsi.



Jadi saya mengambil manifesto ini dan menyeretnya ke dalam buku catatan. Hal pertama yang saya lakukan dalam aplikasi adalah mendefinisikan layanan kami. Untuk melakukan ini, saya menemukan fungsi onCreate di manifes dalam aksi utama aplikasi target. Dalam kasus Angry Birds, itu adalah com / rovio / ka3d / App. Setelah itu, saya memotong bagian dari kode yang disorot dengan warna kuning dan memasukkannya segera setelah memanggil involk-super di onCreate.

Dengan demikian, kami menyatakan dalam manifes bahwa kami akan memiliki layanan Droidwhisperer, yang harus dimulai segera setelah tersedia. Itu sebabnya kami membutuhkan nama com.rovio.ka3d.App aplikasi asli, kami menggunakannya untuk memasukkan nama baru com.rovio.ka3d aplikasi kami. service.Droid Whisperer.

Selanjutnya, saya menyalin dan menempel izin untuk aplikasi mata-mata kami ke tempat yang sesuai dalam manifes - ini adalah garis yang disorot dengan warna hijau.



Setelah melakukan perubahan, kami menyimpan manifes, yang sudah termasuk izin yang kami butuhkan dan layanan ditentukan yang harus dimulai ketika telepon melakukan booting, jadi ini tidak masalah.

Android membutuhkan hal tertentu yang meluncurkan aplikasi, jadi aplikasi Angry Birds harus berisi kode yang akan meluncurkan layanan mata-mata saya segera setelah game asli diluncurkan. Sekarang saya pergi ke direktori permainan dan menemukan folder ka3d di sana, buka dan salin file aplikasi yang terkandung di dalamnya ke notepad. Ini adalah kode smali, yang merupakan versi kode assembler untuk Dalvik. Kami menggunakan fungsi onCreate yang terdapat di Android. Saya menggunakan pencarian notebook untuk menemukan lokasi fungsi ini. Di sini Anda perlu sedikit pengetahuan tentang cara kerja OS Android - misalnya, fungsi onCreate digunakan untuk memanggil kelas super, yaitu, untuk membuat atau memulai kembali aktivitas aplikasi. Di sinilah saya memasukkan kode saya, yang harus memulai peluncuran layanan mata-mata. Saya kembali ke lembar contekan saya, salin baris yang diperlukan dari sana dan tempel di sini.
Bagaimana saya tahu kode mana yang harus dimasukkan di sini? Saya baru saja menyalinnya dari aplikasi asli yang saya tulis. Saya mengatakan bahwa ada dokumentasi yang sangat baik untuk smali, jadi Anda tidak perlu mempelajari semuanya untuk melakukan ini.



Baru-baru ini, beberapa set "penghubung" diumumkan yang memungkinkan Anda untuk mengotomatiskan penerimaan kode yang diperlukan. Hanya beberapa minggu yang lalu, toolkit pengembang Android tersebut dirilis, memungkinkan Anda untuk membuat layanan apa pun dan mengimplementasikannya dalam aplikasi yang sudah ada. Semua ini bisa dilakukan secara manual.

Jadi, segera setelah fungsi onCreate dipanggil, ia mengaktifkan layanan kami. Jangan lupa bahwa setelah ini, Anda perlu menyimpan file yang dimodifikasi. Jadi, setelah kami melakukan pelatihan teknis yang sesuai, kami perlu mengumpulkan aplikasi kami yang telah dimodifikasi. Jadi saya kembali ke Apk_tool dan mengumpulkan bagian-bagian dari direktori Angry Birds ke direktori birds.apk. Jadi, kami membangun kembali aplikasi asli, membuat perubahan yang diperlukan untuk itu, dan menempatkan majelis baru dalam file bernama birds.apk.

Jika Anda mencoba memasang aplikasi yang dimodifikasi ini di ponsel Android Anda sekarang, dia akan memberi tahu Anda bahwa aplikasi ini tidak ditandatangani, jadi kami harus menandatanganinya. Untuk melakukan ini, saya membuat sertifikat digital yang ditandatangani sendiri dengan kunci publik yang sesuai, dan menyimpannya di direktori kerja injeksi saya. Ini adalah file yang disebut kunci.



Ini hanya sertifikat yang saya buat sendiri. Sekarang saya akan kembali dan mengambil perintah yang kuat dan singkat ini dari boks saya:

jarsigner -verbose -keystore keys birds.apk alias_name

Agar tidak membingungkan apa pun, saya hanya memotongnya dan meletakkannya di tempat yang tepat. Jadi saya akan menandatangani file birds.apk dengan kunci saya sendiri, cukup sederhana. Lalu saya memberikan perintah dan menandatangani semua komponen aplikasi dengan kunci digital ini. Sekarang saya bisa meletakkannya di AppStore, di Google Play - di mana saja.

Seperti yang sudah saya katakan, ponsel tidak memiliki antarmuka yang akan menunjukkan kepada pengguna yang menandatangani apa. Setelah aplikasi ditandatangani, itu dapat diinstal. Tidak ada yang tahu siapa yang menandatangani aplikasi ini, dan ini hebat.

Jadi, versi Angry Birds yang dimodifikasi terlihat persis seperti gim asli dan fungsinya dengan cara yang sama, kecuali itu berisi kode mata-mata saya. Sekarang Anda melihat tanda tangan digital di layar yang dibuat oleh Kevin McNami dari Kindsite.
Hal lain yang menarik yang akan saya tunjukkan, kembali sedikit. Kami melihat aplikasi asli - ditandatangani oleh Rovio Mobile Ltd. Lihatlah tanggal penandatanganan - sertifikat digital ini berlaku hingga 26 Agustus 2010, tetapi aplikasi tersebut diinstal pada ponsel tanpa pertanyaan. Jadi, bahkan jika sertifikat digital Anda telah berubah menjadi sampah, masih memberi Anda hak untuk menginstal aplikasi, yaitu, tidak ada yang memeriksanya. Saya pikir ini adalah salah satu hal yang merupakan salah satu kelemahan serius dari model keamanan Android.

Faktanya adalah bahwa tidak ada verifikasi ketat terhadap sertifikat digital yang digunakan. Masalah ini dapat diselesaikan dengan mengharuskan mereka yang ingin menerima sertifikat digital untuk mendaftar. Jadi, kembali ke presentasi kami. Saya ingin memikirkan tanda tangan digital sekali lagi.



Semua aplikasi harus ditandatangani. Setiap tanda tangan lama tetap valid jika ditandatangani sendiri. Tanda tangan hanya diperiksa saat menginstal aplikasi. Artinya, saya dapat mengubah file .apk apa pun yang sudah diinstal pada ponsel, dan sistem tidak akan bereaksi terhadap hal ini dengan cara apa pun. Ini adalah kerentanan yang cukup signifikan. Jika Anda ingin mengubah file .apk di ponsel Anda, Anda harus memiliki akses untuk mengubah direktori di mana file-file tersebut disimpan, tetapi tidak akan sulit untuk mendapatkan hak root untuk melakukan apa pun dengan telepon.

Hal kedua yang mengganggu saya adalah bahwa tidak ada antarmuka pengguna yang menunjukkan siapa yang menandatangani aplikasi. Misalnya, ketika menginstal aplikasi, sebuah tulisan akan muncul yang ditandatangani oleh Kevin McNami dari Kindsite. Saya perhatikan bahwa tanda tangan harus cocok dengan aplikasi yang sudah dipindahkan atau diperbarui, jadi saya tidak bisa mengganti versi Angry Birds yang ada jika saya tidak mengubah nama spyware saya. Tapi begitu saya melakukan ini, tidak ada masalah muncul. Pengembang Android mengklaim bahwa sertifikat tidak perlu ditandatangani oleh pusat resmi, dan aplikasi Android sebagian besar menggunakan tanda tangan yang ditandatangani sendiri.

Sebelum saya mulai menjawab pertanyaan, saya ingin mengatakan bahwa ada seluruh industri spyware untuk telepon. Mereka dirancang untuk memantau orang yang Anda cintai atau anak-anak Anda, atau mitra bisnis.



Sebelumnya, mereka terbiasa memantau pasangan yang tidak setia, tetapi sekarang tujuan mereka telah berubah. Misalnya, Anda dapat memantau anak-anak Anda untuk memastikan keselamatan mereka, dan ini sepenuhnya legal. Tapi saya pikir ponsel mata-mata lebih cocok untuk digunakan dalam sistem BYOD. Anda dapat memberikan fungsi mata-mata pada modul mata-mata dan menyisipkannya ke dalam aplikasi apa pun, dan pengguna tidak akan tahu apa-apa tentang itu. Ini sangat ideal untuk keperluan spionase industri, sehingga perangkat ini memperluas cakupan ancaman keamanan yang sedang berlangsung.

Jadi, ini adalah perangkat jaringan yang berfungsi penuh, dan jika saya terhubung ke Wi-Fi di tempat kerja, saya dapat menginstal perangkat lunak di telepon ini yang akan memindai jaringan untuk mengetahui kerentanan. Pada saat yang sama, itu akan diperbarui jika perlu dan mengirim informasi yang dicuri ke situs web perintah & kontrol. Artinya, ponsel yang terinfeksi adalah platform diperpanjang ancaman keamanan konstan dengan kemampuan serangan besar. Misalnya, seseorang hanya berjalan di dalam gedung dengan telepon seperti itu, memindai jaringan, dan kemudian menyerang mereka dari dalam. Tentu saja, orang-orang melindungi koneksi Internet mereka melalui firewall dan firewall serupa, tetapi perangkat ini terhubung ke jaringan secara langsung melalui udara, telepon mata-mata menghubungkan ke jaringan di mana saja di mana ada titik akses, dan tidak ada firewall yang akan membantu di sini. Faktanya, telepon memasuki jaringan melalui pintu belakang. Telepon mata-mata memang keren, tetapi di sini kami memiliki trojan akses jarak jauh, dan saya pikir itu cukup berbahaya.

Saya pikir saya sudah mengatakan semua yang ingin saya bicarakan, dan sekarang saya siap untuk menjawab pertanyaan apa pun.
Jadi, pertanyaan pertama adalah apakah aplikasi khusus ini berusaha menyembunyikan keberadaannya. Jawabannya adalah tidak, ini tidak benar, karena jika Anda melihat layanan yang berjalan di telepon, Anda akan melihatnya di sana. Saya pikir itu bisa menjadi proses tersembunyi, tetapi dalam kasus ini "telepon mata-mata" kami diciptakan hanya untuk menunjukkan konsep ancaman.

Bisakah aplikasi kita dideteksi oleh program antivirus? Tidak, antivirus tidak menghitung modul mata-mata ini, karena tidak tahu apa-apa tentangnya. Akan lebih mungkin untuk membingungkan kode dan kemudian memasukkannya ke dalam aplikasi, dan proses seperti itu dapat diotomatisasi.
Apa yang bisa dilawan dengan aplikasi spyware semacam itu? Anda dapat menggunakan antivirus yang mendeteksi aplikasi berbahaya yang diketahui dalam hal apa pun, tetapi kami fokus pada lalu lintas yang dikirim ke situs web perintah & kontrol. Mungkin, akan mungkin untuk mengotomatiskan proses kebingungan kode, tetapi sangat sulit untuk mengubah protokol komunikasi dengan perintah & kontrol server on the fly, Anda perlu mengubah server itu sendiri, mengubah klien dan semua itu. Oleh karena itu, kami menyarankan untuk menggabungkan kedua metode perlindungan: anti-virus terhadap aplikasi berbahaya yang diketahui dan memonitor lalu lintas jaringan yang dikirim oleh perangkat mata-mata ke situs web perintah & kontrol.



Saya akan menjawab pertanyaan tentang apa arti dari kebetulan dari tanda tangan digital artinya ketika memindahkan atau memperbarui aplikasi. Jika ini adalah pertama kalinya Anda menginstal aplikasi di ponsel Anda, maka Anda tidak akan memiliki masalah dengannya. Tetapi jika ponsel sudah memiliki aplikasi asli dan Anda ingin menggantinya dengan salinan baru dengan tanda tangan digital yang berbeda, atau dengan aplikasi yang dimodifikasi dengan nama yang sama, Anda tidak akan berhasil, karena ponsel akan dapat membandingkan tanda tangan asli dalam aplikasi dengan versi dan catatan yang dimodifikasi. bahwa mereka tidak cocok. Dalam hal ini, saya mengelak dari perlindungan dengan hanya mengganti nama aplikasi asli dengan nama yang berbeda.

Server perintah & kontrol dapat berinteraksi dengan semua fungsi Android dan menggunakan API-nya. Anda dapat memperoleh akses root dari jarak jauh, mengunggah file ke telepon Anda, dan biasanya membuangnya atas kebijakan Anda, karena Android memberikan banyak peluang untuk membuka akses ke ponsel Anda melalui jaringan. Saya pikir fungsionalitas yang sama juga tersedia di platform iOS, hanya para pengembang OS ini yang lebih serius memeriksa keamanan aplikasi baru. Misalnya, Anda harus mendapatkan sertifikat dari mereka yang mengesahkan orang Anda sebagai pengembang aplikasi, dan aplikasi itu sendiri akan diperiksa sebelum sampai ke App Store mereka, sementara Google akan memeriksa aplikasi setelah diposting di Play Market.

Saya tidak tahu detail toko aplikasi Google Play, tetapi saya pikir jika pengembang memiliki reputasi buruk atau aplikasi tersebut dikompromikan, itu tidak akan muncul di toko. Namun, ada banyak toko aplikasi seluler online lain di mana penyerang dapat meng-host aplikasi jahat. Ini adalah jenis serangan phishing ketika kami memaksa pengguna untuk mengunduh aplikasi ini dari mana saja dengan menyelipkan tautan ke sana.
Faktanya adalah bahwa semua fungsi dalam aplikasi spyware kami terlihat seperti biasa, tidak ada yang ilegal yang coba dilakukan oleh aplikasi ini. Ketika diinstal, itu mensyaratkan bahwa ia diberikan izin yang sama dengan aplikasi hukum. Hal lain adalah bagaimana fungsi-fungsi ini akan digunakan nanti. Tentu saja, jika seseorang melaporkan bahwa droidwhisperer adalah virus, maka semua antivirus yang diinstal pada ponsel tidak akan mengizinkan instalasi aplikasi yang berisi itu.

Seperti yang saya katakan sebelumnya, spyware dapat diunduh dari situs pihak ketiga. Dalam hal ini, serangan phishing adalah bahwa mereka akan memberi tahu Anda petunjuk instalasi yang terperinci dan menawarkan untuk mengunduh game ini secara gratis, karena itu adalah permainan yang sangat keren, dan Anda tidak perlu membayarnya dengan mengunduh yang asli di toko Google. Biasanya pengguna tergoda oleh tawaran seperti itu.

Saya perhatikan bahwa kami tidak berangkat untuk menembus jaringan yang dilindungi oleh enkripsi, tetapi hanya terhubung ke jaringan yang tersedia. Terima kasih atas perhatian anda!



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? (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 Januari 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?

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


All Articles