Konferensi DEFCON 27. Manfaat dari produk-produk hacker untuk macOS. Bagian 1Setelah menerima file dengan kode jahat dari server C&C hacker jarak jauh, eksploit tersebut melanjutkan untuk menjalankannya. Ia menggunakan metode SDF yang sama ketika arsip malware dibongkar menggunakan perintah built-in ditto dan kemudian dieksekusi melalui NS API. Dengan demikian, Windtall menggunakan bootloader bawaan bawaan.

Selain itu, backdoor dilengkapi dengan logika self-likuidasi, jadi setiap kali malware mulai, ia menghubungi server hacker dan menanyakan apakah itu harus dihapus. Jika server C&C merespons dengan kode "1", program menghapus sendiri, sehingga menghentikan aktivitas spyware.

Ini adalah fitur yang sangat berguna yang memungkinkan penyerang untuk "disinfeksi" target dari jarak jauh tanpa meninggalkan jejak intervensi mereka. Sekarang saya akan menunjukkan bagaimana kita membuat kembali virus ini untuk kebutuhan kita sendiri.

Pertama, mari kita bicara tentang reproofing exploit. Membuat halaman web peretas yang secara otomatis mengunduh file ZIP yang berisi aplikasi jahat cukup sederhana. Seperti yang saya sebutkan, Safari akan secara otomatis membuka ritsleting arsip ZIP secara default, jadi jika kami menempatkan aplikasi jahat dalam arsip ini yang mengimplementasikan beberapa penangan URL, Mac OS akan secara otomatis mendaftarkannya sebelum pengguna memulai aplikasi.
Halaman web jahat kemudian dapat meminta URL pengguna yang sudah terdaftar ini, yang akan mengarah pada peluncuran aplikasi. Biasanya, jendela peringatan muncul, tetapi pengguna mengklik tombol tanpa memperhatikannya.
Jadi, Anda melihat demonstrasi eksploitasi yang dirancang ulang dan jendela peringatan bahwa "Final_Presentation" adalah aplikasi yang diunduh dari Internet, menanyakan apakah pengguna yakin bahwa ia ingin membukanya di komputer?
Mengklik tombol "Open" adalah permintaan kedua yang menyebabkan jendela pop-up, dan jika pengguna mengklik ikon aplikasi yang ditampilkan di dalamnya, kita akan melihat bahwa malware secara otomatis diinstal pada sistem.

Ada cacat logis di Apple di mana Anda tidak perlu menambal OS untuk menginfeksi sistem, dan ini masih berfungsi di versi terbaru dari macOS. Sekarang kita telah membuat ulang exploit, mari kita bicara tentang membuat ulang malware.

Langkah pertama kami adalah mengganti alamat bawaan server C&C sehingga eksploit akan menghubungi server kami dan mengunduh malware yang dikonversi dari dalamnya. Sayangnya, alamat itu dienkripsi, tetapi ini tidak mengganggu kami. Kami memutuskan untuk membuat malware selalu memuat perpustakaan dinamis. Kemudian, segera setelah perpustakaan kami diluncurkan di ruang alamat proses berbahaya, pada prinsipnya, kami dapat memodifikasi malware sehingga mencegat alamat yang didekripsi dari server C&C selama operasi bahkan sebelum menggunakan server ini untuk koneksi. Mari kita lihat lebih dekat proses ini.
Izinkan saya mengingatkan Anda lagi - tujuan kami adalah membuat profil ulang malware dengan menetapkan server C&C kami sendiri sehingga malware akan terhubung kembali ke infrastruktur kami.

Jadi, perpustakaan dinamis dimuat ke ruang alamat malware, dan kami mengganti prosedur dekripsi, atau menerapkan Swizzle. Metode penggantian API yang efisien dan kuat ini disebut Yoop.
Slide menunjukkan bahwa kami mengganti fungsi dekripsi sedemikian rupa sehingga setiap kali malware memanggilnya, itu sebenarnya memanggil metode dekripsi kami di perpustakaan kami. Saya tidak tahu apa algoritma dekripsi itu dan bagaimana cara kerjanya, dan, jujur saja, saya tidak peduli, tetapi setelah substitusi saya dapat melihat hasil dari enkripsi ini. Jadi, jika metode enkripsi asli mengembalikan alamat server C&C yang didekripsi kepada saya, saya dapat dengan mudah menanamkan server C&C saya sendiri dalam logika malware. Ini memungkinkan kami untuk mengganti server C&C yang didekripsi secara transparan dengan server kami.
Sekarang saya menambahkan beberapa pesan debug ke perpustakaan sehingga ketika kita menjalankan malware yang dikonversi, kita dapat melihat bagaimana alamat server C&C diganti selama pelaksanaannya. Di jendela terminal baris perintah, Anda dapat melihat bagaimana perpustakaan kami, yang melewati metode dekripsi asli, mendeteksi bahwa jawaban ini berasal dari server C&C, yang alamatnya sekarang didekripsi.

