OceanLotus: macOS لاءِ مالويئر اپڊيٽ

مارچ 2019 ۾، سائبر گروپ OceanLotus مان macOS مالويئر جو هڪ نئون نمونو اپلوڊ ڪيو ويو وائرس ٽوٽل، هڪ مشهور آن لائن اسڪيننگ سروس. پوئين دروازي تي عمل ڪرڻ واري فائل ۾ ساڳيون صلاحيتون آهن جيئن macOS مالويئر جي پوئين ورزن جو اسان مطالعو ڪيو، پر ان جي جوڙجڪ تبديل ٿي وئي آهي ۽ ان کي ڳولڻ وڌيڪ ڏکيو ٿي ويو آهي. بدقسمتي سان، اسان هن نموني سان لاڳاپيل هڪ ڊراپر ڳولڻ ۾ ناڪام هئاسين، تنهنڪري اسان اڃا تائين انفڪشن ویکٹر کي نٿا ڄاڻون.

اسان تازو شايع ڪيو OceanLotus بابت پوسٽ ۽ ڪيئن آپريٽرز ڪوشش ڪري رهيا آهن ثابت قدمي مهيا ڪرڻ، ڪوڊ جي عمل کي تيز ڪرڻ، ۽ ونڊوز سسٽم تي پيرن جي نشانن کي گھٽائڻ. اهو پڻ معلوم ٿئي ٿو ته هي سائبر گروپ پڻ macOS لاء هڪ جزو آهي. هي پوسٽ اڳئين ورزن جي مقابلي ۾ 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

نمونو وري واپسي جي قيمت کي چيڪ ڪري ٿو سخت ڪوڊ ٿيل فهرست جي سڃاتل ورچوئلائيزيشن سسٽم مان تارن جي: ايڪل, vmware, مجازي بوڪس يا متوازن. آخرڪار، ايندڙ حڪم ​​چيڪ ڪري ٿو ته مشين هيٺ ڏنل "MBP"، "MBA"، "MB"، "MM"، "IM"، "MP" ۽ "XS" مان هڪ آهي. اهي سسٽم ماڊل ڪوڊ آهن، مثال طور، "ايم بي پي" جو مطلب آهي MacBook پرو، "ايم بي اي" جو مطلب آهي MacBook ايئر، وغيره.

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 لاءِ مالويئر اپڊيٽ

ھن ٺاھ جوڙ جي تبديلي کان علاوه، نموني نيٽ ورڪ فلٽرنگ لاءِ لائبريري استعمال نٿو ڪري لِپِرل، پر هڪ خارجي لائبريري. ان کي ڳولڻ لاء، پوئين دروازي موجوده ڊاريڪٽري ۾ هر فائل کي ڊيڪرپٽ ڪرڻ جي ڪوشش ڪري ٿو AES-256-CBC کي استعمال ڪندي. gFjMXBgyXWULmVVVzyxy، صفر سان ڀريل. هر فائل کي ڊريڪٽ ڪيو ويو آهي ۽ محفوظ ڪيو ويو آهي جيئن /tmp/store، ۽ ان کي لائبريري طور لوڊ ڪرڻ جي ڪوشش فنڪشن استعمال ڪندي ڪئي وئي آهي dlopen. جڏهن هڪ ڊسڪشن جي ڪوشش جي نتيجي ۾ ڪامياب ڪال dlopen، پٺئين دروازا ايڪسپورٽ افعال ڪڍي ٿو Boriry и ChadylonV، جيڪي ظاهري طور تي سرور سان نيٽ ورڪ رابطي لاءِ ذميوار آهن. اسان وٽ نمونن جي اصل جڳھ کان ڊراپر يا ٻيون فائلون نه آھن، تنھنڪري اسين ھن لائبريري کي پارس نٿا ڪري سگھون. ان کان علاوه، جيئن ته جزو انڪريپٽ ٿيل آهي، انهن تارن تي ٻڌل YARA قاعدو ڊسڪ تي مليل فائل سان نه ملندو.

