OceanLotus: sasisho la programu hasidi kwa macOS

Mnamo Machi 2019, sampuli mpya ya programu hasidi ya macOS kutoka kwa kikundi cha cyber OceanLotus ilipakiwa kwa VirusTotal, huduma maarufu ya skanning mkondoni. Faili inayoweza kutekelezwa ya backdoor ina uwezo sawa na toleo la awali la programu hasidi ya macOS tuliyosoma, lakini muundo wake umebadilika na imekuwa ngumu zaidi kugundua. Kwa bahati mbaya, hatukuweza kupata kitone kinachohusishwa na sampuli hii, kwa hivyo bado hatujui kieneza cha maambukizi.

Tulichapisha hivi majuzi chapisho kuhusu OceanLotus na jinsi waendeshaji wanajaribu kutoa uvumilivu, kuharakisha utekelezaji wa nambari, na kupunguza alama kwenye mifumo ya Windows. Inajulikana pia kuwa kikundi hiki cha cyber pia kina sehemu ya macOS. Chapisho hili linaelezea mabadiliko katika toleo jipya zaidi la programu hasidi kwa macOS ikilinganishwa na toleo la awali (ilivyoelezwa na Trend Micro), na pia inaelezea jinsi unavyoweza kubinafsisha usimbuaji wa kamba wakati wa uchanganuzi kwa kutumia API ya IDA Hex-Rays.

OceanLotus: sasisho la programu hasidi kwa macOS

Uchambuzi

Sehemu tatu zinazofuata zinaelezea uchanganuzi wa sampuli yenye heshi ya SHA-1 E615632C9998E4D3E5ACD8851864ED09B02C77D2. Faili inaitwa tochi, bidhaa za kingavirusi za ESET huitambua kama OSX/OceanLotus.D.

Kupambana na utatuzi na ulinzi wa sanduku la mchanga

Kama jozi zote za macOS OceanLotus, sampuli imefungwa na UPX, lakini zana nyingi za kitambulisho cha kifurushi hazitambui hivyo. Labda hii ni kwa sababu mara nyingi huwa na saini inayotegemea uwepo wa mfuatano wa "UPX", kwa kuongezea, sahihi za Mach-O si za kawaida na hazisasishwi mara kwa mara. Kipengele hiki hufanya ugunduzi tuli kuwa mgumu. Inashangaza, baada ya kufuta, hatua ya kuingia iko mwanzoni mwa sehemu __cfstring katika sehemu .TEXT. Sehemu hii ina sifa za bendera kama inavyoonyeshwa kwenye picha hapa chini.

OceanLotus: sasisho la programu hasidi kwa macOS
Kielelezo 1. MACH-O __cfstring sifa za sehemu

Kama inavyoonyeshwa kwenye Mchoro 2, maeneo ya msimbo katika sehemu __cfstring hukuruhusu kudanganya zana zingine za kutenganisha kwa kuonyesha nambari kama kamba.

OceanLotus: sasisho la programu hasidi kwa macOS
Kielelezo 2. Msimbo wa mlango wa nyuma umegunduliwa na IDA kama data

Mara tu inapotekelezwa, mfumo wa jozi huunda uzi kama kizuia debugger ambacho lengo lake kuu ni kuangalia kila mara uwepo wa kitatuzi. Kwa mtiririko huu:

- Inajaribu kuondoa kitatuzi chochote, kupiga simu ptrace с PT_DENY_ATTACH kama kigezo cha ombi
- Huangalia ikiwa baadhi ya bandari za kipekee zimefunguliwa kwa kupiga simu ya kukokotoa task_get_exception_ports
- Huangalia ikiwa kitatuzi kimeunganishwa, kama inavyoonyeshwa kwenye takwimu hapa chini, kwa kuangalia uwepo wa bendera P_TRACED katika mchakato wa sasa

OceanLotus: sasisho la programu hasidi kwa macOS
Kielelezo 3. Kuangalia muunganisho wa debugger kwa kutumia kazi ya sysctl

Ikiwa mlinzi hugundua uwepo wa debugger, kazi inaitwa exit. Kwa kuongeza, sampuli kisha huangalia mazingira kwa kuendesha amri mbili:

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

Sampuli kisha hukagua thamani ya kurudi dhidi ya orodha iliyosimbwa ngumu ya mifuatano kutoka kwa mifumo inayojulikana ya uboreshaji: acle, VMware, virtualbox au kufanana. Hatimaye, amri inayofuata huangalia kama mashine ni mojawapo ya "MBP" zifuatazo, "MBA", "MB", "MM", "IM", "MP" na "XS". Hizi ni misimbo ya kielelezo cha mfumo, kwa mfano, "MBP" inamaanisha MacBook Pro, "MBA" inamaanisha MacBook Air, nk.

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

Nyongeza kuu

Ingawa amri za backdoor hazijabadilika tangu utafiti wa Trend Micro, tuligundua marekebisho mengine machache. Seva za C&C zilizotumika katika sampuli hii ni mpya kabisa na ziliundwa tarehe 22.10.2018/XNUMX/XNUMX.

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

URL ya rasilimali imebadilika kuwa /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
Pakiti ya kwanza iliyotumwa kwa seva ya C&C ina maelezo zaidi kuhusu mashine mwenyeji, ikijumuisha data yote iliyokusanywa na amri kwenye jedwali lililo hapa chini.

OceanLotus: sasisho la programu hasidi kwa macOS