Karena kami tidak ingin program kami merujuk pada logika malware asli, kami hanya membuang fungsi ini dan kembali ke program kami sendiri. Tentu saja, kita harus selalu yakin bahwa backdoor mengakses server C&C kita, dan bukan server grup APT asli.
Kami perlu menulis server C&C kami, karena sekarang malware akan terhubung dengannya, dan kami perlu menyediakan "percakapan" dengan protokol agar dapat membingungkan malware.

Fungsi utama backdoor Windtall adalah untuk mengumpulkan dan mengekstrak file pengguna, jadi pertama-tama kami perlu menambahkan fungsi ini ke server C&C kami. File diambil melalui permintaan POST, jadi kami hanya menulis beberapa baris kode Python untuk memungkinkan kami menyimpan file yang diambil dan dikirim kepada kami dari host yang terinfeksi.
Anda melihat di layar bagaimana server C&C kami menerima file yang diekstrak dari komputer yang diserang.

Di sebelah kiri Anda dapat melihat bagaimana permintaan jaringan masuk, dan di sebelah kanan - bagaimana server kami menulisnya ke sistem file. Ini berarti bahwa kami sekarang mendukung kemampuan malware untuk mengekstrak semua jenis file dari host yang terinfeksi.
Kami juga telah mengadaptasi server C&C kami untuk mendukung kemampuan unduhan dan eksekusi Windtall. Kami perhatikan bahwa untuk malware ini melakukan 2 permintaan.

Permintaan pertama menyangkut mendapatkan nama file untuk diunduh, dan permintaan kedua kita harus menjawab dengan byte spesifik dari file yang ingin kita unduh. Malware menyimpan semua ini ke file yang kami tentukan, lalu membongkar dan menjalankannya. Saya ulangi sekali lagi - kami hanya perlu beberapa baris dengan Python, itu sederhana, karena menggunakan banyak perpustakaan bawaan.
Segera setelah kami melakukan ini, kami memiliki kesempatan untuk "mengacaukan" implan. Mari kita melihatnya dalam aksi. Kami melihat bagaimana malware terhubung ke server C&C kami, karena kami berhasil mengubah alamat server asli, dan melakukan tugas yang diberikan padanya - mengunduh aplikasi Kalkulator.

Kemampuan untuk mengunduh dan menjalankan aplikasi dari jarak jauh berarti bahwa kita dapat menginstal alat lain atau sampel malware lainnya di komputer pengguna. Ini secara tak terbatas memperluas potensi untuk menggunakan perangkat lunak peretas yang digunakan kembali.
Akhirnya, mari berikan server kami kemampuan untuk menghapus malware dari jarak jauh. Fungsi penghancuran diri sangat berguna jika orang-orang dari FBI masuk ke pintu Anda. Satu klik pada kunci - dan virus itu sendiri akan menghapus dirinya sendiri dari semua sistem yang terinfeksi.

Spyware secara berkala menghubungi kami dengan permintaan apakah perlu menghapusnya sendiri, dan jika perlu, kami cukup merespons dengan kode "1", setelah itu dihapus sepenuhnya dari sistem.
Demo lain akan menunjukkan tindakan ini. Anda dapat melihat bahwa malware kami memiliki logo oranye sendiri yang meniru dokumen Power Point, tetapi pada kenyataannya itu adalah direktori sistem tersembunyi.

Setelah itu sekali lagi mengirim permintaan penghancuran ke server C & C dan kami menjawab dalam satu, ikon oranye menghilang dari direktori program, dan aplikasi itu sendiri berhenti "berbicara" kepada kami karena melakukan penghancuran diri.

