ОцеанЛотус: ажурирање малвера за мацОС

У марту 2019., нови узорак мацОС малвера из сајбер групе ОцеанЛотус је постављен на ВирусТотал, популарну услугу скенирања на мрежи. Бацкдоор извршна датотека има исте могућности као претходна верзија мацОС малвера који смо проучавали, али се њена структура променила и постало је теже открити. Нажалост, нисмо успели да пронађемо капаљку повезану са овим узорком, тако да још увек не знамо вектор инфекције.

Недавно смо објавили пост о ОцеанЛотусу и како оператери покушавају да обезбеде постојаност, убрзају извршавање кода и минимизирају отисак на Виндовс системима. Такође је познато да ова сајбер група има и компоненту за мацОС. Овај пост описује промене у најновијој верзији малвера за мацОС у поређењу са претходном верзијом (описао Тренд Мицро), а такође описује како можете да аутоматизујете дешифровање стрингова током анализе користећи ИДА Хек-Раис АПИ.

ОцеанЛотус: ажурирање малвера за мацОС

Анализа

Следећа три дела описују анализу узорка са СХА-1 хешом E615632C9998E4D3E5ACD8851864ED09B02C77D2. Фајл се зове батеријска лампа, ЕСЕТ антивирусни производи га откривају као ОСКС/ОцеанЛотус.Д.

Анти-дебуггинг и сандбок заштита

Као и сви бинарни фајлови мацОС ОцеанЛотус, узорак је упакован са УПКС-ом, али га већина алата за идентификацију пакера не препознаје као таквог. Ово је вероватно зато што углавном садрже потпис који зависи од присуства стринга „УПКС“, поред тога, Мацх-О потписи су ређи и не ажурирају се тако често. Ова карактеристика отежава детекцију статике. Занимљиво, након распакивања, улазна тачка је на почетку секције __cfstring у сегменту .TEXT. Овај одељак има атрибуте заставице као што је приказано на слици испод.

ОцеанЛотус: ажурирање малвера за мацОС
Слика 1. Атрибути секције МАЦХ-О __цфстринг

Као што је приказано на слици 2, локације кода у одељку __cfstring омогућава вам да преварите неке алате за растављање тако што ћете приказати код као низове.

ОцеанЛотус: ажурирање малвера за мацОС
Слика 2. Бацкдоор код који је ИДА детектовала као податке

Када се једном изврши, бинарни програм креира нит као анти-дебугер чија је једина сврха да континуирано проверава присуство отклањања грешака. За овај ток:

— Покушава да откачи било који дебагер, позива ptrace с PT_DENY_ATTACH као параметар захтева
- Проверава да ли су неки ексклузивни портови отворени позивањем функције task_get_exception_ports
- Проверава да ли је дебагер повезан, као што је приказано на слици испод, провером присуства заставице P_TRACED у садашњем процесу

ОцеанЛотус: ажурирање малвера за мацОС
Слика 3. Провера везе дебагера помоћу сисцтл функције

Ако чувар детектује присуство дебагера, функција се позива exit. Поред тога, узорак затим проверава окружење покретањем две команде:

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

Узорак затим проверава повратну вредност у односу на тврдо кодирану листу стрингова из познатих система виртуелизације: ацле, ВМваре, ВиртуалБок или паралеле. На крају, следећа команда проверава да ли је машина једна од следећих „МБП“, „МБА“, „МБ“, „ММ“, „ИМ“, „МП“ и „КСС“. Ово су кодови модела система, на пример, „МБП“ значи МацБоок Про, „МБА“ значи МацБоок Аир итд.

system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}

Главни додаци

Иако се бацкдоор команде нису промениле од Тренд Мицро-овог истраживања, приметили смо још неколико модификација. Ц&Ц сервери који се користе у овом узорку су прилично нови и креирани су 22.10.2018.

- дафф.фаибилодеау[.]цом
- сарц.онтеаглероад[.]цом
- ау.цхарлинеопкесстон[.]цом

УРЛ ресурса је промењен у /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
Први пакет послат Ц&Ц серверу садржи више информација о хост машини, укључујући све податке прикупљене командама у табели испод.

ОцеанЛотус: ажурирање малвера за мацОС