Mbali na mabadiliko haya ya usanidi, sampuli haitumii maktaba kwa uchujaji wa mtandao libcurl, lakini maktaba ya nje. Ili kuipata, mlango wa nyuma unajaribu kusimbua kila faili kwenye saraka ya sasa kwa kutumia AES-256-CBC na ufunguo. gFjMXBgyXWULmVVVzyxy, iliyojaa sufuri. Kila faili imesimbwa na kuhifadhiwa kama /tmp/store, na jaribio la kuipakia kama maktaba hufanywa kwa kutumia kitendakazi kushuka. Wakati jaribio la kusimbua litasababisha simu iliyofanikiwa dlopen, dondoo za utendakazi zilizosafirishwa nje ya mlango wa nyuma Boriry и ChadylonV, ambayo inaonekana inawajibika kwa mawasiliano ya mtandao na seva. Hatuna dropper au faili nyingine kutoka eneo asili la sampuli, kwa hivyo hatuwezi kuchanganua maktaba hii. Zaidi ya hayo, kwa kuwa kijenzi kimesimbwa kwa njia fiche, sheria ya YARA kulingana na mifuatano hii haitalingana na faili inayopatikana kwenye diski.

Kama ilivyoelezwa katika makala hapo juu, inajenga mtejaID. Kitambulisho hiki ni heshi MD5 ya thamani ya kurudi ya mojawapo ya amri zifuatazo:

- 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}' (pata anwani ya MAC)
- timu isiyojulikana ("x1ex72x0a"), ambayo hutumiwa katika sampuli zilizopita

Kabla ya hashing, "0" au "1" huongezwa kwa thamani ya kurudi ili kuonyesha haki za mizizi. Hii mteja ID kuhifadhiwa ndani /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex, ikiwa msimbo unaendeshwa kama mzizi au katika ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML katika visa vingine vyote. Faili kawaida hufichwa kwa kutumia chaguo la kukokotoa _bendera, muhuri wake wa muda unabadilishwa kwa kutumia amri touch –t yenye thamani ya nasibu.

Kusimbua masharti

Kama ilivyo kwa chaguzi zilizopita, kamba zimesimbwa kwa kutumia AES-256-CBC (ufunguo wa hexadecimal: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 iliyojazwa sufuri, na IV kujazwa na sufuri) kupitia chaguo la kukokotoa CCCrypt. Ufunguo umebadilika kutoka kwa matoleo ya awali, lakini kwa kuwa kikundi bado kinatumia algoriti sawa ya usimbaji fiche, usimbuaji unaweza kufanywa kiotomatiki. Kando na chapisho hili, tunatoa hati ya IDA inayotumia API ya Hex-Rays kusimbua mifuatano iliyopo kwenye faili ya jozi. Hati hii inaweza kusaidia katika uchanganuzi wa siku zijazo wa OceanLotus na uchanganuzi wa sampuli zilizopo ambazo bado hatujaweza kupata. Hati inatokana na mbinu ya jumla ya kupokea hoja zilizopitishwa kwa chaguo za kukokotoa. Kwa kuongeza, inatafuta kazi za parameta. Njia inaweza kutumika tena kupata orodha ya hoja za kukokotoa na kisha kuipitisha kwa urejeshaji simu.

Kujua mfano wa kazi fungua, hati hupata marejeleo yote mtambuka ya chaguo hili la kukokotoa, hoja zote, kisha kusimbua data na kuweka maandishi wazi ndani ya maoni kwenye anwani ya marejeleo mtambuka. Ili hati ifanye kazi ipasavyo, lazima iwekwe kwa alfabeti maalum inayotumiwa na chaguo za kukokotoa za base64, na kigezo cha kimataifa lazima kifafanuliwe kilicho na urefu wa ufunguo (katika kesi hii DWORD, ona Mchoro 4).

OceanLotus: sasisho la programu hasidi kwa macOS
Kielelezo 4. Ufafanuzi wa kigezo cha kimataifa cha key_len

Katika dirisha la Kazi, unaweza kubofya kulia kazi ya usimbuaji na ubofye "Nyoa na usimbue hoja." Hati inapaswa kuweka mistari iliyosimbwa kwenye maoni, kama inavyoonyeshwa kwenye Mchoro 5.

OceanLotus: sasisho la programu hasidi kwa macOS
Kielelezo 5. Maandishi yaliyofichwa yamewekwa kwenye maoni

Kwa njia hii kamba zilizosimbwa huwekwa pamoja kwa urahisi kwenye dirisha la IDA xrefs kwa kipengele hiki kama inavyoonyeshwa kwenye Mchoro 6.

OceanLotus: sasisho la programu hasidi kwa macOS
Kielelezo 6. Xrefs kwa f_decrypt kazi

Nakala ya mwisho inaweza kupatikana kwa Jumba la Github.

Pato

Kama ilivyotajwa tayari, OceanLotus inaboresha kila wakati na kusasisha zana yake ya zana. Wakati huu, kikundi cha mtandao kimeboresha programu hasidi ili kufanya kazi na watumiaji wa Mac. Msimbo haujabadilika sana, lakini kwa kuwa watumiaji wengi wa Mac hupuuza bidhaa za usalama, kulinda programu hasidi dhidi ya kutambuliwa ni jambo la pili.

Bidhaa za ESET tayari zilikuwa zikigundua faili hii wakati wa utafiti. Kwa sababu maktaba ya mtandao inayotumiwa kwa mawasiliano ya C&C sasa imesimbwa kwa njia fiche kwenye diski, itifaki kamili ya mtandao inayotumiwa na wavamizi bado haijajulikana.

Viashiria vya maelewano

Viashiria vya maelewano na vile vile sifa za MITER ATT&CK zinapatikana pia kwenye GitHub.

Chanzo: mapenzi.com

Kuongeza maoni