OceanLotus: aġġornament tal-malware għal macOS

F'Marzu 2019, kampjun ġdid ta 'malware macOS mill-grupp ċibernetiku OceanLotus ttella' fuq VirusTotal, servizz ta' skanjar onlajn popolari. Il-fajl eżekutibbli tal-backdoor għandu l-istess kapaċitajiet bħall-verżjoni preċedenti tal-malware macOS li studjajna, iżda l-istruttura tiegħu nbidlet u saret aktar diffiċli biex tinkixef. Sfortunatament, ma stajniex insibu dropper assoċjat ma 'dan il-kampjun, għalhekk għadna ma nafux il-vettur tal-infezzjoni.

Dan l-aħħar ppubblikajna post dwar OceanLotus u kif l-operaturi qed jippruvaw jipprovdu persistenza, iħaffu l-eżekuzzjoni tal-kodiċi, u jimminimizzaw il-footprint fuq is-sistemi Windows. Huwa magħruf ukoll li dan il-grupp ċibernetiku għandu wkoll komponent għal macOS. Din il-kariga tagħti dettalji dwar il-bidliet fil-verżjoni l-aktar ġdida tal-malware għal macOS meta mqabbla mal-verżjoni preċedenti (deskritt minn Trend Micro), u jiddeskrivi wkoll kif tista 'awtomatizza d-deċifrar ta' kordi waqt l-analiżi billi tuża l-API Hex-Rays IDA.

OceanLotus: aġġornament tal-malware għal macOS

Analiżi

It-tliet partijiet li jmiss jiddeskrivu l-analiżi ta 'kampjun b'hash SHA-1 E615632C9998E4D3E5ACD8851864ED09B02C77D2. Il-fajl jissejjaħ flashlightd, Il-prodotti antivirus ESET jiskopruh bħala OSX/OceanLotus.D.

Protezzjoni kontra d-debugging u sandbox

Bħall-binarji kollha tal-macOS OceanLotus, il-kampjun huwa ppakkjat b'UPX, iżda l-biċċa l-kbira tal-għodod ta 'identifikazzjoni ta' min jippakkja ma jagħrfuhx bħala tali. Probabbilment minħabba li l-aktar fihom firma dipendenti fuq il-preżenza tas-sekwenza "UPX", u wkoll minħabba li l-firem Mach-O huma inqas komuni u mhumiex aġġornati spiss. Din il-karatteristika tagħmel l-iskoperta statika diffiċli. Interessanti, wara l-ispakkjar, il-punt tad-dħul huwa fil-bidu tat-taqsima __cfstring fis-segment .TEXT. Din it-taqsima għandha attributi tal-bandiera kif muri fl-immaġni hawn taħt.

OceanLotus: aġġornament tal-malware għal macOS
Figura 1. Attributi tas-sezzjoni MACH-O __cfstring

Kif muri fil-Figura 2, il-postijiet tal-kodiċi fit-taqsima __cfstring jippermettilek li tqarraq xi għodod taż-żarmar billi turi kodiċi bħala kordi.

OceanLotus: aġġornament tal-malware għal macOS
Figura 2. Il-kodiċi tal-backdoor misjub mill-IDA bħala data

Ladarba jiġi esegwit, il-binarju joħloq ħajt bħala anti-debugger li l-uniku għan tiegħu huwa li jiċċekkja kontinwament għall-preżenza ta 'debugger. Għal dan il-fluss:

— Jipprova jneħħi kwalunkwe debugger, isejjaħ ptrace с PT_DENY_ATTACH bħala parametru tat-talba
- Jiċċekkja jekk xi portijiet esklussivi humiex miftuħa billi ssejjaħ funzjoni task_get_exception_ports
- Jiċċekkja jekk id-debugger huwiex konness, kif muri fil-figura hawn taħt, billi tiċċekkja l-preżenza tal-bandiera P_TRACED fil-proċess attwali

OceanLotus: aġġornament tal-malware għal macOS
Figura 3. Iċċekkjar tal-konnessjoni tad-debugger bl-użu tal-funzjoni sysctl

Jekk l-għassies jiskopri l-preżenza ta 'debugger, il-funzjoni tissejjaħ exit. Barra minn hekk, il-kampjun imbagħad jiċċekkja l-ambjent billi jmexxi żewġ kmandi:

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

Il-kampjun imbagħad jiċċekkja l-valur tar-ritorn ma' lista hard-coded ta' kordi minn sistemi ta' virtwalizzazzjoni magħrufa: acle, VMware, virtualbox jew paralleli. Fl-aħħarnett, il-kmand li jmiss jiċċekkja jekk il-magna hijiex waħda minn dawn li ġejjin "MBP", "MBA", "MB", "MM", "IM", "MP" u "XS". Dawn huma kodiċijiet tal-mudell tas-sistema, pereżempju, "MBP" tfisser MacBook Pro, "MBA" tfisser MacBook Air, eċċ.

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

Żidiet ewlenin

Filwaqt li l-kmandi ta 'backdoor ma nbidlux mir-riċerka ta' Trend Micro, aħna ndunajna ftit modifiki oħra. Is-servers C&C użati f'dan il-kampjun huma pjuttost ġodda u nħolqu fit-22.10.2018/XNUMX/XNUMX.

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

L-URL tar-riżors inbidel għal /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
L-ewwel pakkett mibgħut lis-server C&C fih aktar informazzjoni dwar il-magna ospitanti, inkluża d-dejta kollha miġbura mill-kmandi fit-tabella hawn taħt.

OceanLotus: aġġornament tal-malware għal macOS

