در بخش اول مطلب بررسی تخصصی حمله سایبری به صدا و سیما گفتیم که در چند ماه گذشته، موج جدیدی از حملات سایبری ایران را فرا گرفته است. این حملات بههیچوجه به سادگی تخریب چهرهی وبسایتها نیستند؛ این موج جدید زیرساختهای ملی را هدف گرفته و اختلالاتی اساسی در خدمات عمومی ایجاد کرده است. سپس در بخش دوم مطلب به تجزیهوتحلیل عمیق حمله انجام شده به صدا و سیما پرداختیم.
Backdoorهای ایجاد شده در حمله سایبری به صدا و سیما
WinScreeny
نام این ابزار از مسیر PDB میآید: C:\work\winscreeny\winscreeny\obj\Debug\winscreeny.pdb. هدف اصلی این Backdoor گرفتن اسکرینشات از رایانهی قربانی است. دو نمونه از این Backdoor پیدا شد: اولین نمونه نسخهی منتشرشده است که با نام mslicval.exe در VT آپلود شده بود و دومین نمونه نسخهی Debug است که precg2.exe نام دارد. بدیهی است که این فایلها همراه با Artifactهای دیگری که کشف شده بودند، در VT آپلود شدند.
این Backdoor را میتوان براساس آرگومان خط فرمان به شیوههای مختلفی اجرا کرد:
- None – یک SimpleTCPServer را اجرا میکند که روی پورت ۱۸۰۰۰ گوش میکند.
- service – بهعنوان یک سرویس با نام Service1 اجرا میگردد. در شروع، این سرویس یک Task برنامهریزیشده را با دستور زیر اجرا میکند:
schtasks /create /TN \”Microsoft\\Windows\\.NET Framework\\.NETASM\”/TR \” <file_path> \” /ST <current_time + 1:10> /SC ONCE /F.
- setup – سعی میکند با استفاده از عملکرد LsaAddAccountRights API سطح دسترسی بالایی به دست آورد و سپس خود را بهعنوان یک سرویس اجرا کند.
بدافزار روی پورت ۱۸۰۰۰ گوشبهزنگِ Packetها میماند و برای هر Packet پیام حاوی دستور scr= که با روش POST ارسال شده بود را چک میکند. اگر این شرایط محیا شوند، بدافزار یک اسکرینشات را در فایلی به نام screeny-<timestamp>.png ذخیره کرده و اگر حمله موفیتآمیز باشد، یک پیام «Done» برای مهاجم نمایش داده میشود.
شکل ۵ – کد ذخیرهی Winscreeny Screenshot
جالب توجه است که نسخهی منتشرشدهی این بدافزار قابلیت اجرای دستور را نیز دارد: از دستور =s پشتیبانی میکند که یک XORed رشتهی کدگذاریشده با base64 را با کلید یک بایتی 0x24 دریافت میکند. رشتهی کدگشاییشده توسط cmd اجراشده و نتیجهی اجرا به سرور بازگردانی میشود. کدی که به این ویژگی رسیدگی میکند نیز مجدداً در HttpService Backdoor مورد استفاده قرار میگیرد.
HttpCallbackService
HttpCallbackService یک Remote Administration Tool یا RAT با یک مسیر PDB آشنا است:
C:\work\simpleserver\HttpCallbackService\obj\Release\HttpCallbackService.pdb
C&C URL آن را میتوان به دو شیوه مشخص کرد: یک آرگومان خط فرمان یا فایل پیکربندی callservice.ini. سپس مقداری که دریافت میشود با یک رشتهی کوتاه تکمیل میگردد:?m= اگر URL با «.aspx» یا «.php» تمام شود؛ =m اگر URL با «/» تمام شود و یا =m/ در هر مورد دیگر.
متأسفانه، هیچ پیکربندی یا Artifact دیگری پیدا نشد که به HttpCallbackService مربوط باشد، درنتیجه سرور C&C در این حمله همچنان ناشناس است.
هر ۵ ثانیه، HttpCallbackService با استفاده از روش webClient.DownloadString درخواستی را به C&C URL میفرستد تا فهرستی از دستورات که توسط \r\n تقسیمبندی میشوند، دریافت گردند. اگر بدافزار هیچ دستوری را در ۵ دقیقهی آخر دریافت نکند و isStayAliveMode Flag غیرفعال شود، این پنجرهی زمانی به یک دقیقه افزایش پیدا میکند.
موارد زیر دستوراتی هستند که توسط RAT پشتیبانی میگردند:
دستور | آرگومانها | اقدام |
Upload | upload_path، محتوای کدگذاریشدهی base64 | آپلود یک فایل به رایانهی قربانی ممکن است سرور فایل را در چند بخش بفرستد، که هر کدام از آنها از base64 کدگشایی شده و در فایل ضمیمه میشوند |
Download | نام فایل | دانلود کردن فایل از رایانهی قربانی به سرور C&C، فایل توسط base-64 کدگذاری شده و بخشهای ۱۰۲۴۰۰ بایتی ارسال میشود |
stay-alive | – | فعالسازی isStayAliveMode Flag و تغییر تایمر به ۵ ثانیه |
cool-down | – | غیرفعال کردن isStayAliveMode Flag |
پیشفرض | رشتهی دستور | اجرای دستور در cmd و بازگردانی نتایج به سرور C&C |
وقتیکه نتایج دستورات در سرور آپلود شوند، دادهها به یک URL کمی متفاوت ارسال میگردد: اکنون عدد «۱» به C&C URL که قبلاً تعریف شده بود اضافه میشود. دادهها با استفاده از روش WebClient.UploadValues در فرمت زیر ارسال میگردد:
- download=<file_name>\r\n————–\r\n<base64 of chunk> برای دستور دانلود
- <command>\r\n————–\r\n<result> برای دستور cmd
HttpService
HttpService یک Backdoor دیگر است که روی یک پورت بهخصوص گوشبهزنگ است: میتواند یک آرگومان دستور خط، پورت از پیش تعریف شده بسته به نمونه یا مقداری از فایل پیکربندی باشد: <exe_name>.ini. چندین نمونه با پورتهای پیشفرض ۱۹۳۳۶، ۱۹۳۳۴، ۱۹۳۳۳ و همچنین دو فایل پیکربندی متفاوت که با مقادیر ۱۹۳۳۶ و ۱۹۳۳۵T در VT آپلود شده بودند، پیدا شد.
هر نمونه دارای یک نسخهی هاردکد شده است. فایلهایی که کشف شدند به سه نسخهی متفاوت تعلق دارند: ۰.۰.۵، ۰.۰.۱۱v4H و ۰.۰.۱۵v4H. نسخهی ۰.۰.۵ به یک پورت بهخصوص با یک سرور Simple TCP گوش میدهد، درحالیکه ۰.۰.۱۱v4H و ۰.۰.۱۵v4H برمبنای Simple HTTP Server هستند. تمام آنها از HTML Agility Pack برای HTML Parsing و کتابخانهی IonicZip برای اقدامات فشردهسازی استفاده میکنند.
بالاترین نسخه (۰.۰.۱۵v4H) از Backdoor دارای چندین قابلیت است، از جمله اجرای دستور و دستکاری فایلها.
اجرای دستور: دستور «cmd» باعث میشود که Backdoor دستور مشخصی را با cmd.exe اجرا کند و نتیجه را در قالب زیر نمایش دهد: <div style=’color: red’><result_string></div>. بهعلاوه، وقتیکه Backdoor دستور «=i» را دریافت میکند، میتواند یک cmd shell تعاملی را اجرا کند که آرگومانهایش میتوانند موارد زیر باشند:
- «۱» – دریافت خروجی از Shell و ارسال آن به C&C.
- «۲» – پایان دادن به Shell تعاملی و پاکسازی.
- پیشفرض – کدگشایی و رمزگشایی رشتهی XORed و سپس اجرای دستور در Shell و ذخیرهی خروجی.
این بدافزار نیز مشابه WinScreeny، دارای دستور «=s» با رشتهی XORed با کلید یک بایتی 0x24 بهعنوان یک آرگومان است. رشتهی کدگشاییشده توسط cmd.exe اجرا شده و نتیجه به سرور بازگردانی میشود.
اتصالات پراکسی: پسازاینکه دستور «=p» یا «=b» دریافت شد، Backdoor از رایانهی قربانی بهعنوان یک پراکسی به URLی استفاده میکند که بهعنوان یک آرگومان آن را دریافت مینماید. Backdoor با این URL ارتباط برقرار میکند، درخواست C&C Server را تغییر جهت میدهد و منتظر یک پاسخ میماند تا آن را دوباره به C&C بفرستد.
دانلود و آپلود فایلها: دستور «=f» یا «=۱» به Backdoor این توانایی را میدهد که فایلی را که بهعنوان یک آرگومان ارائه میشود از مسیر دانلود کند یا یک فایل که بهعنوان آرگومان ارائه میشود را با محتوای بدنهی پیام بنویسد. پسازاینکه بدافزار دستور «=m» را دریافت میکند، بدنهی پیام را در مسیر <base_directory><client_address>.out مینویسد، داده را از <base_directory><client_address>.in میخواند و آن را به C&C میفرستد. اگر فایل وجود نداشته باشد، بدافزار فایل را میسازد و آن را به تاریخ و زمانی کنونی مینویسد.
اجرای دستورات SQL: دستور “con=” / “c=” رشتهی اتصال SQL DB و SQL Query را دریافت کرده و نتیجه را به سرور بازمیگرداند.
دستکاری فایلهای Local: دستور «<path>» چک میکند که آیا فایل یا دایرکتوری وجود دارد یا خیر و سپس براساس مقدار Query یکی از سه کار زیر را انجام میدهد:
- zip»» – ساخت یک فایل zip از محتوای دایرکتوری و بازگرداندن آن به C&C.
- unzip»» – Unzip کردن فایل با استفاده از مسیری که توسط C&C فراهم شده است.
- del»» – فایل را حذف میکند.
جالب اینجاست که در تمام این موارد، بدافزار کل محتوای دایرکتوری (شامل سابدایرکتوریها) را بهعنوان یک صفحهی HTML ارسال میکند که بسته به نوع فایل حاوی کلیدهای Zip، Unzip و Delete هستند. رابط کاربری از سوی مهاجم این شکل را دارد:
شکل ۶ – صفحهی HTML با فهرست دایرکتوری که به سرور C&C بازگردانده شده است
ServerLaunch Dropper
نمونهی HttpServer نسخهی ۰.۰.۵ همراه با Dropper آن به نام dwDrvInst.exe ارسال شد که از فایلهای قابلاجرای نرمافزار دسترسی از راه دور که توسط شرکت DameWare ساخته شده است، تقلید میکند. مسیر PDB این ابزار دارای الگوی مشابهی است، C:\work\ServerLaunch\Release\ServerLaunch.pdb
اما این ابزار در زبان ++C نوشته شده است، نه مثل بقیه به NET. و تقریباً دو ماه قبل از حمله در ۲ دسامبر ۲۰۲۱ جمعآوری شده است.
ServerLaunch حاوی سه فایل قابلاجرا در منابع است که آنها را در ionic.zip.dll، httpservice2 و httpservice4، که همگی در C:\Users\Public\ هستند Drop میکند. سپس بدافزار هم httpservice2 و هم httpservice4 را بدون آرگومان شروع میکند. هر یک از آنها دارای پورت از پیش تعریف شدهی متفاوتی است که روی آن گوشبهزنگ باشد و احتمالاً به مهاجم این قابلیت را میدهد که از افزونگی ارتباط C&C اطمینان حاصل کند.
ارتباط بین فایلها و حمله
به چندین ابزار مختلف و برخی از Artifactهای مرتبط به استفاده از آنها اشاره شد. واضح است که تمام این ابزار توسط یک عامل ساخته شدهاند و به هم مرتبط هستند. مثلاً ابزار Screenshot به نام Winscreeny حاوی عملکرد آپلود Screenshotها برای مهاجمین نیست و این امر احتمالاً نشان میدهد که برای انجام عملیات روی Backdoorهای دیگر حساب میکند. نام تکرارشوندهی Service1 برای تمام ابزار نشان میدهد که اگر Backdoorهای مختلف روی سیستم یکسانی کار کنند، اکثراً با آرگومانهای خط فرمان یا فایلهای پیکربندی فراهم شده اجرا میگردند.
با توجه به اینکه نمونهها به یکدیگر مرتبط هستند، میتوان به ارتباط بین این فایلها و حملهی سایبری صداوسیما پی برد.
- کل کلاستر فعالیت بههمپیوسته است و اکثراً از IPهای ایران در بازه زمانی یکسانی، احتمالاً توسط پاسخدهنده به حادثه، به VT ارسال شدند.
- فایلهای صوتی و تصویری مورد استفادهی این ابزار با فایلهایی که بهطور زنده روی تلویزیون ایران پخش شده بود، یکسان هستند. حساب توییتر GhyamSarnegouni@ که در این ویدئو نمایش داده شده بود حاوی چند ویدئو از کانالهای تلویزیونی است که هم ویدئو و هم صداهایی که در موردش صحبت شد در آن قرار دارند.
- چندین Artifact مثل Matrox DSX، Autocue QTV، TFI Arista Playout Server و غیره که در نمونهها به آنها اشاره شده بود نشان میدهند که این فایلها برای محیط پخش بزرگتری مد نظر قرار گرفته بودند.
- از بین Artifactهای جرمشناسی که همراه با ویدئو و فایلهای قابلاجرا ارسال شده بود، فایلهای Windows Event Viewer کشف شدند که حاوی شواهدی بودند که نشان میدادند سعی شده بود نمونهها در محیط شبکه تلویزیون ایران اجرا شوند، دامینی که بهصورت عمومی Resolve نمیشود. مهر زمانی این Logهای بهخصوص زمانی بعد از حادثه را نشان میدهد.
شکل ۸ – Screenshot از Log برنامه کاربردی که حاوی شواهد اجرای Wiper است.
- چندین شواهد جرمشناسی دیگر از این کلاستر فایل VT حاوی Artifactهای دیگری بودند که مستقیماً به صداوسیما ارتباط داشتند. مثلاً یک ابزار داخلی به نام MIT_FreeSizeService (md5:307e7440a15c8eed720566f067a2e96b) دارای لوگوی صداوسیما است و Memory Dump نرمافزار MetaSAN به نام executable.4504.exe (md5:1fc57ccec4668bbcbebaa9c734a437ba) دارای رشتههای حافظه است که نشان میدهند نرمافزار از دامین MIT-TV روی این سیستم اجرا شده بود.
شکل ۹ – ارسال ابزار ناشناس به VT که دارای رشتهی MIT (مشابه نام دامین) و حاوی لوگوی صداوسیما است
IOCها
فایلهای حمله:
Hash | نام | شرح |
۱۶۰۷f31ac66dfec739dc675ade921582acb8446c2ac7d6d1bc65a3e993fc5b54 | msdskint.exe | Wiper |
۴۲ed646eed4f949c456c637a222e7d94dd8ac67ed5ebda5e63c7b7979076d9cf | msdskint.exe | Wiper |
۸bdf6e262966a59a7242d279e511dd694467f07d1d76c456a0c26d0db2ec48a8 | HttpService2.exe | HttpService |
۴۲۷c105859c3dc62ece790e41a42b0f6ae587496a07d3bd190143179cdf6c6bd | HttpService4.exe | HttpService |
e3d61cbbfbe41295dd52acff388d1d8b1d414a143d77def4221fd885aae6cd83 | HttpService2.exe | HttpService |
۰۹۶bae94e09059e2e3106503353b1b4f7116fa667600ca2ab3fa7591708e645a | HttpService4.exe | HttpService |
۱۳a016b8f502c81e172c09114f25e4d8a8632768aefd56c5f6d147e9b6466216 | HttpService4.exe | HttpService |
ea740894227ae1df923997edb7bda3a00f523fbff7cc02d3b5e6b3de19d672fc | HttpCallbackService.exe | HttpCallbackService |
۶۲b692be251feb63af2723a68975976b749cab20014ffaa6488af80f4f03e0a1 | dwDrvInst.exe | ServerLaunch |
۴۱e0c19cd6a66b4c48cc693fd4be96733bc8ccbe91f7d92031d08ed7ff69759a | precg2.exe | WinScreeny |
e9e4a8650094e4de6e5d748f7bc6f605c23090d076338f437a9a70ced4a9382d | mslicval.exe | WinScreeny |
d788ebc7ee98c222f46d7ca2347027643784a78b5954c9a31734ec1b197bc2aa | Avar.exe | Avar |
۱۱۵۵dd06e0b108bde3addcdbd5d1da4dc18ca245c39ce7d967f8971eb0f88dbb | SimplePlayout.exe | SimplePlayout |
a25215c9adce51a3ecfe34c802d3e7d865cf410ddbe10101e3b41f6ba11347a4 | TSE_90E11.mp4 | فایل ویدئوی MP4 |
۴cc21810d786dca94e01d0714d37e3f097ff6e3813bf6e17a9bd86cd9a4ceb2b | TSE_90E11.001 | فایل WAV |
۷ea7b20b87ded3c297ec0890ee8a396427d70caf983b42f479d8fad38629b684 | playoutabcpxtveni.bat | |
bc8de80a28c8ae55415ccdfece270f6548f067fc2a00e799baf0279d4d560807 | breakusufjkjdil.bat | |
۱۹۷f13580ec249fa84b1e54f978c5cab60f22561a2fab2ff60bdb2d5bfa25512 | avapweiguyyyw.bat | |
efc8f12c53d1730fa8ac00cfa60e63ab43d90f42879ef69d7f6fb9978246f9cb | playjfalcfgcdq.bat | |
a2d493c2cb25fc03f5d31cf3023b473d71d38b972eccdb7873f50d2344ea7753 | simpleplayout.ini | |
c305b3cb96a34258a3e702526de6548b2de99449c0839a9aea518accc7c861ab | ۴۳۶۷۴۸-HttpService4.exe.ini | |
۸b74c08c33cd8a0cc1eaf822caeaad6b54bc39e4839e575f3c0ece4bb8992408 | ۴۳۶۷۵۱-HttpService4_2.exe.ini |
Artifactهای جرمشناسی
Hash | نام | شرح |
0daa0aefdc6d0641eb06e62bc8c92a0696aa8089258cb2d3552ac137d53237ec | sec.evtx | Log رخداد امنیتی از یکی از سیستمها |
a3b9bd57e6b281610e570be87883d907992bdf7be3bcd37885ee2cf97d930cd3 | application.evtx | Log رخداد برنامههای کاربردی از یکی از سیستمها |
۰۶۷ae6ecfd108a79a32eb1a76a262868d8f3a9a7924b26091f0e2229152bdd9d | lastfile2 | مسیر به آخرین فایلی که Wiper شده و توسط Wiper حذف شده بود |
منبع:
https://research.checkpoint.com/2022/evilplayout-attack-against-irans-state-broadcaster