У марту 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
.
Први пакет послат Ц&Ц серверу садржи више информација о хост машини, укључујући све податке прикупљене командама у табели испод.
Поред ове промене конфигурације, узорак не користи библиотеку за мрежно филтрирање 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. Ксрефс за функцију ф_децрипт
Коначни сценарио се може наћи на
Излаз
Као што је већ поменуто, ОцеанЛотус стално побољшава и ажурира свој комплет алата. Овај пут, сајбер група је побољшала малвер за рад са Мац корисницима. Код се није много променио, али пошто многи корисници Мац-а игноришу безбедносне производе, заштита малвера од откривања је од секундарног значаја.
ЕСЕТ производи су већ откривали ову датотеку у време истраживања. Пошто је мрежна библиотека која се користи за Ц&Ц комуникацију сада шифрована на диску, тачан мрежни протокол који користе нападачи још није познат.
показатељи компромиса
Индикатори компромиса као и МИТЕР АТТ&ЦК атрибути су такође доступни на
Извор: ввв.хабр.цом