OceanLotus: apdet malware pikeun macOS

Dina Maret 2019, conto anyar malware macOS ti grup cyber OceanLotus diunggah ka VirusTotal, layanan scanning online anu populer. File laksana backdoor gaduh kamampuan anu sami sareng versi sateuacana tina malware macOS anu kami pelajari, tapi strukturna parantos robih sareng janten langkung hese dideteksi. Hanjakalna, kami henteu tiasa mendakan dropper anu aya hubunganana sareng conto ieu, janten kami henteu acan terang vektor inféksi.

Simkuring nembe diterbitkeun pos ngeunaan OceanLotus jeung kumaha operator nyoba nyadiakeun kegigihan, nyepetkeun palaksanaan kode, sarta ngaleutikan tapak suku dina sistem Windows. Ogé dipikanyaho yén grup cyber ieu ogé gaduh komponén pikeun macOS. Tulisan ieu ngajéntrékeun parobahan dina versi malware pang anyarna pikeun macOS dibandingkeun sareng versi sateuacana (digambarkeun ku Trend Micro), sarta ogé ngajelaskeun kumaha anjeun tiasa ngajadikeun otomatis dekripsi string salila analisis ngagunakeun IDA Hex-Rays API.

OceanLotus: apdet malware pikeun macOS

analisis

Tilu bagian salajengna ngajelaskeun analisa sampel sareng hash SHA-1 E615632C9998E4D3E5ACD8851864ED09B02C77D2. file disebutna senter, produk antipirus ESET ngadeteksi eta salaku OSX/OceanLotus.D.

Anti debugging sareng panyalindungan sandbox

Sapertos sadaya binari macOS OceanLotus, sampelna dibungkus ku UPX, tapi kalolobaan alat idéntifikasi pakét henteu mikawanoh éta sapertos kitu. Ieu meureun sabab lolobana ngandung signature gumantung kana ayana "UPX" string, sajaba, tanda tangan Mach-O kirang umum tur teu diropéa sakumaha mindeng. Fitur ieu ngajadikeun deteksi statik hésé. Narikna, sanggeus ngabongkar, titik asupna aya di awal bagian __cfstring dina ruas .TEXT. Bagian ieu ngagaduhan atribut bandéra sapertos anu dipidangkeun dina gambar di handap ieu.

OceanLotus: apdet malware pikeun macOS
Gambar 1. atribut bagian MACH-O __cfstring

Ditémbongkeun saperti dina Gambar 2, lokasi kode dina bagian __cfstring ngidinan Anjeun pikeun trik sababaraha parabot disassembly ku mintonkeun kode salaku string.

OceanLotus: apdet malware pikeun macOS
angka 2. Kodeu backdoor kauninga ku IDA salaku data

Sakali dieksekusi, binér nyiptakeun utas salaku anti-debugger anu tujuanna nyaéta pikeun terus-terusan mariksa ayana debugger. Pikeun aliran ieu:

- Nyobian unhook debugger wae, nelepon ptrace с PT_DENY_ATTACH salaku parameter pamundut
- Cék lamun sababaraha palabuhan ekslusif dibuka ku nelepon hiji fungsi task_get_exception_ports
- Cék lamun debugger disambungkeun, ditémbongkeun saperti dina gambar di handap, ku pariksa ayana bandéra P_TRACED dina prosés ayeuna

OceanLotus: apdet malware pikeun macOS
Gambar 3. Mariksa sambungan debugger ngagunakeun fungsi sysctl

Mun watchdog nu ngadeteksi ayana debugger a, fungsi disebut exit. Salaku tambahan, sampel teras pariksa lingkungan ku ngajalankeun dua paréntah:

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

Sampel teras pariksa nilai uih deui kana daptar senar anu disandi tina sistem virtualisasi anu dipikanyaho: acle, vmware, kotak virtual atawa sajajar. Tungtungna, paréntah salajengna cek lamun mesin mangrupa salah sahiji "MBP", "MBA", "MB", "MM", "IM", "MP" jeung "XS". Ieu mangrupikeun kode modél sistem, contona, "MBP" hartosna MacBook Pro, "MBA" hartosna MacBook Air, jsb.

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

tambihan utama

Nalika paréntah backdoor henteu robih ti saprak panalungtikan Trend Micro, kami perhatikeun sababaraha modifikasi anu sanés. Server C&C anu dianggo dina conto ieu cukup énggal sareng didamel dina 22.10.2018/XNUMX/XNUMX.

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

URL sumberdaya geus robah jadi /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
The pakét munggaran dikirim ka C & C server ngandung émbaran leuwih lengkep ngeunaan mesin host, kaasup sakabeh data dikumpulkeun ku paréntah dina tabel di handap ieu.

OceanLotus: apdet malware pikeun macOS