Jadi, kami telah menunjukkan bagaimana beberapa sampel malware untuk macOS diprofilkan, dan sekarang mari kita bahas bagaimana agar tetap tidak terdeteksi. Karena kita sedang mengulang program jahat yang dikenal dengan perlindungan bawaan MacOS dan perangkat lunak antivirus pihak ketiga mendeteksi dan memblokir, kita perlu menyelesaikan masalah ini.
Bagaimana tidak terdeteksi
Pertama, mari kita bicara tentang deteksi virus dan program kontrol yang dibangun ke dalam macOS, seperti XProtect, alat penghapusan virus MRT, dan pemeriksaan pencabutan sertifikat.

Sekilas, ini terlihat bermasalah, karena program ini dapat memblokir spyware yang dikonversi pada Mac apa pun. Karena itu, Anda perlu memikirkan cara memintas perlindungan, karena jika kita terjebak dengan malware yang dirancang ulang dengan hati-hati dan Apple memblokirnya, itu akan menjadi kegagalan total.
Mari kita lihat XProtect terlebih dahulu. Ini adalah pemindai anti-virus sederhana yang didasarkan pada basis data tanda tangan virus dan dibangun ke dalam versi terbaru dari macOS.

Ini memindai file yang diunduh oleh pengguna di komputer sebelum peluncuran pertama mereka, dipandu oleh aturan deteksi virus. Di layar kita melihat pemindaian tanda tangan dari virus OSX.KeRanger.A, reprofiling yang baru saja kita periksa.
Kami menulis sebuah utilitas sederhana bernama UXProtect, yang memungkinkan Anda memeriksa tanda tangan ini melalui antarmuka pengguna UI, serta memindai file kapan saja untuk tanda tangan virus. Karena XProtect hanya menggunakan mesin pendeteksi tanda tangan, sangat mudah untuk berkeliling. Mari kita lihat lebih dekat tanda tangan dari virus KeRanger.

Kami melihat indikasi sekelompok tanda tangan malware bahwa Anda hanya perlu memesan ulang atau memodifikasi instruksi ini untuk memintas. Mengubah beberapa byte instruksi menyebabkan tanda tangan tidak lagi cocok dengan parameter deteksi. Misalnya, kami mengubah jumlah byte yang akan dibaca dari buffer dari 0x400 ke 0x300. Ini tidak memengaruhi fungsionalitas virus, tetapi segera setelah kami mengubah jumlah byte yang diperiksa pemindai untuk kecocokan dengan tanda tangan, kami sepenuhnya mengecualikan kemungkinan XProtect bereaksi terhadap ancaman ini.
Sekarang saatnya untuk demonstrasi lain, di mana Anda akan melihat dua contoh KeRanger. Kami kembali menggunakan klien BitTorrent yang terinfeksi. Di sebelah kiri pada layar adalah salinan asli hacker dari virus, dan di sebelah kanan adalah versi yang digunakan ulang, yang, untuk mendapatkan kunci enkripsi, berkomunikasi dengan server C&C kami. Selain itu, dimodifikasi untuk menghindari perlindungan XProtect.

Anda melihat bahwa instance dari virus asli diblokir oleh sistem tanpa kemungkinan untuk memulai, dan satu-satunya operasi yang diizinkan dengannya adalah penghapusan.

Jika kami meluncurkan versi KeRanger yang didesain ulang, sistem hanya melaporkan bahwa itu diunduh dari Internet dan menanyakan apakah kami benar-benar ingin meluncurkannya.

Jika kita klik "Open", ransomware diam-diam diinstal di sistem dan segera mulai mengenkripsi semua file pengguna.

Cara selanjutnya untuk melindungi Mac Anda adalah memverifikasi tanda tangan sertifikat. Sebagian besar binari macOS yang ditandatangani tidak diblokir oleh fitur keamanan GateKeeper, itulah sebabnya peretas memberikan tanda tangan untuk sebagian besar malware Mac modern. Di sisi lain, begitu virus yang ditandatangani terdeteksi, Apple dengan mudah mencabut sertifikat tanda tangannya. Ini berarti bahwa malware ini tidak dapat dijalankan di Mac apa pun.
Misalnya, kami memiliki biner virus Windtall yang sertifikat tanda tangannya telah dicabut oleh Apple. Ini berarti bahwa bahkan jika kita membuat profil ulang dan menerapkannya terhadap sistem yang baru, kita masih tidak akan dapat memulai. Karenanya, kami hanya mencoba memintas prosedur pencabutan sertifikat dengan menghapus sertifikat tanda tangan itu sendiri.

