
Dengan artikel ini, kami memulai serangkaian publikasi tentang malvari yang sulit dipahami. Program peretasan yang tidak meninggalkan jejak serangan, juga dikenal sebagai fileless, biasanya menggunakan PowerShell pada sistem Windows untuk secara rahasia menjalankan perintah untuk mencari dan mengekstrak konten yang berharga. Mendeteksi aktivitas peretas tanpa file jahat adalah tugas yang sulit, karena antivirus dan banyak sistem deteksi lainnya bekerja berdasarkan analisis tanda tangan. Tetapi kabar baiknya adalah bahwa perangkat lunak tersebut memang ada. Misalnya,
sistem UBA yang dapat mendeteksi aktivitas berbahaya dalam sistem file.
Ketika saya mulai mempelajari topik tentang peretas keren yang
tidak menggunakan metode infeksi tradisional , tetapi hanya alat dan perangkat lunak yang tersedia di komputer korban, saya tidak menduga bahwa ini akan segera menjadi metode serangan yang populer. Para profesional keamanan
mengatakan ini menjadi tren, dan
judul artikel yang menakutkan adalah buktinya. Karena itu, saya memutuskan untuk membuat serangkaian publikasi tentang topik ini.
PowerShell Hebat dan Mengerikan
Saya menulis tentang beberapa ide ini sebelumnya dalam
seri kebingungan PowerShell , tetapi lebih pada teori. Kemudian saya menemukan
situs untuk analisis hibrida , di mana Anda dapat menemukan sampel malvari, "tertangkap" di alam liar. Saya memutuskan untuk mencoba menggunakan situs ini untuk mencari sampel malware tanpa fil. Dan saya berhasil. Ngomong-ngomong, jika Anda ingin melanjutkan ekspedisi sendiri untuk mencari malware, Anda harus melalui pemeriksaan di situs ini sehingga mereka tahu bahwa Anda melakukan pekerjaan sebagai spesialis topi putih. Sebagai seorang blogger yang menulis tentang keamanan, saya menjalaninya tanpa pertanyaan. Saya yakin Anda juga bisa.
Selain sampel itu sendiri, Anda dapat melihat di situs apa program ini lakukan. Analisis hibrid meluncurkan malware di kotak pasirnya sendiri dan melacak panggilan sistem, menjalankan proses dan tindakan di jaringan, dan juga mengekstrak string teks yang mencurigakan. Untuk file biner dan file executable lainnya, mis. Di mana Anda bahkan tidak dapat melihat kode tingkat tinggi yang sebenarnya, analisis hibrida memutuskan apakah perangkat lunak tersebut berbahaya atau hanya mencurigakan berdasarkan aktivitasnya saat runtime. Dan setelah itu sampel sudah dievaluasi.
Dalam kasus PowerShell dan skrip sampel lainnya (Visual Basic, JavaScript, dll.), Saya dapat melihat kode itu sendiri. Sebagai contoh, saya menemukan contoh PowerShell:

Anda juga dapat menjalankan PowerShell yang disandikan base64 untuk menghindari deteksi. Perhatikan penggunaan parameter Noninteraktif dan Tersembunyi.
Jika Anda membaca entri kebingungan saya, maka Anda tahu bahwa opsi -e menunjukkan bahwa konten dikodekan dalam base64. Ngomong-ngomong, analisis hibrida juga membantu dengan ini, menguraikan semuanya kembali. Jika Anda ingin mencoba mendekode base64 PowerShell (selanjutnya - PS) sendiri, Anda perlu menjalankan perintah ini:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Pergi lebih dalam
Saya mendekodekan PS-script kami menggunakan metode ini, teks dari program disajikan di bawah ini, meskipun sedikit dimodifikasi oleh saya:

Perhatikan bahwa derit terikat pada tanggal 4 September 2017 dan melewati cookie sesi.
Saya menulis tentang gaya serangan ini dalam
seri kebingungan PS , di mana skrip base64 yang dikodekan itu sendiri mengunduh malware yang
hilang dari situs lain, menggunakan objek WebClient dari pustaka .Net Framework untuk melakukan semua kerja keras.
Untuk apa ini?
Untuk perangkat lunak keamanan yang memindai log peristiwa atau firewall Windows, pengkodean base64 mencegah deteksi string WebClient dengan pola teks sederhana untuk melindungi terhadap permintaan web tersebut. Dan karena semua malware "jahat" kemudian diunduh dan ditransfer ke PowerShell kami, pendekatan ini memungkinkan Anda untuk sepenuhnya menghindari deteksi. Sebaliknya, saya pikir begitu pada awalnya.
Ternyata dengan dimasukkannya pencatatan lanjutan log Windows PowerShell (lihat artikel saya), Anda dapat melihat baris yang dimuat di log peristiwa. Saya (seperti
orang lain ) percaya bahwa Microsoft harus mengaktifkan tingkat logging ini secara default. Oleh karena itu, ketika pencatatan diperpanjang dinyalakan, kita akan melihat di log peristiwa Windows permintaan lengkap untuk memuat dari skrip PS sesuai dengan contoh yang kami periksa di atas. Karena itu, masuk akal untuk mengaktifkannya, setuju?
Tambahkan skrip tambahan
Peretas dengan cekatan menyembunyikan serangan PowerShell di makro Microsoft Office yang ditulis dalam Visual Basic dan bahasa scripting lainnya. Idenya adalah bahwa korban menerima pesan, misalnya, dari layanan pengiriman, dengan laporan terlampir dalam format .doc. Anda membuka dokumen ini, yang berisi makro, dan akhirnya meluncurkan PowerShell jahat itu sendiri.
Seringkali, skrip Visual Basic itu sendiri dikaburkan sehingga secara bebas menghindari antivirus dan pemindai malware lainnya. Dalam semangat di atas, saya memutuskan sebagai latihan untuk menyandikan PowerShell di atas dalam JavaScript. Di bawah ini adalah hasil pekerjaan saya:

JavaScript yang dikaburkan menyembunyikan PowerShell kami. Peretas sebenarnya melakukannya sekali atau dua kali.
Ini adalah salah satu teknik yang saya temui di internet: menggunakan Wscript.Shell untuk menjalankan PowerShell yang disandikan. Ngomong-ngomong, JavaScript itu sendiri adalah
sarana pengiriman malware. Banyak versi Windows memiliki
Host Script Windows bawaan , yang dengan sendirinya dapat menjalankan JS.
Dalam kasus kami, skrip JS jahat dilampirkan sebagai file dengan ekstensi .doc.js. Windows biasanya hanya memperlihatkan akhiran pertama, sehingga akan ditampilkan kepada korban sebagai dokumen Word.

Ikon JS hanya ditampilkan di ikon gulir. Tidak mengherankan bahwa banyak orang akan membuka lampiran ini, berpikir 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 sama sekali tidak jahat. Tentu saja, peretas sebenarnya tertarik untuk mendapatkan akses ke laptop atau server, katakanlah, melalui shell perintah. Pada artikel selanjutnya saya akan menunjukkan cara melakukan ini menggunakan PowerShell Empire.
Saya berharap bahwa untuk artikel pengantar pertama kami tidak membahas topik ini terlalu dalam. Sekarang saya akan membiarkan Anda mengambil napas, dan lain kali kami akan mulai menganalisis contoh nyata serangan menggunakan maleless-fileless tanpa kata-kata dan persiapan tambahan.