2019-жылдын март айында OceanLotus кибер тобунан MacOS кесепеттүү программасынын жаңы үлгүсү VirusTotal, популярдуу онлайн сканерлөө кызматына жүктөлгөн. Backdoor аткарылуучу файлы биз изилдеген macOS кесепеттүү программасынын мурунку версиясындай эле мүмкүнчүлүктөргө ээ, бирок анын структурасы өзгөрүп, аны аныктоо кыйыныраак болуп калды. Тилекке каршы, биз бул үлгү менен байланышкан тамчылаткычты таба алган жокпуз, андыктан инфекциянын тарагычын азырынча биле элекпиз.
Биз жакында жарыялаганбыз
талдоо
Кийинки үч бөлүк SHA-1 хэш менен үлгүнүн анализин сүрөттөйт E615632C9998E4D3E5ACD8851864ED09B02C77D2
. Файл деп аталат фонарь, ESET антивирус өнүмдөрү аны OSX/OceanLotus.D катары аныктайт.
Мүчүлүштүктөрдү оңдоого каршы жана кумкоргоо
Бардык macOS OceanLotus экилик файлдары сыяктуу эле, үлгү UPX менен пакеттелген, бирок көпчүлүк пакеттөөчү идентификация куралдары аны тааныбайт. Бул, балким, алар негизинен "UPX" саптын болушуна жараша колду камтыйт, андан тышкары, Mach-O кол тамгалары азыраак кездешет жана тез-тез жаңыртылбайт. Бул өзгөчөлүк статикалык аныктоону кыйындатат. Кызыгы, таңгактан чыккандан кийин кирүү чекити бөлүмдүн башында турат __cfstring
сегментинде .TEXT
. Бул бөлүмдө төмөнкү сүрөттө көрсөтүлгөндөй желек атрибуттары бар.
Сүрөт 1. MACH-O __cfstring бөлүмүнүн атрибуттары
2-сүрөттө көрсөтүлгөндөй, бөлүмдө коддун жерлери __cfstring
кодду сап катары көрсөтүү менен кээ бир демонтаждоо куралдарын алдаганга мүмкүнчүлүк берет.
2-сүрөт. IDA тарабынан маалымат катары аныкталган Backdoor коду
Аткарылгандан кийин, бинардык система мүчүлүштүктөрдү оңдоочуга каршы жипти түзөт, анын бирден бир максаты мүчүлүштүктөрдү оңдоочунун бар-жоктугун үзгүлтүксүз текшерүү. Бул агым үчүн:
— Каалаган мүчүлүштүктөрдү чыгаруучу, чалууга аракет кылат ptrace
с PT_DENY_ATTACH
суроо параметри катары
- Функцияны чакыруу менен айрым эксклюзивдүү порттор ачык экенин текшерет task_get_exception_ports
- Төмөнкү сүрөттө көрсөтүлгөндөй, мүчүлүштүктөрдү оңдоочу туташкандыгын текшерет, желектин бар экендигин текшерет P_TRACED
азыркы процессте
Сүрөт 3. sysctl функциясын колдонуп мүчүлүштүктөрдү оңдоочу байланышты текшерүү
Эгерде күзөтчү мүчүлүштүктөрдү оңдоочу бар экенин аныктаса, функция чакырылат exit
. Андан тышкары, үлгү андан кийин эки буйрукту иштетүү менен чөйрөнү текшерет:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
Андан кийин үлгү белгилүү виртуалдаштыруу системаларынын саптарынын катуу коддолгон тизмесине каршы кайтаруу маанисин текшерет: acle, VMware, virtualbox же окшоштуктар. Акыр-аягы, кийинки буйрук машина төмөнкү "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 серверине жөнөтүлгөн биринчи пакет төмөнкү таблицадагы буйруктар менен чогултулган бардык маалыматтарды камтыган хост машинасы жөнүндө көбүрөөк маалыматты камтыйт.
Бул конфигурацияны өзгөртүүгө кошумча, үлгү тармак чыпкалоо үчүн китепкананы колдонбойт gFjMXBgyXWULmVVVzyxy
, нөлдөр менен толтурулган. Ар бир файлдын шифри чечилет жана катары сакталат /tmp/store
, жана аны китепкана катары жүктөө аракети функциянын жардамы менен жасалат dlopen
, backdoor экспорттолгон функцияларды чыгарат 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}'
(MAC дарегин алуу)
- белгисиз команда ("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
нөлдөр менен толтурулган, ал эми IV нөлдөр менен толтурулган) функция аркылуу
Функциянын прототибин билүү чечмелөө, скрипт бул функцияга бардык кайчылаш шилтемелерди, бардык аргументтерди табат, андан кийин маалыматтарды чечмелейт жана кайчылаш шилтеме дарегине комментарийдин ичине жөнөкөй текстти жайгаштырат. Скрипт туура иштеши үчүн, ал base64 декоддоо функциясы колдонгон ыңгайлаштырылган алфавитке коюлушу керек жана ачкычтын узундугун камтыган глобалдык өзгөрмө аныкталышы керек (бул учурда DWORD, 4-сүрөттү караңыз).
Сүрөт 4. key_len глобалдык өзгөрмөнүн аныктамасы
Функция терезесинде сиз чечмелөө функциясын оң баскыч менен чыкылдатып, "Аргументтерди чыгаруу жана дешифрлөө" баскычын чыкылдатсаңыз болот. Скрипт 5-сүрөттө көрсөтүлгөндөй, чечмеленген саптарды комментарийлерге жайгаштырышы керек.
Сүрөт 5. Шифрленген текст комментарийлерде жайгаштырылат
Ошентип, шифрленген саптар IDA терезесинде ыңгайлуу жайгаштырылат xrefs Бул функция үчүн 6-сүрөттө көрсөтүлгөндөй.
6-сүрөт. f_decrypt функциясына Xrefs
акыркы скрипт тапса болот
жыйынтыктоо
Жогоруда айтылгандай, OceanLotus өзүнүн инструменттерин дайыма өркүндөтүп, жаңыртып турат. Бул жолу кибер топ Mac колдонуучулары менен иштөө үчүн кесепеттүү программаны жакшыртты. Код анчалык деле өзгөргөн жок, бирок Mac колдонуучуларынын көбү коопсуздук өнүмдөрүн этибарга албагандыктан, кесепеттүү программаларды аныктоодон коргоо экинчи даражадагы мааниге ээ.
ESET өнүмдөрү бул файлды изилдөө учурунда мурунтан эле аныкташкан. C&C байланышы үчүн колдонулган тармак китепканасы азыр дискте шифрленгендиктен, чабуулчулар колдонгон так тармак протоколу азырынча белгисиз.
Компромисстин көрсөткүчтөрү
Компромисстин көрсөткүчтөрү, ошондой эле MITER ATT&CK атрибуттары да жеткиликтүү
Source: www.habr.com