Kemudian kami menggunakan salinan malware yang dikonversi yang tidak ditandatangani atau memberikannya dengan sertifikat tanda tangan hukum yang berbeda, yang cukup mudah diperoleh.
Untuk benar-benar menghapus sertifikat, Apple sendiri menyediakan utilitas yang disebut Daftar Tanda yang berisi bendera tanda tangan hapus yang tidak berdokumen, atau "hapus tanda tangan". Jika Anda melakukan operasi ini dengan malware Anda, Apple tidak akan memperhatikan sertifikat penandatanganan yang dicabut.
Kami juga dapat menandatangani ulang aplikasi kami menggunakan utilitas yang sama menggunakan perintah codesign -s “Developer ID Applikation:”. Ini akan menyebabkan Windtall yang ditandatangani ulang tidak lagi diblokir oleh macOS.
Akhirnya, kami beralih ke MRT, alat penghapus virus bawaan yang tersedia di versi terbaru sistem operasi Mac. Mirip dengan XProtect, tetapi memindai malware yang sudah diinstal pada sistem dan secara otomatis mendeteksinya setelah terdeteksi. Tidak seperti XProtect, tanda tangannya tertanam dalam file binernya sendiri. Apple sering menggunakan alat ini untuk menghapus aplikasi yang sah yang dianggap tidak aman untuk komputer Anda. Ini biasanya aplikasi yang mengandung kerentanan yang diketahui.

Karena MRT, seperti XProtect, bekerja dengan tanda tangan, ia juga dapat dielakkan. Kami menggunakan dump MRT, sekali lagi, karena tanda tangan dibangun ke dalam biner itu sendiri, dan dapat melihat semuanya, termasuk tanda tangan virus Fruitfly. Kami bertanya-tanya apakah MRT dapat mendeteksi salinan malware yang dikonversi ini?

Kami mulai meneliti tanda tangan bawaan Fruitfly dan menemukan bahwa pendeteksiannya didasarkan pada dua hal: jalur untuk menginstal virus dan file .plist yang diunduh. Ini berarti bahwa jika kita mengubah jalur atau nama malware, MRT tidak akan dapat mendeteksinya. Seperti yang saya katakan, sebagai hasilnya, menyiasati perlindungan ini ternyata cukup sederhana.
Kami menemukan bahwa menyiasati perangkat lunak antivirus pihak ketiga juga tidak sulit, karena Anda dapat menjalankan virus yang dikonversi bahkan pada sistem di mana pengguna telah menginstal antivirus.

