مارچ 2019 میں، سائبر گروپ OceanLotus کی جانب سے macOS میلویئر کا ایک نیا نمونہ VirusTotal پر اپ لوڈ کیا گیا، جو کہ ایک مشہور آن لائن اسکیننگ سروس ہے۔ بیک ڈور ایگزیکیوٹیبل فائل میں وہی صلاحیتیں ہیں جو macOS میلویئر کے پچھلے ورژن کا ہم نے مطالعہ کیا تھا، لیکن اس کی ساخت بدل گئی ہے اور اس کا پتہ لگانا زیادہ مشکل ہو گیا ہے۔ بدقسمتی سے، ہم اس نمونے سے وابستہ ڈراپر تلاش کرنے سے قاصر تھے، اس لیے ہم ابھی تک انفیکشن ویکٹر کو نہیں جانتے ہیں۔
ہم نے حال ہی میں شائع کیا
تجزیہ
اگلے تین حصے SHA-1 ہیش والے نمونے کے تجزیے کو بیان کرتے ہیں۔ E615632C9998E4D3E5ACD8851864ED09B02C77D2
. فائل کو بلایا جاتا ہے۔ فلیش لائٹESET اینٹی وائرس پروڈکٹس اسے OSX/OceanLotus.D کے بطور پتہ لگاتے ہیں۔
اینٹی ڈیبگنگ اور سینڈ باکس تحفظ
تمام macOS OceanLotus بائنریز کی طرح، نمونے کو UPX کے ساتھ پیک کیا جاتا ہے، لیکن زیادہ تر پیکیجر شناختی ٹولز اسے اس طرح نہیں پہچانتے ہیں۔ شاید اس لیے کہ ان میں زیادہ تر دستخط ہوتے ہیں جو "UPX" سٹرنگ کی موجودگی پر منحصر ہوتے ہیں، اور یہ بھی کہ Mach-O دستخط کم عام ہوتے ہیں اور اکثر اپ ڈیٹ نہیں ہوتے۔ یہ خصوصیت جامد کا پتہ لگانے کو مشکل بناتی ہے۔ دلچسپ بات یہ ہے کہ پیک کھولنے کے بعد انٹری پوائنٹ سیکشن کے شروع میں ہوتا ہے۔ __cfstring
طبقہ میں .TEXT
. اس حصے میں جھنڈے کی خصوصیات ہیں جیسا کہ ذیل کی تصویر میں دکھایا گیا ہے۔
شکل 1. MACH-O __cfstring سیکشن کی خصوصیات
جیسا کہ شکل 2 میں دکھایا گیا ہے، سیکشن میں کوڈ کے مقامات __cfstring
کوڈ کو تار کے طور پر ظاہر کر کے آپ کو کچھ جدا کرنے والے ٹولز کو چال کرنے کی اجازت دیتا ہے۔
تصویر 2. IDA کے ذریعہ ڈیٹا کے طور پر بیک ڈور کوڈ کا پتہ چلا
ایک بار عمل میں آنے کے بعد، بائنری ایک اینٹی ڈیبگر کے طور پر ایک تھریڈ بناتی ہے جس کا واحد مقصد ڈیبگر کی موجودگی کی مسلسل جانچ کرنا ہوتا ہے۔ اس بہاؤ کے لیے:
- کال کرنے، کسی بھی ڈیبگر کو ہٹانے کی کوشش کرتا ہے۔ ptrace
с PT_DENY_ATTACH
درخواست کے پیرامیٹر کے طور پر
- کسی فنکشن کو کال کرکے چیک کرتا ہے کہ آیا کچھ خصوصی بندرگاہیں کھلی ہیں۔ task_get_exception_ports
- جھنڈے کی موجودگی کی جانچ کرکے چیک کرتا ہے کہ آیا ڈیبگر منسلک ہے، جیسا کہ نیچے دی گئی تصویر میں دکھایا گیا ہے۔ P_TRACED
موجودہ عمل میں
شکل 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 سرور کو بھیجے گئے پہلے پیکٹ میں میزبان مشین کے بارے میں مزید معلومات شامل ہیں، بشمول نیچے دیے گئے جدول میں کمانڈز کے ذریعے جمع کردہ تمام ڈیٹا۔
اس ترتیب میں تبدیلی کے علاوہ، نمونہ نیٹ ورک فلٹرنگ کے لیے لائبریری کا استعمال نہیں کرتا ہے۔ gFjMXBgyXWULmVVVzyxy
, صفر کے ساتھ بولڈ. ہر فائل کو بطور ڈیکرپٹ اور محفوظ کیا جاتا ہے۔ /tmp/store
، اور اسے ایک لائبریری کے طور پر لوڈ کرنے کی کوشش فنکشن کا استعمال کرتے ہوئے کی گئی ہے۔ 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 صفر سے بھرا ہوا) فنکشن کے ذریعے
فنکشن پروٹو ٹائپ کو جاننا منسوخ، اسکرپٹ اس فنکشن کے تمام کراس حوالہ جات، تمام دلائل تلاش کرتا ہے، پھر ڈیٹا کو ڈیکرپٹ کرتا ہے اور کراس ریفرنس ایڈریس پر ایک تبصرہ کے اندر سادہ متن رکھتا ہے۔ اسکرپٹ کے صحیح طریقے سے کام کرنے کے لیے، اسے بیس 64 ڈی کوڈنگ فنکشن کے ذریعے استعمال ہونے والے حسب ضرورت حروف تہجی پر سیٹ ہونا چاہیے، اور ایک عالمی متغیر کی وضاحت ہونی چاہیے جس میں کلید کی لمبائی ہو (اس صورت میں ایک DWORD، شکل 4 دیکھیں)۔
تصویر 4. عالمی متغیر key_len کی تعریف
فنکشن ونڈو میں، آپ ڈکرپشن فنکشن پر دائیں کلک کر سکتے ہیں اور "دلائل کو نکالیں اور ڈکرپٹ کریں" پر کلک کر سکتے ہیں۔ اسکرپٹ کو ڈکرپٹ شدہ لائنوں کو تبصروں میں رکھنا چاہیے، جیسا کہ شکل 5 میں دکھایا گیا ہے۔
تصویر 5. ڈکرپٹ شدہ متن تبصروں میں رکھا گیا ہے۔
اس طرح ڈیکرپٹ شدہ تاروں کو IDA ونڈو میں آسانی سے ایک ساتھ رکھا جاتا ہے۔ xrefs اس فنکشن کے لیے جیسا کہ شکل 6 میں دکھایا گیا ہے۔
شکل 6. Xrefs to f_decrypt فنکشن
حتمی سکرپٹ پر پایا جا سکتا ہے
آؤٹ پٹ
جیسا کہ پہلے ہی ذکر کیا گیا ہے، OceanLotus اپنی ٹول کٹ کو مسلسل بہتر اور اپ ڈیٹ کر رہا ہے۔ اس بار سائبر گروپ نے میک صارفین کے ساتھ کام کرنے کے لیے میلویئر کو بہتر بنایا ہے۔ کوڈ میں زیادہ تبدیلی نہیں آئی ہے، لیکن چونکہ بہت سے میک صارفین سیکیورٹی پروڈکٹس کو نظر انداز کرتے ہیں، اس لیے میلویئر کو پتہ لگانے سے بچانا ثانوی اہمیت کا حامل ہے۔
تحقیق کے وقت ESET پروڈکٹس پہلے ہی اس فائل کا پتہ لگا رہے تھے۔ چونکہ C&C کمیونیکیشن کے لیے استعمال ہونے والی نیٹ ورک لائبریری اب ڈسک پر انکرپٹ ہو چکی ہے، اس لیے حملہ آوروں کے ذریعے استعمال کیا جانے والا نیٹ ورک پروٹوکول ابھی تک معلوم نہیں ہے۔
سمجھوتے کے اشارے۔
سمجھوتہ کے اشارے کے ساتھ ساتھ MITER ATT&CK اوصاف بھی دستیاب ہیں۔
ماخذ: www.habr.com