Поред ове промене конфигурације, узорак не користи библиотеку за мрежно филтрирање либцурл, али екстерна библиотека. Да би га пронашао, бацкдоор покушава да дешифрује сваку датотеку у тренутном директоријуму користећи АЕС-256-ЦБЦ са кључем gFjMXBgyXWULmVVVzyxy, допуњено нулама. Свака датотека се дешифрује и чува као /tmp/store, и покушај да се учита као библиотека је направљен помоћу функције длопен. Када покушај дешифровања резултира успешним позивом dlopen, бацкдоор издваја извезене функције Boriry и ChadylonV, који су очигледно одговорни за мрежну комуникацију са сервером. Немамо дроппер или друге датотеке са оригиналне локације узорка, тако да не можемо да рашчланимо ову библиотеку. Штавише, пошто је компонента шифрована, ИАРА правило засновано на овим стринговима неће одговарати датотеци која се налази на диску.

Као што је описано у горњем чланку, ствара ИД клијента. Овај ИД је МД5 хеш повратне вредности једне од следећих команди:

- 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, ако се код покреће као роот или у ~/Либрари/СмартЦардсСервицес/Тецхнологи/ПлугИнс/дриверс/сниппетс.ецгМЛ у свим осталим случајевима. Датотека је обично скривена помоћу функције _цхфлагс, његова временска ознака се мења помоћу команде touch –t са случајном вредношћу.

Декодирање низова

Као и код претходних опција, стрингови су шифровани помоћу АЕС-256-ЦБЦ (хексадецимални кључ: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 допуњено нулама, а ИВ испуњено нулама) кроз функцију ЦЦЦрипт. Кључ се променио у односу на претходне верзије, али пошто група и даље користи исти алгоритам за шифровање низова, дешифровање се може аутоматизовати. Поред овог поста, објављујемо ИДА скрипту која користи Хек-Раис АПИ за дешифровање низова присутних у бинарној датотеци. Ова скрипта може помоћи у будућој анализи ОцеанЛотуса и анализи постојећих узорака које још нисмо могли да добијемо. Скрипта је заснована на универзалном методу за примање аргумената прослеђених функцији. Поред тога, тражи додељивање параметара. Метода се може поново користити за добијање листе аргумената функције и затим је проследити повратном позиву.

Познавање прототипа функције дешифровање, скрипта проналази све унакрсне референце на ову функцију, све аргументе, затим дешифрује податке и поставља обичан текст унутар коментара на адреси унакрсног референцирања. Да би скрипта исправно радила, мора бити подешена на прилагођени алфабет који користи басе64 функција декодирања, а глобална променљива мора бити дефинисана која садржи дужину кључа (у овом случају ДВОРД, погледајте слику 4).

ОцеанЛотус: ажурирање малвера за мацОС
Слика 4. Дефиниција глобалне променљиве кеи_лен

У прозору Функција можете да кликнете десним тастером миша на функцију дешифровања и кликнете на „Издвоји и дешифруј аргументе“. Скрипта треба да стави дешифроване линије у коментаре, као што је приказано на слици 5.

ОцеанЛотус: ажурирање малвера за мацОС
Слика 5. Дешифровани текст се ставља у коментаре

На овај начин се дешифровани низови згодно постављају заједно у ИДА прозор крефс за ову функцију као што је приказано на слици 6.

ОцеанЛотус: ажурирање малвера за мацОС
Слика 6. Ксрефс за функцију ф_децрипт

Коначни сценарио се може наћи на Гитхуб репозиториј.

Излаз

Као што је већ поменуто, ОцеанЛотус стално побољшава и ажурира свој комплет алата. Овај пут, сајбер група је побољшала малвер за рад са Мац корисницима. Код се није много променио, али пошто многи корисници Мац-а игноришу безбедносне производе, заштита малвера од откривања је од секундарног значаја.

ЕСЕТ производи су већ откривали ову датотеку у време истраживања. Пошто је мрежна библиотека која се користи за Ц&Ц комуникацију сада шифрована на диску, тачан мрежни протокол који користе нападачи још није познат.

показатељи компромиса

Индикатори компромиса као и МИТЕР АТТ&ЦК атрибути су такође доступни на ГитХуб.

Извор: ввв.хабр.цом

Додај коментар