Ada banyak pembicaraan tentang hal ini, saya tidak ingin membahas secara rinci, tetapi secara umum, produk antivirus tradisional didasarkan pada verifikasi tanda tangan, seperti perangkat lunak antivirus Apple, yang berarti mereka dapat dielakkan dengan metode yang sama.
Sebagai contoh, saya mengambil Fruitfly yang sama, ingat bahwa itu juga skrip Perl, dan menyebarkannya melalui utilitas online Perl Obfuscator online, yang dirancang untuk membuat skrip Perl sulit dibaca dan mengurangi kemungkinan deteksi menjadi nol. Secara alami, itu berhasil. Tapi Anda bisa menggunakan cara yang lebih cerdik, terutama jika Anda menggunakan malware berbasis biner. Anda dapat mengemasnya ke dalam arsip, menggunakan enkripsi, atau bahkan eksekusi dalam memori, yaitu unduhan bebas file dan eksekusi virus dalam RAM.
Beberapa tahun yang lalu, teknologi ini dibahas pada konferensi BlackHat dan disimpulkan bahwa bahkan jika pengguna Mac menginstal perangkat lunak antivirus pihak ketiga pada sistem, ia masih tidak dapat mendeteksi malware yang diprogram ulang. Ini adalah berita buruk bagi pengguna macOS, karena kita tahu bahwa peretas berpengalaman menggunakan malware yang dikonversi. Seringkali, seluruh perubahan bermuara pada perubahan beberapa byte kode atau argumen baris perintah, dan ini memungkinkan untuk mengendalikan komputer agar dapat menggunakannya untuk keperluan mereka sendiri. Selain itu, sebagian besar alat antivirus bawaan macOS dan perangkat lunak antivirus pihak ketiga tidak dapat mendeteksi ancaman yang dikonversi.
Karena perangkat lunak yang digunakan ulang ini hanyalah spyware asli yang sedikit diperbaiki, saya akan memakai "topi putih" dan memberi tahu Anda bagaimana Anda masih dapat menemukannya.
Deteksi Perangkat Lunak Konfigurasi Ulang
Sudah diketahui bahwa perangkat lunak antivirus berbasis tanda tangan tidak mengatasi malware yang dikonversi. Karena itu, kita harus memperhatikan perilaku malware yang tidak biasa, tidak normal, dan berbahaya ini.
Kita harus mencoba mendeteksinya, bukan berkat tanda tangan virus yang terkenal, tetapi dengan mengamati aksinya dalam sistem. Kami telah memastikan bahwa ketika Anda membuat ulang spyware yang terkenal, fungsi dan tujuan dasarnya tetap tidak berubah.
Jika kami membuat ulang trojan Ransomware ransomware, itu masih akan mengenkripsi file Anda, dan backdoor yang dirancang ulang akan terus mengumpulkan file dan mengirimkannya ke server mata-mata.
Pada slide di atas, saya menampilkan fungsi atau kemampuan sistem, yang harus dipantau dan dimonitor untuk aktivitasnya. Ini termasuk "kegigihan" aplikasi, aktivitas mikrofon atau kamera yang tidak biasa, mengunduh atau mentransfer file, tangkapan layar tanpa izin, gejala intersepsi keyboard, clickers sintetis dan enkripsi file. Ini bahkan akan mendeteksi malware yang diposisikan ulang.
Mari kita bicara tentang ketekunan. Ketika saya mengatakan "ketekunan," maksud saya bahwa segera setelah spyware diinstal pada komputer, itu akan mulai setiap waktu secara otomatis setelah me-reboot sistem. Ini adalah fitur malware apa pun untuk macOS atau Windows - berusaha keras untuk mencapai tujuan jahat.
Kami hanya dapat mengontrol sistem file dengan mengamati perilaku aplikasi "persisten", dan jika ada perubahan di dalamnya, beri tahu pengguna atau administrator sistem tentang hal itu.
Sekarang saya ingin menunjukkan bagaimana Anda dapat mendeteksi aktivitas virus Windtall yang asli atau yang telah direnovasi, yang memanifestasikan dirinya dalam akses tidak sah ke mikrofon atau webcam Mac.

Banyak malware Mac mengakses webcam atau mikrofon untuk memata-matai pengguna sistem yang terinfeksi. Untuk mendeteksi aktivitas virus ini, kami dapat mendaftarkan setiap giliran kamera dan mikrofon di sistem macOS sehingga pengguna secara otomatis menerima pemberitahuan tentang peristiwa ini. , FruitFly, , Zoom, .
. , .

macOS – Event Taps. , . .
FruitFly, , , – «» .

, macOS, . . , macOS , . , .
Objective-See, - macOS. , . , , .

, – , , « ».

, Digita Security, . : . Apple, , .
, . , , , , macOS.
, . , Windtall, , Safari , .

, URL , - URL. Windtall, , .
FruitFly , , - . , , , Apple, - .
, FruitFly , . , . template . , .
, , . , , macOS.
, Mac, 2020 , .

Sedikit iklan :)
Terima kasih telah tinggal bersama kami. Apakah Anda suka artikel kami? Ingin melihat materi yang lebih menarik? Dukung kami dengan melakukan pemesanan atau merekomendasikan kepada teman Anda,
cloud VPS untuk pengembang mulai dari $ 4,99 ,
diskon 30% untuk pengguna Habr pada analog unik dari server entry-level yang kami ciptakan untuk Anda: Seluruh kebenaran tentang VPS (KVM) E5-2650 v4 (6 Core) 10GB DDR4 240GB SSD 1Gbps dari $ 20 atau bagaimana cara berbagi server? (opsi tersedia dengan RAID1 dan RAID10, hingga 24 core dan hingga 40GB DDR4).
Dell R730xd 2 kali lebih murah? Hanya kami yang memiliki
2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV dari $ 199 di Belanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mulai dari $ 99! Baca tentang
Cara Membangun Infrastruktur Bldg. kelas menggunakan server Dell R730xd E5-2650 v4 seharga 9.000 euro untuk satu sen?