OceanLotus: aktyalizasyon malveyan pou macOS

Nan mwa mas 2019, yo te telechaje yon nouvo echantiyon malveyan macOS ki soti nan gwoup cyber OceanLotus nan VirusTotal, yon sèvis optik sou entènèt popilè. Dosye ègzekutabl deyè a gen menm kapasite ak vèsyon anvan malveyan macOS nou etidye a, men estrikti li yo chanje epi li vin pi difisil pou detekte. Malerezman, nou pa t kapab jwenn yon gout ki asosye ak echantiyon sa a, kidonk nou poko konnen vektè enfeksyon an.

Nou fèk pibliye pòs sou OceanLotus ak ki jan operatè yo ap eseye bay pèsistans, akselere ekzekisyon kòd, ak minimize anprint sou sistèm Windows. Li konnen tou ke gwoup cyber sa a tou gen yon eleman pou macOS. Pòs sa a detay sou chanjman ki fèt nan dènye vèsyon malveyan pou macOS an konparezon ak vèsyon anvan an (dekri pa Trend Micro), epi tou dekri kijan ou ka otomatize dechifre fisèl pandan analiz lè l sèvi avèk IDA Hex-Rays API.

OceanLotus: aktyalizasyon malveyan pou macOS

Analiz

Twa pati kap vini yo dekri analiz yon echantiyon ak yon hash SHA-1 E615632C9998E4D3E5ACD8851864ED09B02C77D2. Yo rele dosye a flachd, ESET antivirus pwodwi detekte li kòm OSX/OceanLotus.D.

Anti-debogaj ak pwoteksyon sandbox

Tankou tout binè macOS OceanLotus, echantiyon an pake ak UPX, men pifò zouti idantifikasyon pake pa rekonèt li kòm sa yo. Sa a se pwobableman paske yo sitou gen yon siyati ki depann sou prezans fisèl "UPX" la, anplis, siyati Mach-O yo mwens komen epi yo pa mete ajou souvan. Karakteristik sa a fè deteksyon estatik difisil. Enteresan, apre debake, pwen an antre se nan kòmansman an nan seksyon an __cfstring nan segman an .TEXT. Seksyon sa a gen atribi drapo jan yo montre nan imaj ki anba a.

OceanLotus: aktyalizasyon malveyan pou macOS
Figi 1. Atribi seksyon MACH-O __cfstring

Jan yo montre nan Figi 2, kote kòd yo nan seksyon an __cfstring pèmèt ou twonpe kèk zouti demonte pa montre kòd kòm fisèl.

OceanLotus: aktyalizasyon malveyan pou macOS
Figi 2. Kòd backdoor detekte pa IDA kòm done

Yon fwa egzekite, binè a kreye yon fil kòm yon anti-debugger ki gen sèl objektif se toujou tcheke pou prezans nan yon debugger. Pou koule sa a:

— Eseye dekroche nenpòt debogaj, rele ptrace с PT_DENY_ATTACH kòm yon paramèt demann
- Tcheke si kèk pò eksklizif yo louvri lè w rele yon fonksyon task_get_exception_ports
- Tcheke si debugger la konekte, jan yo montre nan figi ki anba a, lè w tcheke prezans drapo a P_TRACED nan pwosesis aktyèl la

OceanLotus: aktyalizasyon malveyan pou macOS
Figi 3. Tcheke koneksyon debugger la lè l sèvi avèk fonksyon sysctl la

Si gadyen an detekte prezans yon debogaj, yo rele fonksyon an exit. Anplis de sa, echantiyon an tcheke anviwònman an lè li kouri de kòmandman:

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

Echantiyon an Lè sa a, tcheke valè a retounen kont yon lis difisil-kode nan fisèl ki soti nan sistèm Virtualization li te ye: akle, vmware, virtualbox oswa paralèl. Finalman, pwochen lòd la tcheke si machin nan se youn nan sa yo "MBP", "MBA", "MB", "MM", "IM", "MP" ak "XS". Sa yo se kòd modèl sistèm, pou egzanp, "MBP" vle di MacBook Pro, "MBA" vle di MacBook Air, elatriye.

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

Ajoute debaz yo

Pandan ke kòmandman backdoor yo pa chanje depi rechèch Trend Micro a, nou remake kèk lòt modifikasyon. Sèvè C&C yo itilize nan echantiyon sa a se jistis nouvo e yo te kreye sou 22.10.2018/XNUMX/XNUMX.

- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com

URL resous la chanje an /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
Premye pake ki voye bay sèvè C&C a gen plis enfòmasyon sou machin lame a, ki gen ladan tout done kòmandman yo kolekte nan tablo ki anba a.

OceanLotus: aktyalizasyon malveyan pou macOS