جيئن مٿي ڏنل مضمون ۾ بيان ڪيو ويو آهي، اهو ٺاهي ٿو clientID. هي 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" واپسي جي قيمت ۾ شامل ڪيو ويو آهي روٽ استحقاق ظاهر ڪرڻ لاء. هي clientID ۾ ذخيرو ٿيل /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 zeros سان padded، ۽ IV zeros سان ڀريو ويو) فنڪشن ذريعي CCCrypt. ڪيئي اڳئين ورزن کان تبديل ٿي چڪي آهي، پر جيئن ته گروپ اڃا تائين ساڳيو اسٽرنگ انڪرپشن الگورٿم استعمال ڪري ٿو، ڊيڪرپشن خودڪار ٿي سگهي ٿو. هن پوسٽ جي اضافي ۾، اسان هڪ IDA اسڪرپٽ جاري ڪري رهيا آهيون جيڪا استعمال ڪري ٿي Hex-Rays API بائنري فائل ۾ موجود اسٽرنگ کي ڊڪرپٽ ڪرڻ لاءِ. هي اسڪرپٽ OceanLotus جي مستقبل جي تجزيي ۽ موجوده نمونن جي تجزيي ۾ مدد ڪري سگھي ٿي جيڪي اسان اڃا تائين حاصل نه ڪري سگهيا آهيون. اسڪرپٽ هڪ آفاقي طريقي تي مبني آهي حاصل ڪرڻ لاءِ دليلن کي حاصل ڪرڻ لاءِ جيڪو هڪ فنڪشن ڏانهن منظور ڪيو ويو آهي. اضافي طور تي، اهو ڏسڻ ۾ اچي ٿو پيٽرول اسائنمنٽس. طريقو ٻيهر استعمال ڪري سگھجي ٿو فنڪشنل دليلن جي لسٽ حاصل ڪرڻ لاءِ ۽ پوءِ ان کي ڪال بڪ ڏانھن منتقل ڪريو.

فنڪشن پروٽوٽائپ کي ڄاڻڻ decrypt، اسڪرپٽ هن فنڪشن لاءِ سڀئي ڪراس ريفرنس ڳولي ٿو، سڀ دليل، پوءِ ڊيٽا کي ڊيڪرپ ڪري ٿو ۽ ڪراس ريفرنس ايڊريس تي تبصري جي اندر سادي متن رکي ٿو. اسڪرپٽ جي صحيح ڪم ڪرڻ لاءِ، ان کي لازمي طور تي ترتيب ڏنل الفابيٽ تي مقرر ڪيو وڃي جيڪو بنيادي 64 ڊيڪوڊنگ فنڪشن پاران استعمال ڪيو ويو آهي، ۽ هڪ عالمي متغير کي لازمي طور تي بيان ڪيو وڃي ٿو جنهن ۾ ڪنجي جي ڊگھائي هجي (هن صورت ۾ هڪ DWORD، ڏسو شڪل 4).

OceanLotus: macOS لاءِ مالويئر اپڊيٽ
شڪل 4. عالمي متغير جي تعريف key_len

فنڪشن ونڊو ۾، توهان ڊيڪرپشن فنڪشن تي صحيح ڪلڪ ڪري سگهو ٿا ۽ "دليل ڪڍيو ۽ ختم ڪريو" تي ڪلڪ ڪريو. اسڪرپٽ کي تبصرن ۾ ڊسڪ ٿيل لائينون رکڻ گهرجن، جيئن تصوير 5 ۾ ڏيکاريل آهي.

OceanLotus: macOS لاءِ مالويئر اپڊيٽ
شڪل 5. ڊڪرپٽ ٿيل متن تبصرن ۾ رکيل آهي

اهڙيءَ طرح ڊيڪرپٽ ٿيل تارون آسانيءَ سان IDA ونڊو ۾ گڏ ڪيون وينديون آهن xrefs ھن فنڪشن لاءِ جيئن تصوير 6 ۾ ڏيکاريل آھي.

OceanLotus: macOS لاءِ مالويئر اپڊيٽ
شڪل 6. xrefs to f_decrypt فنڪشن

فائنل اسڪرپٽ تي ڳولهي سگهجي ٿو Github مخزن.

ٿڪل

جيئن اڳ ۾ ئي ذڪر ڪيو ويو آهي، OceanLotus مسلسل پنهنجي ٽول ڪٽ کي بهتر ۽ تازه ڪاري ڪري رهيو آهي. هن ڀيري، سائبر گروپ ميڪ استعمال ڪندڙن سان ڪم ڪرڻ لاءِ مالويئر کي بهتر ڪيو آهي. ڪوڊ گهڻو تبديل نه ٿيو آهي، پر جيئن ته ڪيترائي ميڪ استعمال ڪندڙ حفاظتي شين کي نظر انداز ڪن ٿا، مالويئر کي ڳولڻ کان بچائڻ ثانوي اهميت وارو آهي.

ESET پروڊڪٽس اڳ ۾ ئي تحقيق جي وقت هن فائل کي ڳولي رهيا هئا. ڇاڪاڻ ته نيٽ ورڪ لائبريري C&C ڪميونيڪيشن لاءِ استعمال ڪئي وئي آهي هاڻي ڊسڪ تي انڪرپٽ ٿيل آهي، حملي ڪندڙن پاران استعمال ڪيل صحيح نيٽ ورڪ پروٽوڪول اڃا تائين معلوم نه ٿي سگهيو آهي.

سمجھوتي جا اشارا

سمجھوتي جا اشارا ۽ گڏوگڏ MITER ATT ۽ CK خاصيتون پڻ دستياب آھن GitHub.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو