Di Adara 2019-an de, nimûneyek nû ya malwareya macOS-ê ji koma sîber OceanLotus li VirusTotal, karûbarek serhêl a populer, hate barkirin. Pelê darvekirî yê paşverû xwedan heman kapasîteyên guhertoya berê ya malwareya macOS-ê ya ku me lêkolîn kir heye, lê strukturê wê guherî û dîtina wê dijwartir bûye. Mixabin, me nekaribû ku dilopek bi vê nimûneyê re têkildar bibînin, ji ber vê yekê em hîn vektora enfeksiyonê nizanin.
Me vê dawiyê weşand
Analysis
Sê beşên paşîn analîzkirina nimûneyek bi hashek SHA-1 vedibêjin E615632C9998E4D3E5ACD8851864ED09B02C77D2
. Dosya tê gotin çira çira, Berhemên antîvîrûsên ESET wê wekî OSX/OceanLotus.D tespît dikin.
Parastina dijî-debugging û sandbox
Mîna hemî binareyên macOS OceanLotus, nimûne bi UPX-ê ve tête pak kirin, lê pir amûrên nasnameya pakker wê wekî wusa nas nakin. Ev dibe ku ji ber ku ew bi piranî îmzeyek bi hebûna rêzika "UPX" ve girêdayî ne, di heman demê de, îmzeyên Mach-O kêmtir gelemperî ne û bi gelemperî nayên nûve kirin. Ev taybetmendî tespîtkirina statîk zehmet dike. Balkêş e, piştî rakirinê, xala têketinê di destpêka beşê de ye __cfstring
di beşê de .TEXT
. Ev beş xwedî taybetmendiyên ala ye ku di wêneya jêrîn de têne xuyang kirin.
Wêne 1. Taybetmendiyên beşa MACH-O __cfstring
Wekî ku di Figure 2 de tê xuyang kirin, cîhên kodê di beşê de ne __cfstring
destûrê dide te ku hûn bi nîşandana kodê wekî têlan hin amûrên veqetandinê bixapînin.
Wêne 2. Koda paşverû ya ku ji hêla IDA ve wekî dane tê dîtin
Piştî ku were darve kirin, binary têlekek wekî antî-debugger diafirîne ku yekane armanca wê ew e ku bi domdarî hebûna debugger kontrol bike. Ji bo vê herikînê:
- Hewl dide ku tu debugerê veke, bang dike ptrace
с PT_DENY_ATTACH
wekî pîvanek daxwazê
- Bi bangkirina fonksiyonek kontrol dike ka hin portên taybetî vekirî ne task_get_exception_ports
- Mîna ku di jimareya jêrîn de tê xuyang kirin, bi kontrolkirina hebûna ala ve dişoxilîne gelo debugger ve girêdayî ye P_TRACED
di pêvajoya heyî de
Wêne 3. Kontrolkirina girêdana debuggerê bi karanîna fonksiyona sysctl
Ger nobedar hebûna debuggerê bibîne, fonksiyon tê gotin exit
. Wekî din, nimûne dûv re bi du fermanan ve jîngehê kontrol dike:
ioreg -l | grep -e "Manufacturer" и sysctl hw.model
Dûv re nimûne nirxa vegerê li hember navnîşek hişk-kodkirî ya rêzikên ji pergalên virtualîzasyona naskirî kontrol dike: acle, vmware, virtualbox an paralelî. Di dawiyê de, emrê paşîn kontrol dike ka makîne yek ji "MBP", "MBA", "MB", "MM", "IM", "MP" û "XS" e. Ev kodên modela pergalê ne, mînakî, "MBP" tê wateya MacBook Pro, "MBA" tê wateya MacBook Air, hwd.
system_profiler SPHardwareDataType 2>/dev/null | awk '/Boot ROM Version/ {split($0, line, ":");printf("%s", line[2]);}
Pêvekên sereke
Dema ku emrên paşverû ji lêkolîna Trend Micro neguherî ne, me çend guheztinên din dît. Pêşkêşkerên C&C yên ku di vê nimûneyê de têne bikar anîn pir nû ne û di 22.10.2018/XNUMX/XNUMX de hatine afirandin.
- daff.faybilodeau[.]com
- sarc.onteagleroad[.]com
- au.charlineopkesston[.]com
URL-ya çavkaniyê guhertiye /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35
.
Yekem pakêta ku ji servera C&C re hatî şandin di derbarê makîneya mêvandar de bêtir agahdarî vedihewîne, tevî hemî daneyên ku ji hêla emrên di tabloya jêrîn de hatine berhev kirin.
Ji bilî vê guherîna veavakirinê, nimûne pirtûkxaneyek ji bo fîlterkirina torê bikar nayîne gFjMXBgyXWULmVVVzyxy
, bi sifiran hatiye pêçan. Her pel tê deşîfrekirin û wekî tomarkirin /tmp/store
, û hewlek ji bo barkirina wê wekî pirtûkxane bi karanîna fonksiyonê tê çêkirin dlopen
, paşîn fonksiyonên îxrackirî derdixe Boriry
и ChadylonV
, ku eşkere berpirsiyariya ragihandina torê ya bi serverê re ne. Dropper an pelên din ên ji cîhê orîjînal ên nimûneyê di destê me de nînin, ji ber vê yekê em nikarin vê pirtûkxaneyê parsek bikin. Digel vê yekê, ji ber ku pêkhatek şîfrekirî ye, qaîdeyek YARA ku li ser van rêzan hatî damezrandin dê bi pelê ku li ser dîskê tê dîtin re hevûdu neke.
Wekî ku di gotara jorîn de hate diyarkirin, ew diafirîne muwekîlê ID. Ev ID hash MD5 ya nirxa vegerê ya yek ji fermanên jêrîn e:
- 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}'
(navnîşana MAC-ê bistînin)
- tîma nenas ("x1ex72x0a
"), ku di nimûneyên berê de tê bikaranîn
Berî hashkirinê, "0" an "1" li nirxa vegerê tê zêdekirin da ku mafên root destnîşan bike. Ev muwekîlê ID de hilanîn /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex
, heke kod di hemî rewşên din de wekî root an di ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML de were xebitandin. Pelê bi gelemperî bi karanîna fonksiyonê veşartî ye touch –t
bi nirxek random.
Têlên deşîfrekirin
Mîna vebijarkên berê, rêzikên bi karanîna AES-256-CBC têne şîfre kirin (bişkojka hexadecimal: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92
bi sifiran tê pêçan, û IV bi sifiran tê dagirtin) bi fonksiyonê
Naskirina prototîpa fonksiyonê şîfre kirin, skrîpt hemî referansên xaçê ji bo vê fonksiyonê, hemî argumanan dibîne, dûv re daneyan deşîfre dike û nivîsa sade di hundurê şîroveyek de li navnîşana xaça referansê bi cîh dike. Ji bo ku skrîpt rast bixebite, divê ew li ser alfabeya xwerû ya ku ji hêla fonksiyona deşîfrekirina base64 ve tê bikar anîn were saz kirin, û guhêrbarek gerdûnî ya ku dirêjahiya mifteyê vedihewîne were destnîşan kirin (di vê rewşê de DWORD, li Figure 4 binêre).
Wêne 4. Pênaseya guherbara gerdûnî ya key_len
Di pencereya Fonksiyonê de, hûn dikarin fonksiyona deşîfrekirinê rast-klîk bikin û "Argumanan derxe û veşêre" bikirtînin. Pêdivî ye ku skrîpt xêzên deşîfrekirî di şîroveyan de bi cîh bike, wekî ku di Xiflteya 5 de tê xuyang kirin.
Wêne 5. Nivîsa deşîfrekirî di nav şîroveyan de cih digire
Bi vî rengî rêzikên deşîfrekirî bi hêsanî di pencereya IDA de têne danîn xrefs ji bo vê fonksiyonê wekî ku di jimar 6 de tê xuyang kirin.
Wêne 6. Xrefs ji bo f_decrypt function
Skrîpta dawî dikare li vir were dîtin
encamê
Wekî ku berê jî behs kir, OceanLotus bi domdarî amûra xwe baştir dike û nûve dike. Vê carê, koma sîber malware çêtir kir ku bi bikarhênerên Mac re bixebite. Kod pir neguheriye, lê ji ber ku gelek bikarhênerên Mac hilberên ewlehiyê paşguh dikin, parastina malware ji tespîtê girîngiyek duyemîn e.
Berhemên ESET di dema lêkolînê de berê vê pelê tespît dikirin. Ji ber ku pirtûkxaneya torê ya ku ji bo ragihandina C&C tê bikar anîn niha li ser dîskê hatî şîfrekirin, protokola torê ya rastîn a ku ji hêla êrîşkaran ve hatî bikar anîn hîn nayê zanîn.
nîşaneyên lihevhatinê
Nîşaneyên lihevhatinê û her weha taybetmendiyên MITER ATT&CK jî li ser hene
Source: www.habr.com