Dengan artikel ini kami memulai serangkaian publikasi tentang malware yang sulit dipahami. Program peretasan tanpa file, juga dikenal sebagai program peretasan tanpa file, biasanya menggunakan PowerShell pada sistem Windows untuk menjalankan perintah secara diam-diam guna mencari dan mengekstrak konten berharga. Mendeteksi aktivitas peretas tanpa file berbahaya adalah tugas yang sulit, karena... antivirus dan banyak sistem deteksi lainnya bekerja berdasarkan analisis tanda tangan. Namun kabar baiknya adalah perangkat lunak semacam itu memang ada. Misalnya,
Ketika saya pertama kali mulai meneliti topik peretas tangguh,
PowerShell yang Hebat dan Kuat
Saya telah menulis tentang beberapa ide ini sebelumnya
Selain sampelnya sendiri, di situs tersebut Anda dapat melihat apa yang dilakukan program ini. Analisis hibrid menjalankan malware di kotak pasirnya sendiri dan memantau panggilan sistem, proses yang berjalan, dan aktivitas jaringan, serta mengekstrak string teks yang mencurigakan. Untuk binari dan file executable lainnya, mis. ketika Anda bahkan tidak dapat melihat kode tingkat tinggi yang sebenarnya, analisis hibrid memutuskan apakah perangkat lunak tersebut berbahaya atau hanya mencurigakan berdasarkan aktivitas runtime-nya. Dan setelah itu sampel sudah dievaluasi.
Dalam kasus PowerShell dan contoh skrip lainnya (Visual Basic, JavaScript, dll.), saya dapat melihat kode itu sendiri. Misalnya, saya menemukan contoh PowerShell ini:
Anda juga dapat menjalankan PowerShell dalam pengkodean base64 untuk menghindari deteksi. Perhatikan penggunaan parameter Noninteraktif dan Tersembunyi.
Jika Anda telah membaca posting saya tentang kebingungan, maka Anda tahu bahwa opsi -e menentukan bahwa konten dikodekan base64. Omong-omong, analisis hibrid juga membantu dalam hal ini dengan menguraikan kembali semuanya. Jika Anda ingin mencoba mendekode sendiri PowerShell base64 (selanjutnya disebut PS), Anda perlu menjalankan perintah ini:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Masuk lebih dalam
Saya memecahkan kode skrip PS kami menggunakan metode ini, di bawah ini adalah teks programnya, meskipun saya sedikit memodifikasinya:
Perhatikan bahwa skrip diikat ke tanggal 4 September 2017 dan mengirimkan cookie sesi.
Saya menulis tentang gaya serangan ini
Apa fungsinya?
Untuk perangkat lunak keamanan yang memindai log peristiwa atau firewall Windows, pengkodean base64 mencegah string "WebClient" terdeteksi oleh pola teks biasa untuk melindungi terhadap pembuatan permintaan web semacam itu. Dan karena semua “kejahatan” malware kemudian diunduh dan diteruskan ke PowerShell kami, pendekatan ini memungkinkan kami menghindari deteksi sepenuhnya. Atau lebih tepatnya, itulah yang kupikirkan pada awalnya.
Ternyata ketika Windows PowerShell Advanced Logging diaktifkan (lihat artikel saya), Anda akan dapat melihat baris yang dimuat di log peristiwa. saya seperti
Mari tambahkan skenario tambahan
Peretas dengan cerdik menyembunyikan serangan PowerShell di makro Microsoft Office yang ditulis dalam Visual Basic dan bahasa skrip lainnya. Idenya adalah korban menerima pesan, misalnya dari layanan pengiriman, dengan lampiran laporan dalam format .doc. Anda membuka dokumen yang berisi makro ini, dan akhirnya meluncurkan PowerShell berbahaya itu sendiri.
Seringkali skrip Visual Basic itu sendiri dikaburkan sehingga bebas menghindari antivirus dan pemindai malware lainnya. Sejalan dengan semangat di atas, saya memutuskan untuk mengkodekan PowerShell di atas dalam JavaScript sebagai latihan. Di bawah ini adalah hasil pekerjaan saya:
JavaScript yang dikaburkan menyembunyikan PowerShell kami. Peretas sejati melakukan ini sekali atau dua kali.
Ini adalah teknik lain yang pernah saya lihat beredar di web: menggunakan Wscript.Shell untuk menjalankan kode PowerShell. Omong-omong, JavaScript itu sendiri
Dalam kasus kami, skrip JS berbahaya tertanam sebagai file dengan ekstensi .doc.js. Windows biasanya hanya menampilkan suffix pertama, sehingga akan terlihat oleh korban sebagai dokumen Word.
Ikon JS hanya muncul di ikon gulir. Tidak mengherankan jika banyak orang membuka lampiran ini karena mengira itu adalah dokumen Word.
Dalam contoh saya, saya memodifikasi PowerShell di atas untuk mengunduh skrip dari situs web saya. Skrip PS jarak jauh hanya mencetak "Malware Jahat". Seperti yang Anda lihat, dia tidak jahat sama sekali. Tentu saja, peretas sejati tertarik untuk mendapatkan akses ke laptop atau server, misalnya, melalui shell perintah. Pada artikel berikutnya, saya akan menunjukkan cara melakukan ini menggunakan PowerShell Empire.
Saya berharap untuk artikel pengantar pertama kita tidak mendalami topiknya terlalu dalam. Sekarang saya akan membiarkan Anda mengambil napas, dan lain kali kita akan mulai melihat contoh nyata serangan menggunakan malware tanpa file tanpa kata pengantar atau persiapan yang tidak perlu.
Sumber: www.habr.com