Microsoft Office dasturlari, masalan, Word va Excel, foydalanuvchilarga macros ni joylashtirish imkonini beradi,1 bu bir guruh buyruqlar va ko'rsatmalar bo'lib, ular bir vazifani dasturiy tarzda bajarish uchun birlashtiriladi. Tashkilotlar ko'pincha macros dan dinamik kontentni boshqarish va hujjatlarni tashqi kontent bilan bog'lash uchun foydalanadilar.

<aside> 💡

Macros Visual Basic for Applications (VBA) da noldan yozilishi mumkin,2 bu ActiveX objects3 va Windows Script Host ga to'liq kirish imkoniyatiga ega kuchli skript tili bo'lib, HTML Applications dagi JavaScript ga o'xshaydi.

</aside>

Ushbu bo'limda biz Microsoft Word da embedded macro dan foydalanib, hujjat ochilganda reverse shell ni ishga tushiramiz. Macros eng qadimgi va eng mashhur client-side attack vectors dan biridir. Ular bugungi kunda ham yaxshi ishlaydi, agar biz oldingi bo'limlardagi mulohazalarni hisobga olsak va qurbonni ularni yoqishga ishontira olsak.

<aside> 💡

Eski client-side attack vectors, jumladan Dynamic Data Exchange (DDE)4 va turli xil Object Linking and Embedding (OLE)5 usullari bugungi kunda maqsadli tizimni sezilarli o'zgartirmasdan yaxshi ishlamaydi.

</aside>

Keling, Word da macro yaratishni boshlaymiz. Biz mymacro nomli bo'sh Word hujjatini yaratamiz va uni .doc formatida saqlaymiz. Bu muhim, chunki yangi .docx fayl turi macros ni o'z ichiga olgan template qo'shmasdan saqlay olmaydi. Bu shuni anglatadiki, biz .docx fayllarida macros ni ishga tushirishimiz mumkin, lekin macro ni hujjatga joylashtirib yoki saqlab qo'ya olmaymiz. Boshqacha qilib aytganda, macro doimiy emas. Shu bilan bir qatorda, embedded macro uchun .docm fayl turidan ham foydalanishimiz mumkin.

image.png

Figure 19: Saving Document as .doc

Hujjatni saqlagandan so'ng, birinchi macro ni yaratishni boshlashimiz mumkin. Macro menyusiga kirish uchun menyu satridagi View yorlig'ini bosamiz va unda Macros elementini topib, ustiga bosamiz:

image.png

Figure 20: Macro Menu in View Ribbon

Bu yangi oyna ochadi, unda biz macros ni boshqarishimiz mumkin. Macro Name bo'limiga MyMacro nomini kiriting, so'ngra Macros in ochiladigan menyusida mymacro hujjatini tanlang. Bu macro saqlanadigan hujjatdir. Nihoyat, Create ni bosib, hujjatimizga oddiy macro framework ni joylashtiramiz.

image.png

Figure 21: Create a macro for the current document

Bu Microsoft Visual Basic for Applications oynasini ochadi, unda biz macro ni noldan ishlab chiqishimiz yoki kiritilgan macro skeleton dan foydalanishimiz mumkin.

image.png

Figure 22: Macro Editor