OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ

مارچ 2019 میں، سائبر گروپ OceanLotus کی جانب سے macOS میلویئر کا ایک نیا نمونہ VirusTotal پر اپ لوڈ کیا گیا، جو کہ ایک مشہور آن لائن اسکیننگ سروس ہے۔ بیک ڈور ایگزیکیوٹیبل فائل میں وہی صلاحیتیں ہیں جو macOS میلویئر کے پچھلے ورژن کا ہم نے مطالعہ کیا تھا، لیکن اس کی ساخت بدل گئی ہے اور اس کا پتہ لگانا زیادہ مشکل ہو گیا ہے۔ بدقسمتی سے، ہم اس نمونے سے وابستہ ڈراپر تلاش کرنے سے قاصر تھے، اس لیے ہم ابھی تک انفیکشن ویکٹر کو نہیں جانتے ہیں۔

ہم نے حال ہی میں شائع کیا OceanLotus کے بارے میں پوسٹ اور آپریٹرز کس طرح استقامت فراہم کرنے، کوڈ پر عمل درآمد کو تیز کرنے، اور ونڈوز سسٹمز پر قدموں کے نشان کو کم سے کم کرنے کی کوشش کر رہے ہیں۔ یہ بھی معلوم ہوا ہے کہ اس سائبر گروپ میں macOS کے لیے ایک جزو بھی ہے۔ اس پوسٹ میں پچھلے ورژن (ٹرینڈ مائیکرو کے ذریعہ بیان کیا گیا ہے۔)، اور یہ بھی بتاتا ہے کہ آپ IDA Hex-Rays API کا استعمال کرتے ہوئے تجزیہ کے دوران تاروں کے ڈکرپشن کو خودکار کیسے بنا سکتے ہیں۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ

تجزیہ

اگلے تین حصے SHA-1 ہیش والے نمونے کے تجزیے کو بیان کرتے ہیں۔ E615632C9998E4D3E5ACD8851864ED09B02C77D2. فائل کو بلایا جاتا ہے۔ فلیش لائٹESET اینٹی وائرس پروڈکٹس اسے OSX/OceanLotus.D کے بطور پتہ لگاتے ہیں۔

اینٹی ڈیبگنگ اور سینڈ باکس تحفظ

تمام macOS OceanLotus بائنریز کی طرح، نمونے کو UPX کے ساتھ پیک کیا جاتا ہے، لیکن زیادہ تر پیکیجر شناختی ٹولز اسے اس طرح نہیں پہچانتے ہیں۔ شاید اس لیے کہ ان میں زیادہ تر دستخط ہوتے ہیں جو "UPX" سٹرنگ کی موجودگی پر منحصر ہوتے ہیں، اور یہ بھی کہ Mach-O دستخط کم عام ہوتے ہیں اور اکثر اپ ڈیٹ نہیں ہوتے۔ یہ خصوصیت جامد کا پتہ لگانے کو مشکل بناتی ہے۔ دلچسپ بات یہ ہے کہ پیک کھولنے کے بعد انٹری پوائنٹ سیکشن کے شروع میں ہوتا ہے۔ __cfstring طبقہ میں .TEXT. اس حصے میں جھنڈے کی خصوصیات ہیں جیسا کہ ذیل کی تصویر میں دکھایا گیا ہے۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ
شکل 1. MACH-O __cfstring سیکشن کی خصوصیات

جیسا کہ شکل 2 میں دکھایا گیا ہے، سیکشن میں کوڈ کے مقامات __cfstring کوڈ کو تار کے طور پر ظاہر کر کے آپ کو کچھ جدا کرنے والے ٹولز کو چال کرنے کی اجازت دیتا ہے۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ
تصویر 2. IDA کے ذریعہ ڈیٹا کے طور پر بیک ڈور کوڈ کا پتہ چلا

ایک بار عمل میں آنے کے بعد، بائنری ایک اینٹی ڈیبگر کے طور پر ایک تھریڈ بناتی ہے جس کا واحد مقصد ڈیبگر کی موجودگی کی مسلسل جانچ کرنا ہوتا ہے۔ اس بہاؤ کے لیے:

- کال کرنے، کسی بھی ڈیبگر کو ہٹانے کی کوشش کرتا ہے۔ ptrace с PT_DENY_ATTACH درخواست کے پیرامیٹر کے طور پر
- کسی فنکشن کو کال کرکے چیک کرتا ہے کہ آیا کچھ خصوصی بندرگاہیں کھلی ہیں۔ task_get_exception_ports
- جھنڈے کی موجودگی کی جانچ کرکے چیک کرتا ہے کہ آیا ڈیبگر منسلک ہے، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔ P_TRACED موجودہ عمل میں

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ
شکل 3. sysctl فنکشن کا استعمال کرتے ہوئے ڈیبگر کنکشن کو چیک کرنا

