OceanLotus: навсозии нармафзори зараровар барои macOS

Дар моҳи марти соли 2019, як намунаи нави нармафзори зараровари macOS аз гурӯҳи киберии OceanLotus ба VirusTotal, як хидмати маъмули сканкунии онлайн бор карда шуд. Файли иҷрошавандаи пушти дарвоза дорои қобилиятҳоест, ки версияи қаблии нармафзори зараровари macOS, ки мо омӯхта будем, аммо сохтори он тағир ёфтааст ва ошкор кардани он душвортар шудааст. Мутаассифона, мо натавонистем як қатрачаи марбут ба ин намунаро пайдо кунем, аз ин рӯ мо то ҳол вектори сироятро намедонем.

Мо ба наздикӣ нашр кардем пост дар бораи OceanLotus ва чӣ гуна операторҳо кӯшиш мекунанд, ки суботро таъмин кунанд, иҷрои кодро суръат бахшанд ва изофаи изофӣ дар системаҳои Windows-ро кам кунанд. Инчунин маълум аст, ки ин гурӯҳи киберӣ ҷузъе барои macOS низ дорад. Ин паём тафсилоти тағйирот дар версияи навтарини нармафзори зараровар барои macOS дар муқоиса бо версияи қаблӣ (аз ҷониби Trend Micro тавсиф карда шудааст) ва инчунин тавсиф мекунад, ки чӣ гуна шумо метавонед рамзкушоиши сатрҳоро ҳангоми таҳлил бо истифода аз API Hex-Rays IDA автоматӣ кунед.

OceanLotus: навсозии нармафзори зараровар барои macOS

Таҳлил

Се қисми оянда таҳлили намунаро бо hash 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 ҳамчун маълумот муайян карда шудааст

Пас аз иҷро шудан, бинарӣ риштаро ҳамчун антидебаггер эҷод мекунад, ки ҳадафи ягонаи он пайваста тафтиш кардани мавҷудияти ислоҳкунанда мебошад. Барои ин ҷараён:

— Кӯшиш мекунад, ки ягон debugger кушояд, занг ptrace с PT_DENY_ATTACH ҳамчун параметри дархост
- Тавассути занги функсия кушода будани баъзе портҳои истисноиро тафтиш мекунад task_get_exception_ports
- Тавассути мавҷудияти парчам, тавре ки дар расми зер нишон дода шудааст, пайваст будани debugger-ро тафтиш мекунад P_TRACED дар раванди ҷорӣ

OceanLotus: навсозии нармафзори зараровар барои macOS
Тасвири 3. Тафтиши пайвасти debugger бо истифода аз функсияи sysctl

Агар саги назорат мавҷудияти ислоҳкунандаро муайян кунад, функсия даъват карда мешавад exit. Илова бар ин, намуна пас аз иҷрои ду фармон муҳити атрофро тафтиш мекунад:

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

Намуна пас аз он арзиши баргардониданро бо рӯйхати сахт-рамзи сатрҳо аз системаҳои маълуми виртуализатсия тафтиш мекунад: акл, 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, пушти дари функсияҳои содиротӣ истихроҷ мекунад 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 padded бо сифрҳо, ва IV пур бо сифр) тавассути функсия CCCrypt. Калид аз версияҳои қаблӣ тағйир ёфтааст, аммо азбаски гурӯҳ то ҳол ҳамон алгоритми рамзгузории сатрро истифода мебарад, рамзкушоӣ метавонад автоматӣ карда шавад. Илова ба ин паём, мо скрипти IDA-ро мебарорем, ки барои кушодани сатрҳои дар файли бинарӣ мавҷудбуда Hex-Rays API-ро истифода мебарад. Ин скрипт метавонад дар таҳлили ояндаи OceanLotus ва таҳлили намунаҳои мавҷуда, ки мо то ҳол ба даст наовардаем, кӯмак кунад. Скрипт ба усули универсалӣ барои қабули аргументҳои ба функсия интиқолшуда асос ёфтааст. Илова бар ин, он супоришҳои параметрҳоро меҷӯяд. Усулро барои гирифтани рӯйхати аргументҳои функсия дубора истифода бурдан мумкин аст ва сипас онро ба занги бозгашт интиқол додан мумкин аст.

Донистани прототипи функсия рамзкушоӣ, скрипт ҳама истинодҳои байнисоҳавӣ ба ин функсия, ҳама далелҳоро пайдо мекунад, сипас маълумотро рамзкушоӣ мекунад ва матни оддиро дар дохили шарҳ дар суроғаи истинодҳои байнисоҳавӣ ҷойгир мекунад. Барои дуруст кор кардани скрипт, он бояд ба алифбои фармоишӣ, ки аз ҷониби функсияи рамзкушоии base64 истифода мешавад, танзим карда шавад ва тағирёбандаи глобалӣ бояд дорои дарозии калид бошад (дар ин ҳолат DWORD, ба расми 4 нигаред).

OceanLotus: навсозии нармафзори зараровар барои macOS
Расми 4. Муайянкунии тағирёбандаи глобалии key_len

Дар равзанаи Функсия шумо метавонед функсияи рамзкушоиро бо тугмаи рости муш клик кунед ва "Аргументҳоро истихроҷ ва рамзкушоӣ" -ро клик кунед. Скрипт бояд сатрҳои рамзкушошударо дар шарҳҳо ҷойгир кунад, тавре ки дар расми 5 нишон дода шудааст.

OceanLotus: навсозии нармафзори зараровар барои macOS
Расми 5. Матни рамзкушошуда дар шарҳҳо ҷойгир карда шудааст

Ҳамин тариқ, сатрҳои рамзкушошуда дар равзанаи IDA ба таври мувофиқ ҷойгир карда мешаванд xrefs барои ин функсия тавре ки дар расми 6 нишон дода шудааст.

OceanLotus: навсозии нармафзори зараровар барои macOS
Расми 6. Xrefs ба функсияи f_decrypt

Скрипти ниҳоиро дар ин ҷо пайдо кардан мумкин аст Хотироти Github.

хулоса

Тавре ки аллакай зикр гардид, OceanLotus пайваста асбобҳои худро такмил ва навсозӣ мекунад. Ин дафъа, гурӯҳи киберӣ нармафзори зарароварро барои кор бо корбарони Mac такмил дод. Рамз чандон тағир наёфтааст, аммо азбаски бисёре аз корбарони Mac маҳсулоти амниятро нодида мегиранд, муҳофизати нармафзори зараровар аз ошкор аҳамияти дуюмдараҷа дорад.

Маҳсулоти ESET дар вақти тадқиқот аллакай ин файлро ошкор карда буданд. Азбаски китобхонаи шабакавӣ, ки барои алоқаи C&C истифода мешавад, ҳоло дар диск рамзгузорӣ шудааст, протоколи шабакавии аз ҷониби ҳамлагарон истифодашаванда ҳанӯз маълум нест.

Нишондиҳандаҳои созиш

Нишондиҳандаҳои созиш ва инчунин атрибутҳои MITER ATT&CK низ дастрасанд GitHub.

Манбаъ: will.com

Илова Эзоҳ