OceanLotus: د macOS لپاره د مالویر تازه کول

د مارچ په 2019 کې، د سایبر ګروپ OceanLotus څخه د macOS مالویر نوې نمونه VirusTotal ته اپلوډ شوې، د آنلاین سکین کولو مشهور خدمت. د شاته دروازې اجرا کیدونکی فایل د macOS مالویر پخوانۍ نسخې په څیر ورته وړتیاوې لري چې موږ یې مطالعه کړې ، مګر د دې جوړښت بدل شوی او موندل یې خورا ستونزمن شوي. له بده مرغه، موږ نشو کولی د دې نمونې سره تړلی ډراپر پیدا کړو، نو موږ لا تر اوسه د انفیکشن ویکتور نه پوهیږو.

موږ پدې وروستیو کې خپاره کړل د OceanLotus په اړه پوسټ او څنګه چلونکي هڅه کوي دوام چمتو کړي، د کوډ اجرا کول ګړندي کړي، او په وینډوز سیسټمونو کې د پښو نښه کمه کړي. دا هم معلومه ده چې دا سایبر ګروپ د macOS لپاره یوه برخه هم لري. دا پوسټ د تیرې نسخې په پرتله د macOS لپاره د مالویر نوي نسخه کې بدلونونه توضیح کوي (د رجحان مایکرو لخوا تشریح شوی)، او دا هم تشریح کوي چې تاسو څنګه کولی شئ د IDA Hex-Rays API په کارولو سره د تحلیل پرمهال د تارونو ډیکریپشن اتومات کړئ.

OceanLotus: د macOS لپاره د مالویر تازه کول

شننه

راتلونکې درې برخې د SHA-1 هش سره د نمونې تحلیل بیانوي E615632C9998E4D3E5ACD8851864ED09B02C77D2. فایل نومیږي څراغ، د ESET انټي ویروس محصولات دا د OSX/OceanLotus.D په توګه کشف کوي.

د ډیبګینګ ضد او سینڈ باکس محافظت

د ټولو macOS OceanLotus بائنریونو په څیر، نمونه د UPX سره بسته شوې، مګر د بسته بندي پیژندنې ډیری وسیلې دا نه پیژني. دا شاید د دې لپاره وي چې دوی اکثرا د "UPX" تار شتون پورې تړلي لاسلیک لري، سربیره پردې، د مچ-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]);}

اصلي اضافه کول

پداسې حال کې چې د شاته دروازې کمانډونه د ټرینډ مایکرو څیړنې راهیسې ندي بدل شوي ، موږ یو څو نور بدلونونه ولیدل. په دې نمونه کې کارول شوي 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. دا 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}' (د MAC پته ترلاسه کړئ)
- نامعلوم ټیم ("x1ex72x0a")، کوم چې په تیرو نمونو کې کارول کیږي

د هش کولو دمخه، د بیرته ستنیدو ارزښت کې "0" یا "1" اضافه کیږي ترڅو د ریښې امتیازات په ګوته کړي. دا د مراجعینو ID کې زیرمه شوی /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 د f_decrypt فعالیت ته

وروستی سکریپټ په کې موندل کیدی شي د ګیتب ذخیره کول.

پایلې

لکه څنګه چې مخکې یادونه وشوه، OceanLotus په دوامداره توګه د خپل وسیله کټ ښه کول او تازه کوي. دا ځل، سایبر ګروپ د ماک کاروونکو سره کار کولو لپاره مالویر ښه کړی. کوډ ډیر نه دی بدل شوی، مګر له هغه وخته چې د ماک ډیری کاروونکي امنیتي محصولات له پامه غورځوي، د مالویر د کشف څخه ساتنه ثانوي اهمیت لري.

د ESET محصولات دمخه د څیړنې په وخت کې دا فایل کشف کړی و. ځکه چې د شبکې کتابتون چې د C&C مخابراتو لپاره کارول کیږي اوس په ډیسک کې کوډ شوی دی ، د برید کونکو لخوا کارول شوي دقیق شبکې پروتوکول لاهم ندي معلوم.

د جوړجاړي شاخصونه

د جوړجاړي شاخصونه او همدارنګه د MITER ATT&CK ځانګړتیاوې هم شتون لري GitHub.

سرچینه: www.habr.com

Add a comment