اگر واچ ڈاگ ڈیبگر کی موجودگی کا پتہ لگاتا ہے، تو فنکشن کہا جاتا ہے۔ exit. مزید برآں، نمونہ پھر دو کمانڈز چلا کر ماحول کی جانچ کرتا ہے۔

ioreg -l | grep -e "Manufacturer" и sysctl hw.model

نمونہ پھر ریٹرن ویلیو کو معلوم ورچوئلائزیشن سسٹمز سے سٹرنگز کی ہارڈ کوڈڈ فہرست کے خلاف چیک کرتا ہے: acle, vmware, مجازی باکس یا متوازی. آخر میں، اگلی کمانڈ چیک کرتی ہے کہ آیا مشین درج ذیل "MBP"، "MBA"، "MB"، "MM"، "IM"، "MP" اور "XS" میں سے ایک ہے۔ یہ سسٹم ماڈل کوڈز ہیں، مثال کے طور پر، "MBP" کا مطلب ہے MacBook Pro، "MBA" کا مطلب ہے MacBook Air وغیرہ۔

system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}

اہم اضافے

اگرچہ Trend Micro کی تحقیق کے بعد سے بیک ڈور کمانڈز میں کوئی تبدیلی نہیں آئی ہے، لیکن ہم نے کچھ دیگر ترمیمات کو دیکھا۔ اس نمونے میں استعمال ہونے والے C&C سرورز بالکل نئے ہیں اور 22.10.2018/XNUMX/XNUMX کو بنائے گئے تھے۔

- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com

وسیلہ URL میں تبدیل ہو گیا ہے۔ /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
C&C سرور کو بھیجے گئے پہلے پیکٹ میں میزبان مشین کے بارے میں مزید معلومات شامل ہیں، بشمول نیچے دیے گئے جدول میں کمانڈز کے ذریعے جمع کردہ تمام ڈیٹا۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ

اس ترتیب میں تبدیلی کے علاوہ، نمونہ نیٹ ورک فلٹرنگ کے لیے لائبریری کا استعمال نہیں کرتا ہے۔ libcurl، لیکن ایک بیرونی لائبریری۔ اسے تلاش کرنے کے لیے، بیک ڈور موجودہ ڈائرکٹری میں موجود ہر فائل کو کلید کے ساتھ AES-256-CBC کا استعمال کرتے ہوئے ڈکرپٹ کرنے کی کوشش کرتا ہے۔ gFjMXBgyXWULmVVVzyxy, صفر کے ساتھ بولڈ. ہر فائل کو بطور ڈیکرپٹ اور محفوظ کیا جاتا ہے۔ /tmp/store، اور اسے ایک لائبریری کے طور پر لوڈ کرنے کی کوشش فنکشن کا استعمال کرتے ہوئے کی گئی ہے۔ dlopen. جب ڈکرپشن کی کوشش کامیاب کال کی صورت میں نکلتی ہے۔ dlopen، بیک ڈور ایکسپورٹڈ فنکشن نکالتا ہے۔ Boriry и ChadylonVجو بظاہر سرور کے ساتھ نیٹ ورک مواصلت کے ذمہ دار ہیں۔ ہمارے پاس نمونے کے اصل مقام سے ڈراپر یا دیگر فائلیں نہیں ہیں، اس لیے ہم اس لائبریری کو پارس نہیں کر سکتے۔ مزید برآں، چونکہ جزو انکرپٹڈ ہے، اس لیے ان تاروں پر مبنی YARA قاعدہ ڈسک پر موجود فائل سے مماثل نہیں ہوگا۔

جیسا کہ اوپر مضمون میں بیان کیا گیا ہے، یہ تخلیق کرتا ہے کلائنٹ آئی ڈی. یہ ID درج ذیل کمانڈز میں سے کسی ایک کی واپسی کی قیمت کا MD5 ہیش ہے۔

- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformSerialNumber/ { split($0, line, """); printf("%s", line[4]); }'
- ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, """); printf("%s", line[4]); }'
- ifconfig en0 | awk '/ether /{print $2}' (میک ایڈریس حاصل کریں)
- نامعلوم ٹیم ("x1ex72x0a")، جو پچھلے نمونوں میں استعمال ہوتا ہے۔

ہیش کرنے سے پہلے، روٹ مراعات کی نشاندہی کرنے کے لیے واپسی کی قدر میں "0" یا "1" شامل کیا جاتا ہے۔ یہ کلائنٹ آئی ڈی میں ذخیرہ /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex، اگر کوڈ کو روٹ کے طور پر چلایا جاتا ہے یا ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML دیگر تمام معاملات میں۔ فائل عام طور پر فنکشن کا استعمال کرتے ہوئے چھپی رہتی ہے۔ جھنڈے، اس کا ٹائم اسٹیمپ کمانڈ کا استعمال کرتے ہوئے تبدیل کیا جاتا ہے۔ touch –t بے ترتیب قدر کے ساتھ۔

تاروں کو ضابطہ کشائی کرنا