Salian parobahan konfigurasi ieu, sampel henteu ngagunakeun perpustakaan pikeun nyaring jaringan libcurl, tapi perpustakaan éksternal. Pikeun mendakanana, backdoor nyobian ngadekrip unggal file dina diréktori ayeuna nganggo AES-256-CBC kalayan konci gFjMXBgyXWULmVVVzyxy, padded kalawan nol. Unggal file didekripsi sareng disimpen salaku /tmp/store, sarta usaha pikeun ngamuat eta salaku perpustakaan dijieun ngagunakeun fungsi ngaleos. Lamun usaha dekripsi hasil dina panggero suksés dlopen, backdoor extracts fungsi diékspor Boriry и ChadylonV, nu tétéla jawab komunikasi jaringan jeung server. Urang teu boga dropper atawa payil séjén ti lokasi aslina sampel urang, jadi urang teu bisa parse perpustakaan ieu. Sumawona, saprak komponénna énkripsi, aturan YARA dumasar kana senar ieu moal cocog sareng file anu aya dina disk.

Sakumaha anu dijelaskeun dina tulisan di luhur, éta nyiptakeun clientID. ID ieu mangrupikeun hash MD5 tina nilai mulang tina salah sahiji paréntah di handap ieu:

- 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}' (meunang alamat MAC)
- tim teu dikenal ("x1ex72x0a"), nu dipaké dina sampel saméméhna

Sateuacan hashing, a "0" atawa "1" ditambahkeun kana nilai balik pikeun nunjukkeun hak husus root. Ieu ID klien disimpen di /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex, upami kodeu dijalankeun salaku root atanapi di ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML dina sagala kasus séjén. File biasana disumputkeun nganggo fungsi _chflags, timestamp na dirobah maké paréntah touch –t kalawan nilai acak.

Decoding string

Sapertos pilihan sateuacana, senar énkripsi nganggo AES-256-CBC (konci héksadesimal: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 padded kalawan nol, sarta IV ngeusi nol) ngaliwatan fungsi CCCrypt. Koncina parantos robih tina vérsi saacanna, tapi saprak grup éta masih ngagunakeun algoritma enkripsi senar anu sami, dekripsi tiasa otomatis. Salian pos ieu, urang ngaleupaskeun hiji Aksara IDA anu ngagunakeun Hex-Rays API pikeun ngadekrip string hadir dina file binér. Skrip ieu tiasa ngabantosan analisis kahareup OceanLotus sareng analisa sampel anu tos aya anu urang henteu acan tiasa kéngingkeun. Skrip dumasar kana metode universal pikeun nampi argumen anu dikirimkeun ka hiji fungsi. Salaku tambahan, éta milarian tugas parameter. Métodena tiasa dianggo deui pikeun kéngingkeun daptar argumen fungsi teras paskeun kana callback.

Nyaho prototipe fungsi ngadekrip, naskah manggihan sakabeh cross-rujukan kana fungsi ieu, sadaya argumen, lajeng decrypts data sarta nempatkeun téks polos di jero komentar di alamat cross-rujukan. Pikeun skrip tiasa dianggo leres, kedah disetél kana alfabét khusus anu dianggo ku fungsi decoding base64, sareng variabel global kedah didefinisikeun ngandung panjang konci (dina hal ieu DWORD, tingali Gambar 4).

OceanLotus: apdet malware pikeun macOS
Gambar 4. Harti variabel global key_len

Dina jandela Fungsi, anjeun tiasa klik-katuhu kana fungsi dekripsi teras klik "Ekstrak sareng ngadekrip argumen." Skrip kedah nempatkeun garis anu didekripsi dina koméntar, sapertos anu dipidangkeun dina Gambar 5.

OceanLotus: apdet malware pikeun macOS
Gambar 5. Téks decrypted disimpen dina komentar

Ku cara ieu, senar anu didekripsi sacara gampang disimpen dina jandela IDA xrefs pikeun fungsi ieu ditémbongkeun saperti dina Gambar 6.

OceanLotus: apdet malware pikeun macOS
Angka 6. Xrefs kana fungsi f_decrypt

Aksara ahir bisa kapanggih di Repository Github.

kacindekan

Sakumaha anu parantos disebatkeun, OceanLotus terus-terusan ningkatkeun sareng ngamutahirkeun toolkit na. Waktos ieu, grup cyber parantos ningkatkeun malware pikeun dianggo sareng pangguna Mac. Kodena henteu seueur robih, tapi kumargi seueur pangguna Mac anu teu malire produk kaamanan, ngajagi malware tina deteksi pentingna sekundér.

Produk ESET parantos ngadeteksi file ieu dina waktos panalungtikan. Kusabab perpustakaan jaringan anu dianggo pikeun komunikasi C&C ayeuna énkripsi dina disk, protokol jaringan pasti anu dianggo ku panyerang henteu acan dipikanyaho.

Indikator tina kompromi

Indikator kompromi ogé atribut MITRE ATT&CK ogé sayogi dina GitHub.

sumber: www.habr.com

Tambahkeun komentar