Anplis chanjman konfigirasyon sa a, echantiyon an pa sèvi ak yon bibliyotèk pou filtraj rezo a libcurl, men yon bibliyotèk ekstèn. Pou jwenn li, degize a ap eseye dechifre chak fichye nan anyè aktyèl la lè l sèvi avèk AES-256-CBC ak kle a. gFjMXBgyXWULmVVVzyxy, Matlasye ak zewo. Chak fichye dechifre epi sove kòm /tmp/store, epi yo fè yon tantativ pou chaje li kòm yon bibliyotèk lè l sèvi avèk fonksyon an dlopen. Lè yon tantativ dechifre rezilta nan yon apèl siksè dlopen, Backdoor yo ekstrè ekspòte fonksyon Boriry и ChadylonV, ki aparamman responsab pou kominikasyon rezo ak sèvè a. Nou pa gen gout la oswa lòt dosye ki soti nan kote orijinal echantiyon an, kidonk nou pa ka analize bibliyotèk sa a. Anplis, depi eleman an chiffres, yon règ YARA ki baze sou fisèl sa yo pa pral matche ak dosye a jwenn sou disk la.

Jan sa dekri nan atik ki anwo a, li kreye ID kliyan. ID sa a se hash MD5 valè retounen youn nan kòmandman sa yo:

- 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}' (Jwenn adrès MAC)
- ekip enkoni ("x1ex72x0a"), ki itilize nan echantiyon anvan yo

Anvan hachage, yo ajoute yon "0" oswa "1" nan valè retounen pou endike privilèj rasin yo. Sa a ID kliyan ki estoke nan /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex, si kòd la kouri kòm rasin oswa nan ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML nan tout lòt ka. Fichye a anjeneral kache lè l sèvi avèk fonksyon an _chflags, timestamp li yo chanje lè l sèvi avèk lòd la touch –t ak yon valè o aza.

Dekode fisèl

Menm jan ak opsyon anvan yo, fisèl yo chiffres lè l sèvi avèk AES-256-CBC (kle egzadesimal: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 Matlasye ak zewo, epi IV plen ak zewo) atravè fonksyon an CCCrypt. Kle a chanje soti nan vèsyon anvan yo, men depi gwoup la toujou sèvi ak menm algorithm chifreman fisèl, dechifreman ka otomatize. Anplis de pòs sa a, n ap pibliye yon script IDA ki sèvi ak API Hex-Rays pou dekripte kòd ki prezan nan dosye binè a. Script sa a ka ede ak analiz OceanLotus nan lavni ak analiz echantiyon ki deja egziste ke nou poko te kapab jwenn. Script la baze sou yon metòd inivèsèl pou resevwa agiman pase nan yon fonksyon. Anplis de sa, li gade plasman paramèt yo. Metòd la ka reyitilize pou jwenn yon lis agiman fonksyon epi pase l bay callback la.

Konnen pwototip fonksyon an dechifre, script la jwenn tout kwa-referans nan fonksyon sa a, tout agiman, Lè sa a, dekripte done yo epi mete tèks klè andedan yon kòmantè nan adrès la kwa-referans. Pou script la fonksyone kòrèkteman, li dwe mete nan alfabè koutim ki itilize pa fonksyon dekodaj base64 la, epi yo dwe defini yon varyab global ki gen longè kle a (nan ka sa a yon DWORD, gade Figi 4).

OceanLotus: aktyalizasyon malveyan pou macOS
Figi 4. Definisyon varyab global key_len

Nan fenèt Fonksyon an, ou ka klike sou fonksyon dechifre a epi klike sou "Ekstrè ak dechifre agiman yo." Script la ta dwe mete liy dechifre yo nan kòmantè, jan yo montre nan Figi 5.

OceanLotus: aktyalizasyon malveyan pou macOS
Figi 5. Tèks dechifre yo mete nan kòmantè yo

Nan fason sa a kòd dechifre yo byen mete ansanm nan fenèt IDA a xrefs pou fonksyon sa a jan yo montre nan Figi 6.

OceanLotus: aktyalizasyon malveyan pou macOS
Figi 6. Xrefs pou fonksyon f_decrypt

Ou ka jwenn script final la nan Depo Github.

Sòti

Kòm deja mansyone, OceanLotus toujou ap amelyore ak mete ajou bwat zouti li yo. Fwa sa a, gwoup cyber la te amelyore malveyan an pou travay ak itilizatè Mac. Kòd la pa chanje anpil, men depi anpil itilizatè Mac inyore pwodwi sekirite, pwoteje malveyan kont deteksyon se yon enpòtans segondè.

Pwodwi ESET yo te deja detekte fichye sa a nan moman rechèch la. Paske bibliyotèk rezo yo itilize pou kominikasyon C&C kounye a kode sou disk, pwotokòl rezo egzak atakè yo poko konnen.

Endikatè konpwomi

Endikatè konpwomi osi byen ke MITRE ATT&CK atribi yo disponib tou sou GitHub.

Sous: www.habr.com

Add nouvo kòmantè