در مارس 2019، نمونه جدیدی از بدافزار macOS از گروه سایبری OceanLotus در VirusTotal، یک سرویس اسکن آنلاین محبوب، آپلود شد. فایل اجرایی Backdoor مانند نسخه قبلی بدافزار 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 مبتنی بر این رشته ها با فایل موجود در دیسک مطابقت نخواهد داشت.
همانطور که در مقاله بالا توضیح داده شد، ایجاد می کند شناسه مشتری. این شناسه هش 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}'
(دریافت آدرس MAC)
- تیم ناشناس ("x1ex72x0a
")، که در نمونه های قبلی استفاده شده است
قبل از هش کردن، یک "0" یا "1" به مقدار بازگشتی اضافه می شود تا امتیازات ریشه را نشان دهد. این شناسه مشتری ذخیره شده در /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
، اگر کد به صورت root یا در ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML در سایر موارد اجرا شود. فایل معمولاً با استفاده از تابع مخفی می شود touch –t
با مقدار تصادفی
رمزگشایی رشته ها
مانند گزینه های قبلی، رشته ها با استفاده از AES-256-CBC (کلید هگزادسیمال: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
پر شده با صفر، و IV پر شده با صفر) از طریق تابع
آشنایی با نمونه اولیه تابع رمزگشایی، اسکریپت همه ارجاعات متقابل به این تابع، همه آرگومان ها را پیدا می کند، سپس داده ها را رمزگشایی می کند و متن ساده را در داخل یک نظر در آدرس مرجع متقابل قرار می دهد. برای اینکه اسکریپت به درستی کار کند، باید روی الفبای سفارشی استفاده شده توسط تابع رمزگشایی base64 تنظیم شود و یک متغیر سراسری باید حاوی طول کلید تعریف شود (در این مورد یک DWORD، به شکل 4 مراجعه کنید).
شکل 4. تعریف متغیر جهانی key_len
در پنجره Function، میتوانید روی تابع رمزگشایی کلیک راست کرده و روی «Extract and Decrypt arguments» کلیک کنید. اسکریپت باید خطوط رمزگشایی شده را در نظرات قرار دهد، همانطور که در شکل 5 نشان داده شده است.
شکل 5. متن رمزگشایی شده در نظرات قرار داده شده است
به این ترتیب رشته های رمزگشایی شده به راحتی در پنجره IDA کنار هم قرار می گیرند xrefs برای این تابع همانطور که در شکل 6 نشان داده شده است.
شکل 6. تابع Xrefs برای f_decrypt
اسکریپت نهایی را می توان در این آدرس یافت
نتیجه
همانطور که قبلا ذکر شد، OceanLotus به طور مداوم در حال بهبود و به روز رسانی جعبه ابزار خود است. این بار گروه سایبری این بدافزار را برای کار با کاربران مک بهبود بخشیده است. کد تغییر چندانی نکرده است، اما از آنجایی که بسیاری از کاربران مک محصولات امنیتی را نادیده می گیرند، محافظت از بدافزار در برابر شناسایی در درجه دوم اهمیت قرار دارد.
محصولات ESET از قبل این فایل را در زمان تحقیق شناسایی می کردند. از آنجایی که کتابخانه شبکه مورد استفاده برای ارتباطات C&C اکنون روی دیسک رمزگذاری شده است، پروتکل شبکه دقیق مورد استفاده مهاجمان هنوز مشخص نیست.
شاخص های سازش
شاخص های سازش و همچنین ویژگی های MITER ATT&CK نیز در دسترس هستند
منبع: www.habr.com