Minbarra din il-bidla fil-konfigurazzjoni, il-kampjun ma jużax librerija għall-filtrazzjoni tan-netwerk libcurl, iżda librerija esterna. Biex issibha, il-backdoor jipprova jiddeċifra kull fajl fid-direttorju attwali billi juża AES-256-CBC biċ-ċavetta gFjMXBgyXWULmVVVzyxy, ikkuttunat b'żerijiet. Kull fajl huwa decrypted u ssejvjat bħala /tmp/store, u jsir tentattiv biex titgħabba bħala librerija bl-użu tal-funzjoni dlopen. Meta tentattiv ta' deċifrar jirriżulta f'sejħa b'suċċess dlopen, il-backdoor estratti funzjonijiet esportati Boriry и ChadylonV, li apparentement huma responsabbli għall-komunikazzjoni tan-netwerk mas-server. M'għandniex il-dropper jew fajls oħra mill-post oriġinali tal-kampjun, għalhekk ma nistgħux inqisu din il-librerija. Barra minn hekk, peress li l-komponent huwa encrypted, regola YARA bbażata fuq dawn l-istrings mhux se taqbel mal-fajl misjub fuq id-diska.

Kif deskritt fl-artikolu ta 'hawn fuq, joħloq ID-klijent. Din l-ID hija l-hash MD5 tal-valur tar-ritorn ta' wieħed mill-kmandi li ġejjin:

- 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}' (ikseb l-indirizz MAC)
- tim mhux magħruf ("x1ex72x0a"), li tintuża f'kampjuni preċedenti

Qabel il-hashing, "0" jew "1" huwa miżjud mal-valur tar-ritorn biex jindika l-privileġġi tal-għeruq. Dan clientID maħżuna fi /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex, jekk il-kodiċi jitmexxa bħala root jew f'~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML fil-każijiet l-oħra kollha. Il-fajl huwa normalment moħbi bl-użu tal-funzjoni _chflags, it-timbru taż-żmien tiegħu jinbidel bl-użu tal-kmand touch –t b'valur każwali.

Kordi ta' dekodifikazzjoni

Bħal għażliet preċedenti, il-kordi huma encrypted bl-użu AES-256-CBC (ċavetta eżadeċimali: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 ikkuttunat b'żerijiet, u IV mimlija b'żerijiet) permezz tal-funzjoni CCCrypt. Iċ-ċavetta nbidlet minn verżjonijiet preċedenti, iżda peress li l-grupp għadu juża l-istess algoritmu ta 'kriptaġġ ta' string, id-deċifrar jista 'jiġi awtomatizzat. Minbarra din il-kariga, qed noħorġu skript IDA li juża l-API Hex-Rays biex jiddeċifra l-kordi preżenti fil-fajl binarju. Din l-iskrittura tista 'tgħin fl-analiżi futura ta' OceanLotus u analiżi ta 'kampjuni eżistenti li għadna ma stajniex niksbu. L-iskrittura hija bbażata fuq metodu universali biex tirċievi argumenti mgħoddija lil funzjoni. Barra minn hekk, ifittex assenjazzjonijiet tal-parametri. Il-metodu jista 'jerġa' jintuża biex tinkiseb lista ta 'argumenti tal-funzjoni u mbagħad jgħaddiha lis-callback.

Li tkun taf il-prototip tal-funzjoni decrypt, l-iskrittura ssib ir-referenzi inkroċjati kollha għal din il-funzjoni, l-argumenti kollha, imbagħad jiddeċifra d-data u jpoġġi test sempliċi ġewwa kumment fl-indirizz ta 'referenza inkroċjata. Biex l-iskrittura taħdem b'mod korrett, għandha tkun issettjata għall-alfabett personalizzat użat mill-funzjoni ta 'dekodifikazzjoni base64, u varjabbli globali għandha tkun definita li jkun fiha t-tul taċ-ċavetta (f'dan il-każ DWORD, ara Figura 4).

OceanLotus: aġġornament tal-malware għal macOS
Figura 4. Definizzjoni tal-varjabbli globali key_len

Fit-tieqa tal-Funzjoni, tista' tikklikkja bil-lemin fuq il-funzjoni tad-deċifrar u tikklikkja "Estrai u dekriptaġġ argumenti." L-iskrittura għandha tpoġġi l-linji decrypted fil-kummenti, kif muri fil-Figura 5.

OceanLotus: aġġornament tal-malware għal macOS
Figura 5. It-test decrypted jitqiegħed fil-kummenti

Dan il-mod il-kordi decrypted jitqiegħdu flimkien b'mod konvenjenti fit-tieqa IDA xrefs għal din il-funzjoni kif muri fil-Figura 6.

OceanLotus: aġġornament tal-malware għal macOS
Figura 6. Xrefs għall-funzjoni f_decrypt

L-iskrittura finali tinsab fuq Repożitorju tal-Github.

Output

Kif diġà ssemma, OceanLotus qed itejjeb u jaġġorna kontinwament is-sett tal-għodda tiegħu. Din id-darba, il-grupp ċibernetiku tejjeb il-malware biex jaħdem mal-utenti tal-Mac. Il-kodiċi ma nbidilx ħafna, iżda peress li ħafna utenti Mac jinjoraw il-prodotti tas-sigurtà, il-protezzjoni tal-malware mill-iskoperta hija ta 'importanza sekondarja.

Il-prodotti ESET kienu diġà qed jiskopru dan il-fajl fiż-żmien tar-riċerka. Minħabba li l-librerija tan-netwerk użata għall-komunikazzjoni C&C issa hija encrypted fuq disk, il-protokoll eżatt tan-netwerk użat mill-attakkanti għadu mhux magħruf.

Indikaturi ta' kompromess

Indikaturi ta' kompromess kif ukoll attributi MITRE ATT&CK huma wkoll disponibbli fuq GitHub.

Sors: www.habr.com

Żid kumment