پچھلے اختیارات کی طرح، تاروں کو AES-256-CBC (ہیکساڈیسیمل کلید:) کا استعمال کرتے ہوئے انکرپٹ کیا جاتا ہے۔ 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 زیرو کے ساتھ پیڈڈ، اور IV صفر سے بھرا ہوا) فنکشن کے ذریعے CCCrypt. کلید پچھلے ورژن سے بدل گئی ہے، لیکن چونکہ گروپ اب بھی وہی سٹرنگ انکرپشن الگورتھم استعمال کرتا ہے، اس لیے ڈکرپشن کو خودکار کیا جا سکتا ہے۔ اس پوسٹ کے علاوہ، ہم ایک IDA اسکرپٹ جاری کر رہے ہیں جو بائنری فائل میں موجود تاروں کو ڈکرپٹ کرنے کے لیے Hex-Rays API کا استعمال کرتا ہے۔ یہ اسکرپٹ OceanLotus کے مستقبل کے تجزیہ اور موجودہ نمونوں کے تجزیے میں مدد کر سکتا ہے جو ہم ابھی تک حاصل نہیں کر سکے ہیں۔ اسکرپٹ ایک فنکشن میں بھیجے گئے دلائل وصول کرنے کے ایک عالمگیر طریقہ پر مبنی ہے۔ مزید برآں، یہ پیرامیٹر اسائنمنٹس کو دیکھتا ہے۔ طریقہ کار کو فنکشن آرگیومینٹس کی فہرست حاصل کرنے کے لیے دوبارہ استعمال کیا جا سکتا ہے اور پھر اسے کال بیک پر منتقل کیا جا سکتا ہے۔

فنکشن پروٹو ٹائپ کو جاننا منسوخ، اسکرپٹ اس فنکشن کے تمام کراس حوالہ جات، تمام دلائل تلاش کرتا ہے، پھر ڈیٹا کو ڈیکرپٹ کرتا ہے اور کراس ریفرنس ایڈریس پر ایک تبصرہ کے اندر سادہ متن رکھتا ہے۔ اسکرپٹ کے صحیح طریقے سے کام کرنے کے لیے، اسے بیس 64 ڈی کوڈنگ فنکشن کے ذریعے استعمال ہونے والے حسب ضرورت حروف تہجی پر سیٹ ہونا چاہیے، اور ایک عالمی متغیر کی وضاحت ہونی چاہیے جس میں کلید کی لمبائی ہو (اس صورت میں ایک DWORD، شکل 4 دیکھیں)۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ
تصویر 4. عالمی متغیر key_len کی تعریف

فنکشن ونڈو میں، آپ ڈکرپشن فنکشن پر دائیں کلک کر سکتے ہیں اور "دلائل کو نکالیں اور ڈکرپٹ کریں" پر کلک کر سکتے ہیں۔ اسکرپٹ کو ڈکرپٹ شدہ لائنوں کو تبصروں میں رکھنا چاہیے، جیسا کہ شکل 5 میں دکھایا گیا ہے۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ
تصویر 5. ڈکرپٹ شدہ متن تبصروں میں رکھا گیا ہے۔

اس طرح ڈیکرپٹ شدہ تاروں کو IDA ونڈو میں آسانی سے ایک ساتھ رکھا جاتا ہے۔ xrefs اس فنکشن کے لیے جیسا کہ شکل 6 میں دکھایا گیا ہے۔

OceanLotus: macOS کے لیے میلویئر اپ ڈیٹ
شکل 6. Xrefs to f_decrypt فنکشن

حتمی سکرپٹ پر پایا جا سکتا ہے گیتوب ذخیرہ.

آؤٹ پٹ

جیسا کہ پہلے ہی ذکر کیا گیا ہے، OceanLotus اپنی ٹول کٹ کو مسلسل بہتر اور اپ ڈیٹ کر رہا ہے۔ اس بار سائبر گروپ نے میک صارفین کے ساتھ کام کرنے کے لیے میلویئر کو بہتر بنایا ہے۔ کوڈ میں زیادہ تبدیلی نہیں آئی ہے، لیکن چونکہ بہت سے میک صارفین سیکیورٹی پروڈکٹس کو نظر انداز کرتے ہیں، اس لیے میلویئر کو پتہ لگانے سے بچانا ثانوی اہمیت کا حامل ہے۔

تحقیق کے وقت ESET پروڈکٹس پہلے ہی اس فائل کا پتہ لگا رہے تھے۔ چونکہ C&C کمیونیکیشن کے لیے استعمال ہونے والی نیٹ ورک لائبریری اب ڈسک پر انکرپٹ ہو چکی ہے، اس لیے حملہ آوروں کے ذریعے استعمال کیا جانے والا نیٹ ورک پروٹوکول ابھی تک معلوم نہیں ہے۔

سمجھوتے کے اشارے۔

سمجھوتہ کے اشارے کے ساتھ ساتھ MITER ATT&CK اوصاف بھی دستیاب ہیں۔ GitHub کے.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں