مئی کے آخر میں، ہم نے ریموٹ ایکسیس ٹروجن (RAT) میلویئر کو تقسیم کرنے کے لیے ایک مہم دریافت کی — پروگرام جو حملہ آوروں کو ایک متاثرہ نظام کو دور سے کنٹرول کرنے کی اجازت دیتے ہیں۔
جس گروپ کی ہم نے جانچ کی وہ اس حقیقت سے ممتاز تھا کہ اس نے انفیکشن کے لیے کسی مخصوص RAT فیملی کا انتخاب نہیں کیا۔ مہم کے اندر حملوں میں کئی ٹروجن دیکھے گئے (جن میں سے سبھی بڑے پیمانے پر دستیاب تھے)۔ اس خصوصیت کے ساتھ، اس گروپ نے ہمیں چوہے کے بادشاہ کی یاد دلائی - ایک افسانوی جانور جو آپس میں جڑی ہوئی دموں والے چوہوں پر مشتمل ہوتا ہے۔
اصل مونوگراف سے K. N. Rossikov نے لیا ہے "چوہوں اور چوہے نما چوہا، اقتصادی طور پر سب سے اہم" (1908)
اس مخلوق کے اعزاز میں، ہم نے اس گروپ کا نام رکھا جس پر ہم RATKing پر غور کر رہے ہیں۔ اس پوسٹ میں، ہم اس بارے میں تفصیل میں جائیں گے کہ حملہ آوروں نے حملہ کیسے کیا، انھوں نے کون سے اوزار استعمال کیے، اور اس مہم کے لیے انتساب کے بارے میں اپنے خیالات بھی شیئر کریں۔
حملے کی پیشرفت
اس مہم میں تمام حملے درج ذیل الگورتھم کے مطابق ہوئے:
صارف کو گوگل ڈرائیو کے لنک کے ساتھ ایک فشنگ ای میل موصول ہوئی۔
لنک کا استعمال کرتے ہوئے، متاثرہ نے ایک بدنیتی پر مبنی VBS اسکرپٹ ڈاؤن لوڈ کیا جس نے ونڈوز رجسٹری میں حتمی پے لوڈ لوڈ کرنے کے لیے ایک DLL لائبریری کی وضاحت کی اور اسے چلانے کے لیے PowerShell لانچ کیا۔
DLL لائبریری نے حتمی پے لوڈ - درحقیقت، حملہ آوروں کے ذریعہ استعمال ہونے والے RATs میں سے ایک - کو سسٹم کے عمل میں داخل کیا اور متاثرہ مشین میں قدم جمانے کے لیے آٹورن میں VBS اسکرپٹ رجسٹر کیا۔
حتمی پے لوڈ کو سسٹم کے عمل میں انجام دیا گیا اور حملہ آور کو متاثرہ کمپیوٹر کو کنٹرول کرنے کی صلاحیت دی۔
اسکیماتی طور پر اس کی نمائندگی اس طرح کی جا سکتی ہے:
اگلا، ہم پہلے تین مراحل پر توجہ مرکوز کریں گے، کیونکہ ہم میلویئر کی ترسیل کے طریقہ کار میں دلچسپی رکھتے ہیں۔ ہم خود میلویئر کے آپریشن کے طریقہ کار کو تفصیل سے بیان نہیں کریں گے۔ وہ بڑے پیمانے پر دستیاب ہیں - یا تو خصوصی فورمز پر فروخت کیے جاتے ہیں، یا یہاں تک کہ اوپن سورس پروجیکٹس کے طور پر تقسیم کیے جاتے ہیں - اور اس لیے RATKing گروپ کے لیے منفرد نہیں ہیں۔
حملے کے مراحل کا تجزیہ
مرحلہ 1۔ فشنگ ای میل
حملہ اس وقت شروع ہوا جب شکار کو ایک بدنیتی پر مبنی خط موصول ہوا (حملہ آوروں نے متن کے ساتھ مختلف ٹیمپلیٹس استعمال کیے؛ ذیل کا اسکرین شاٹ ایک مثال دکھاتا ہے)۔ پیغام میں ایک جائز ذخیرہ کا لنک تھا۔ drive.google.com، جس کی وجہ سے قیاس کیا جاتا ہے کہ پی ڈی ایف دستاویز ڈاؤن لوڈ صفحہ بنا۔
فشنگ ای میل کی مثال
تاہم، درحقیقت، یہ پی ڈی ایف دستاویز نہیں تھی جو بالکل لوڈ کی گئی تھی، بلکہ ایک VBS اسکرپٹ تھی۔
جب آپ نے اوپر اسکرین شاٹ میں ای میل سے لنک پر کلک کیا تو ایک فائل کا نام Cargo Flight Details.vbs. اس معاملے میں حملہ آوروں نے فائل کو جائز دستاویز کے طور پر چھپانے کی کوشش بھی نہیں کی۔
اسی وقت، اس مہم کے حصے کے طور پر، ہم نے ایک اسکرپٹ کا نام دریافت کیا۔ Cargo Trip Detail.pdf.vbs. یہ پہلے سے ہی ایک جائز پی ڈی ایف کے لیے پاس ہو سکتا ہے کیونکہ ونڈوز فائل ایکسٹینشن کو بطور ڈیفالٹ چھپاتا ہے۔ سچ ہے، اس صورت میں، شک اب بھی اس کے آئیکن سے پیدا کیا جا سکتا ہے، جو VBS اسکرپٹ سے مطابقت رکھتا ہے۔
اس مرحلے پر، شکار فریب کو پہچان سکتا ہے: صرف ایک سیکنڈ کے لیے ڈاؤن لوڈ کی گئی فائلوں کو قریب سے دیکھیں۔ تاہم، ایسی فشنگ مہموں میں، حملہ آور اکثر لاپرواہ یا جلدی کرنے والے صارف پر انحصار کرتے ہیں۔
مرحلہ 2۔ VBS اسکرپٹ آپریشن
VBS اسکرپٹ، جسے صارف نادانستہ طور پر کھول سکتا ہے، نے ونڈوز رجسٹری میں DLL لائبریری کو رجسٹر کیا۔ اسکرپٹ کو مبہم کردیا گیا تھا: اس میں لائنوں کو ایک صوابدیدی کردار سے الگ کرکے بائٹس کے طور پر لکھا گیا تھا۔
مبہم اسکرپٹ کی مثال
deobfuscation الگورتھم کافی آسان ہے: ہر تیسرے کردار کو مبہم سٹرنگ سے خارج کر دیا گیا تھا، جس کے بعد نتیجہ کو بیس 16 سے اصل سٹرنگ میں ڈی کوڈ کر دیا گیا تھا۔ مثال کے طور پر، قدر سے 57Q53s63t72s69J70r74e2El53v68m65j6CH6Ct (اوپر اسکرین شاٹ میں روشنی ڈالی گئی) نتیجے میں لائن تھی۔ WScript.Shell.
تاروں کو غیر واضح کرنے کے لیے، ہم نے Python فنکشن استعمال کیا:
def decode_str(data_enc):
return binascii.unhexlify(''.join([data_enc[i:i+2] for i in range(0, len(data_enc), 3)]))
ذیل میں، سطروں 9-10 پر، ہم اس قدر کو نمایاں کرتے ہیں جس کے deobfuscation کے نتیجے میں DLL فائل بنی۔ یہ وہی تھا جسے اگلے مرحلے پر پاور شیل کا استعمال کرتے ہوئے لانچ کیا گیا تھا۔
مبہم DLL کے ساتھ سٹرنگ
وی بی ایس اسکرپٹ میں ہر فنکشن کو اس طرح انجام دیا گیا تھا کیونکہ تاروں کو صاف کیا گیا تھا۔
اسکرپٹ چلانے کے بعد فنکشن بلایا گیا۔ wscript.sleep - اس کا استعمال موخر عمل کو انجام دینے کے لیے کیا جاتا تھا۔
اگلا، اسکرپٹ نے ونڈوز رجسٹری کے ساتھ کام کیا۔ اس کے لیے اس نے ڈبلیو ایم آئی ٹیکنالوجی کا استعمال کیا۔ اس کی مدد سے، ایک منفرد کلید بنائی گئی، اور قابل عمل فائل کا باڈی اس کے پیرامیٹر پر لکھا گیا۔ درج ذیل کمانڈ کا استعمال کرتے ہوئے WMI کے ذریعے رجسٹری تک رسائی حاصل کی گئی تھی۔
تیسرے مرحلے پر، بدنیتی پر مبنی DLL نے حتمی پے لوڈ لوڈ کیا، اسے سسٹم کے عمل میں انجیکشن لگایا، اور اس بات کو یقینی بنایا کہ صارف کے لاگ ان ہونے پر VBS اسکرپٹ خود بخود شروع ہو جائے۔
پاور شیل کے ذریعے چلائیں۔
پاور شیل میں درج ذیل کمانڈ کا استعمال کرتے ہوئے DLL کو پھانسی دی گئی تھی۔
نام کے ساتھ رجسٹری ویلیو ڈیٹا موصول ہوا۔ rnd_value_name - یہ ڈیٹا ایک DLL فائل تھی جو .Net پلیٹ فارم پر لکھی گئی تھی۔
نتیجے میں .Net ماڈیول کو پروسیس میموری میں لوڈ کیا۔ powershell.exe فنکشن کا استعمال کرتے ہوئے [System.Threading.Thread]::GetDomain().Load()(Load() فنکشن کی تفصیلی وضاحت Microsoft کی ویب سائٹ پر دستیاب ہے۔);
تقریب کو انجام دیا GUyyvmzVhebFCw]::EhwwK() - ڈی ایل ایل لائبریری کا عمل اس کے ساتھ شروع ہوا - پیرامیٹرز کے ساتھ vbsScriptPath, xorKey, vbsScriptName... پیرامیٹر xorKey حتمی پے لوڈ، اور پیرامیٹرز کو ڈکرپٹ کرنے کے لیے کلید کو محفوظ کیا۔ vbsScriptPath и vbsScriptName آٹورن میں VBS اسکرپٹ کو رجسٹر کرنے کے لیے منتقل کیا گیا تھا۔
DLL لائبریری کی تفصیل
ڈی کمپائل شدہ شکل میں، لوڈر اس طرح نظر آتا تھا:
ڈی کمپائل شدہ شکل میں لوڈر (وہ فنکشن جس کے ساتھ ڈی ایل ایل لائبریری کا عمل شروع ہوا تھا سرخ رنگ میں لکھا ہوا ہے)
بوٹ لوڈر .Net Reactor محافظ کے ذریعہ محفوظ ہے۔ de4dot یوٹیلیٹی اس محافظ کو ہٹانے کا بہترین کام کرتی ہے۔
یہ لوڈر:
سسٹم کے عمل میں پے لوڈ کو انجیکشن لگایا (اس مثال میں یہ svchost.exe);
میں نے آٹورن میں ایک VBS اسکرپٹ شامل کیا۔
پے لوڈ انجیکشن
آئیے اس فنکشن کو دیکھتے ہیں جسے پاور شیل اسکرپٹ کہتے ہیں۔
فنکشن جسے پاور شیل اسکرپٹ کہتے ہیں۔
اس فنکشن نے درج ذیل اعمال انجام دیے:
ڈکرپٹڈ دو ڈیٹا سیٹ (array и array2 اسکرین شاٹ میں)۔ وہ اصل میں gzip کا استعمال کرتے ہوئے کمپریس کیے گئے تھے اور کلید کے ساتھ XOR الگورتھم کے ساتھ انکرپٹ کیے گئے تھے۔ xorKey;
مختص میموری علاقوں میں ڈیٹا کاپی کیا. سے ڈیٹا array - میموری کے علاقے کی طرف اشارہ کیا گیا ہے۔ intPtr (payload pointer اسکرین شاٹ میں) سے ڈیٹا array2 - میموری کے علاقے کی طرف اشارہ کیا گیا ہے۔ intPtr2 (shellcode pointer اسکرین شاٹ میں)
فنکشن کہا جاتا ہے۔ CallWindowProcA(تفصیل یہ فنکشن Microsoft کی ویب سائٹ پر دستیاب ہے) مندرجہ ذیل پیرامیٹرز کے ساتھ (پیرامیٹر کے نام ذیل میں درج ہیں، اسکرین شاٹ میں وہ ایک ہی ترتیب میں ہیں، لیکن کام کرنے والی اقدار کے ساتھ):
lpPrevWndFunc - سے ڈیٹا کی طرف اشارہ کرنے والا array2;
hWnd - ایک سٹرنگ کی طرف اشارہ کرتا ہے جس میں قابل عمل فائل کا راستہ ہوتا ہے۔ svchost.exe;
Msg - سے ڈیٹا کی طرف اشارہ کرنے والا array;
wParam, lParam - پیغام کے پیرامیٹرز (اس معاملے میں، یہ پیرامیٹرز استعمال نہیں کیے گئے تھے اور ان کی قدریں 0 تھیں)؛
ایک فائل بنائی %AppData%MicrosoftWindowsStart MenuProgramsStartup<name>.urlجہاں <name> - یہ پیرامیٹر کے پہلے 4 حروف ہیں۔ vbsScriptName (اسکرین شاٹ میں، اس کارروائی کے ساتھ کوڈ کا ٹکڑا کمانڈ سے شروع ہوتا ہے۔ File.Copy)۔ اس طرح، میلویئر نے یو آر ایل فائل کو آٹورن فائلوں کی فہرست میں شامل کیا جب صارف لاگ ان ہوا اور اس طرح متاثرہ کمپیوٹر سے منسلک ہوگیا۔ URL فائل میں اسکرپٹ کا لنک تھا:
یہ سمجھنے کے لیے کہ انجکشن کیسے لگایا گیا، ہم نے ڈیٹا کی صفوں کو ڈکرپٹ کیا۔ array и array2. ایسا کرنے کے لیے ہم نے Python فنکشن کا استعمال کیا:
def decrypt(data, key):
return gzip.decompress(
bytearray([data[i] ^ key[i % len(key)] for i in range(len(data))])[4:])
نتیجے کے طور پر، ہمیں پتہ چلا کہ:
array ایک PE فائل تھی - یہ آخری پے لوڈ ہے؛
array2 انجیکشن لگانے کے لیے شیل کوڈ کی ضرورت تھی۔
ایک صف سے شیل کوڈ array2 فنکشن ویلیو کے طور پر منظور کیا گیا۔ lpPrevWndFunc ایک فنکشن میں CallWindowProcA. lpPrevWndFunc کال بیک فنکشن، اس کا پروٹو ٹائپ اس طرح لگتا ہے:
تو جب آپ فنکشن چلاتے ہیں۔ CallWindowProcA پیرامیٹرز کے ساتھ hWnd, Msg, wParam, lParam صف سے شیل کوڈ کو پھانسی دی گئی ہے۔ array2 دلائل کے ساتھ hWnd и Msg. hWnd ایک اسٹرنگ کی طرف اشارہ کرتا ہے جس میں قابل عمل فائل کا راستہ ہوتا ہے۔ svchost.exeاور Msg - آخری پے لوڈ کی طرف اشارہ۔
شیل کوڈ سے فنکشن ایڈریس موصول ہوئے ہیں۔ kernel32.dll и ntdll32.dll ان کے ناموں سے ہیش ویلیوز کی بنیاد پر اور حتمی پے لوڈ کو پراسیس میموری میں داخل کیا۔ svchost.exeپروسیس ہولونگ تکنیک کا استعمال کرتے ہوئے (آپ اس کے بارے میں مزید پڑھ سکتے ہیں۔ آرٹیکل)۔ شیل کوڈ انجیکشن کرتے وقت:
ایک عمل بنایا svchost.exe فنکشن کا استعمال کرتے ہوئے معطل حالت میں CreateProcessW;
پھر سیکشن کے ڈسپلے کو پروسیس کے ایڈریس اسپیس میں چھپا دیا۔ svchost.exe فنکشن کا استعمال کرتے ہوئے NtUnmapViewOfSection. اس طرح، پروگرام نے اصل عمل کی یادداشت کو آزاد کر دیا۔ svchost.exeپھر اس ایڈریس پر پے لوڈ کے لیے میموری مختص کرنے کے لیے؛
پروسیس ایڈریس اسپیس میں پے لوڈ کے لیے مختص میموری svchost.exe فنکشن کا استعمال کرتے ہوئے VirtualAllocEx;
انجیکشن کے عمل کا آغاز
پے لوڈ کے مواد کو پروسیس ایڈریس اسپیس میں لکھا svchost.exe فنکشن کا استعمال کرتے ہوئے WriteProcessMemory (جیسا کہ نیچے اسکرین شاٹ میں ہے)؛
عمل دوبارہ شروع کیا svchost.exe فنکشن کا استعمال کرتے ہوئے ResumeThread.
انجیکشن کے عمل کو مکمل کرنا
ڈاؤن لوڈ کے قابل میلویئر
بیان کردہ اعمال کے نتیجے میں، متعدد RAT-کلاس میلویئر میں سے ایک متاثرہ سسٹم پر انسٹال ہوا تھا۔ نیچے دی گئی جدول میں حملے میں استعمال ہونے والے میلویئر کی فہرست دی گئی ہے، جسے ہم اعتماد کے ساتھ حملہ آوروں کے ایک گروپ سے منسوب کر سکتے ہیں، کیونکہ نمونوں نے ایک ہی کمانڈ اور کنٹرول سرور تک رسائی حاصل کی تھی۔
ایک ہی کنٹرول سرور کے ساتھ تقسیم شدہ میلویئر کی مثالیں۔
یہاں دو باتیں قابل غور ہیں۔
سب سے پہلے، یہ حقیقت کہ حملہ آوروں نے ایک ساتھ کئی مختلف RAT خاندانوں کا استعمال کیا۔ یہ رویہ معروف سائبر گروپس کے لیے عام نہیں ہے، جو اکثر تقریباً وہی ٹولز استعمال کرتے ہیں جو ان سے واقف ہیں۔
دوم، RATKing نے میلویئر کا استعمال کیا جو یا تو مخصوص فورمز پر کم قیمت پر فروخت کیا جاتا ہے، یا یہ اوپن سورس پروجیکٹ بھی ہے۔
مہم میں استعمال ہونے والے میلویئر کی مزید مکمل فہرست — ایک اہم انتباہ کے ساتھ — مضمون کے آخر میں دی گئی ہے۔
گروپ کے بارے میں
ہم بیان کردہ بدنیتی پر مبنی مہم کو کسی بھی معلوم حملہ آور سے منسوب نہیں کر سکتے۔ ابھی کے لیے، ہم سمجھتے ہیں کہ یہ حملے ایک بنیادی طور پر نئے گروپ کے ذریعے کیے گئے تھے۔ جیسا کہ ہم نے شروع میں لکھا تھا، ہم نے اسے RATKing کہا۔
VBS اسکرپٹ بنانے کے لیے، گروپ نے شاید یوٹیلیٹی سے ملتا جلتا ٹول استعمال کیا۔ VBS-Crypter ڈویلپر سے NYAN-x-CAT. یہ اسکرپٹ کی مماثلت سے ظاہر ہوتا ہے جو یہ پروگرام حملہ آوروں کے اسکرپٹ کے ساتھ تخلیق کرتا ہے۔ خاص طور پر، وہ دونوں:
فنکشن کا استعمال کرتے ہوئے تاخیر سے عمل درآمد کریں۔ Sleep;
WMI استعمال کریں؛
ایگزیکیوٹیبل فائل کے باڈی کو رجسٹری کلیدی پیرامیٹر کے طور پر رجسٹر کریں۔
اس فائل کو پاور شیل کا استعمال کرتے ہوئے اس کے اپنے ایڈریس اسپیس میں چلائیں۔
وضاحت کے لیے، رجسٹری سے فائل چلانے کے لیے PowerShell کمانڈ کا موازنہ کریں، جو کہ VBS-Crypter کا استعمال کرتے ہوئے تخلیق کردہ اسکرپٹ کے ذریعے استعمال کیا جاتا ہے:
نوٹ کریں کہ حملہ آوروں نے پے لوڈز میں سے ایک کے طور پر NYAN-x-CAT سے ایک اور یوٹیلیٹی استعمال کی۔ LimeRAT.
C&C سرورز کے پتے RATKing کی ایک اور مخصوص خصوصیت کی نشاندہی کرتے ہیں: گروپ متحرک DNS خدمات کو ترجیح دیتا ہے (IoC ٹیبل میں C&Cs کی فہرست دیکھیں)۔
آئی او سی
نیچے دی گئی جدول VBS اسکرپٹس کی ایک مکمل فہرست فراہم کرتی ہے جو زیادہ تر ممکنہ طور پر بیان کردہ مہم سے منسوب کی جا سکتی ہے۔ یہ تمام اسکرپٹ ایک جیسے ہیں اور تقریباً ایک ہی ترتیب کے اعمال انجام دیتے ہیں۔ یہ سب RAT کلاس مالویئر کو ونڈوز کے قابل اعتماد عمل میں انجیکشن دیتے ہیں۔ ان سب کے پاس ڈائنامک ڈی این ایس سروسز کا استعمال کرتے ہوئے رجسٹرڈ C&C ایڈریس ہیں۔
تاہم، ہم یہ دعویٰ نہیں کر سکتے کہ یہ تمام اسکرپٹ ایک ہی حملہ آوروں کے ذریعے تقسیم کیے گئے تھے، سوائے ایک جیسے C&C ایڈریس والے نمونوں کے (مثال کے طور پر، kimjoy007.dyndns.org)۔