Macro Attack پارت 1
· 31 شهریور · خواندن 6 دقیقه امروز اومدیم یک حمله سایبری چند منظوره رو باهم یاد بگیریم
اسماش تو دنیای واقعی
Macro Attack
Malicious Document Attack
Macro Malware
Macro Virus
Phishing with Malicious Attachment
هست و یک حمله بر پایه مهندسی اجتماعی و لی حمله سختی هست در دسته بد افزار ها تو این پارت ها نمیخوام راجب بای پس آنتی ویروس و ... حرفی بزنم چون در قالب وبلاگ من نیست به وقتش مقاله ای راجب این موضوع مطرح میکنم بریم سراغ اصل مطلب یا همون 👉 «ماکرو مالور» یا «Macro-based Attack» 🕶️
رفیق! اگه یک لحظه فکر کردی «یه ایمیل صورتحسابه، بازش میکنم سریع» — بغضی نکن، همه اینجوریم. ولی اگه توی سالنِ جنگِ دیجیتال یه کم زرنگتر باشی، حداقل نمیذاری یکی بیاد تو خونت و راحت لامپ رو خاموش کنه.
یه خط ساده: ما اینجا کلاسِ خرابکاری باز نمیکنیم. ما یاد میدیم چطور جلوی خرابکاری رو بگیریم. اما راستش رو بخوای، تا نفهمی طرفِ مقابل چطوری فکر میکنه، هیچ دزدگیری درستوحسابی هم نمیتونی نصب کنی. پس بیایم با هم ببینیم «ماکرو» یعنی چی، کجا مخفی میشه، چه لاگهایی باید دنبال کنی، چه ابزاری لازم داری، و چطور توی یک VM امن همهچی رو تست کنی — بدون اینکه حتی یه پیکسل به کسی صدمه بزنه.
« توجه این مقاله ها وی یک کد تستی اما آزار دهنده از این فعالیت میباشد روی دیگران امتحان نکنید »
۱ — ماکرو چیه؟
ماکرو، یه سری دستور توی VBA هست که مایکروسافت گذاشته تا کارای تکراری رو اتومات کنه. فکر کن کسی برایت کاری که ۲۰ بار انجام میدی رو یککلیک کرده. عالیه؟ بله. ولی اگه دست یه آدم بد بیفته، میشه در پشتی که هیچکس انتظارش رو نداره.
فنی کوتاه: فایلهای Office (2007 به بعد) در واقع ZIP هستن. فایلهای ماکرودار پسوندای مخصوص دارن: .docm, .xlsm, .pptm. داخل بستهٔ ZIP یه فایل باینری هست به اسم vbaProject.bin — یعنی تو میتونی بدون باز کردن ورد، بسته رو باز کنی و ببینی ماکرو هست یا نه. اینجا شروعِ کار ماست.
۲ — آناتومیِ یک تِله
حرفهایها این طور عمل میکنن:
1. یه ایمیل قطور میفرستن با یه موضوعی که آدم رو میکُشه: «صورتحساب»، «پیوست قرارداد»، «پرداخت فوری».
2. تو باز میکنی؛ ماکرو با تریگر «باز شدن» اجرا میشه (مثلاً AutoOpen).
3. ماکرو تلاش میکنه یه چیز بیرونی اجرا کنه یا payload رو دانلود کنه (PowerShell یا هر چیز دیگه).
4. قربانی ممکنه حتی نفهمه چه اتفاقی افتاده — فقط یه چیز کار نکرده یا سیستم ویپیان وسط کار پرید.
۳ — لاگها و شاخصهایی که باید بیخیالشون نشی
این بخش به درخواست سازمان های امنیتی که مارو دنبال میکنن گذاشتم بقیه به کارشون نمیاد :
۸اینجا چیزایی هست که وقتی سند مشکوک باز شد، باید چک کنی — سریع و خشن:
Sysmon — حیاتی
Event ID 1 — ProcessCreate: آیا winword.exe یا excel.exe بعد از باز شدن، فرزندی مثل powershell.exe, wscript.exe, cscript.exe, cmd.exe ساخت؟ اگه آره، زنگ خطر.
Event ID 3 — NetworkConnect: Office داره وصل میشه به کجا؟ یه دامنه ناشناس یا IP عجیب؟
Event ID 11 — FileCreate: فایلهایی که توی Temp یا AppData ساختن — مخصوصاً باینریهایی که بعد از باز شدن سند ظاهر شدن.
Windows / PowerShell
Event ID 4688: پروسس جدید ساخته شده — correlate کن با کاربر و زمان.
Event ID 4104: Script Block Logging — اگه این رو روشن کرده باشی، میتونی ببینی دقیقاً چی توی پاورشل اجرا شده.
EDR / Defender / ASR
هشدار ASR که Office رو از ساختن child process منع میکنه — این هشدارا رو جدی بگیر.
مهم نیست فقط یکی از لاگا رو ببینی؛ همزمانیشون مهمه. ProcessCreate + NetworkConnect همزمان یعنی احتمال اجرایی شدن payload خیلی بالاست.
ابزارای ضروری توی جیبت باشه چه آنالیزور ها چه هکر هامون 🥸
اینها ابزارایی هستن که هر آنالیزور باید بلد باشه:
7-zip / unzip — باز کردن docm بهعنوان zip و استخراج vbaProject.bin.
oletools (olevba) — استخراج و نمایش ماکرو بهصورت متنی (بدون اجرا).
oledump.py (Didier Stevens) — دیدن streamهای OLE و تعیین اینکه کد کجا مخفیه.
exiftool / strings / binwalk — نگاه کردن به متادیتا و رشتهها.
Sysmon + EDR + Event Viewer — پایش زمان اجرا و همبستگی رخدادها.
نمونهٔ دستورات تستی (بزن ولی تو vm اجرا کن ):
cp suspicious.docm suspicious.zip
7z x suspicious.zip -osusp_extracted
# سپس دنبال word/vbaProject.bin بگرد
olevba suspicious.docm
اینها فقط برای خواندنِ غیراجرایی هستن. اگه ازشون استفاده میکنی، حتماً تو VM و محیط ایزوله باش.
فلو عملیِ کامل:
1. ایمیل رو قرنطینه کن؛ بررسی اولیه: آیا فرستنده قابلاعتماد هست؟ موضوع جعلیس؟ پسوند docm/xlsm؟
2. اگه مشکوکه، تغییر نام به zip و extract کن؛ دنبال vbaProject.bin بگرد.
3. استخراج متنی با olevba / oledump و فقط بخون؛ دنبال URL، دامنهها، فراخوانی shell/power، و obfuscation باش.
4. اگه میخوای باز کنی، فقط تو VM ایزوله با شبکه قطع یا host-only بازش کن؛ قبلش snapshot بگیر.
5. همزمان Sysmon / Event Viewer رو پایش کن. هر ProcessCreate مشکوکی رو log کن و هشِ فایل رو بگیر.
6. اگه شواهدی از اجرا دیدی: میزبان رو isolate کن، forensics بگیر، IR playbook رو اجرا کن.
یک راهنمایی ریز
قصهٔ کد — قابلفهم ولی غیرقابلاجرا
هدف ما برای تمرین :
رویداد: سند باز شد (AutoOpen)
اگر ماکرو اجرا شد:
ایجاد فایل موقت روی Desktop با متن "https://mestercomputer.blogix.ir"
نمایش فایل/پنجره به کاربر برای تقریبا 25 ثانیه
بعد از 25 ثانیه فایل رو پاک کن
پایان
من این کد رو نمیدم اجرا بشه
بریم تو کارش
' ماکرو VBA برای رویداد AutoOpen
Sub AutoOpen()
Dim tempFile As String
Dim desktopPath As String
Dim shell As Object
Dim startTime As Double
Dim elapsedTime As Double
Const DISPLAY_TIME As Double = 25 ' 25 ثانیه
On Error GoTo ErrorHandler
' مسیر Desktop کاربر
desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")
tempFile = desktopPath & "\Important_Notice.txt"
' ایجاد فایل موقت
Dim fileNum As Integer
fileNum = FreeFile
Open tempFile For Output As #fileNum
Print #fileNum, "لطفاً به لینک زیر مراجعه کنید:"
Print #fileNum, "https://mestercomputer.blogix.ir"
Print #fileNum, ""
Print #fileNum, "این پیام خودکار پاک میشود."
Close #fileNum
' باز کردن فایل با Notepad
Set shell = CreateObject("WScript.Shell")
shell.Run "notepad.exe """ & tempFile & """", 1, False
' نمایش تایمر (اختیاری - برای تست)
startTime = Timer
' صبر 25 ثانیه
Do While elapsedTime < DISPLAY_TIME
elapsedTime = Timer - startTime
DoEvents ' اجازه به سیستم برای پردازش رویدادها
Application.Wait (Now + TimeValue("0:00:01")) ' صبر 1 ثانیه
Loop
' بستن Notepad و پاک کردن فایل
shell.Run "taskkill /f /im notepad.exe", 0, True
Kill tempFile
' پاک کردن متغیرها
Set shell = Nothing
Exit Sub
ErrorHandler:
' در صورت خطا، فایل موقت را پاک کن
On Error Resume Next
If Dir(tempFile) <> "" Then Kill tempFile
Set shell = Nothing
MsgBox "خطا در اجرای ماکرو رخ داد.", vbCritical
End Subنحوه استفاده
فعال کردنش :
در Word/Excel: File → Options → Trust Center → Trust Center Settings →
Macro Settings → Enable all macros
درج ماکرو
Alt + F11 → Insert → Module → کد رو paste کن
ذخیره
File → Save As → Word Macro-Enabled Document (*.docm)
تاپارت بعدی با این حال کنید
دوست دارتون MESTER COPMUTER