OceanLotus: malware update pro macOS

Mense Martio MMXIX, novum specimen macOS malware e cyberico grege OceanLotus ad VirusTotal impositum est, munus populare online intuens. Scapus posticium exsecutabile easdem facultates habet ac prior versio macOS malware studuimus, sed structura eius mutata est et difficilior facta est deprehendere. Infeliciter, dropperem cum hoc specimen associatum invenire non potuimus, ita vector contagionem nondum novimus.

Nos nuper editis post de OceanLotus et quomodo operarii perseverantiam conantur praebere, codicem exsecutionem accelerare et vestigium in Fenestra systematum minuere. Notum est etiam hunc coetum cyber- num componentem etiam macOS habere. Haec post singillatim describit mutationes in novissima versione malware pro macOS in comparatione cum versione priore (descriptus per Fossa Micro-) et etiam describit quomodo decryptionem chordarum in analysi utendo IDA Hex-radii API automate potes.

OceanLotus: malware update pro macOS

Анализ

Sequuntur tres partes analysi exempli cum SHA-1 Nullam describere E615632C9998E4D3E5ACD8851864ED09B02C77D2. Tabella dicitur flashlightd, ESET producta antivirus eam deprehendere ut OSX/OceanLotus.D.

Anti-debugging et sandbox praesidium

Sicut omnes binarii macOS OceanLotus, specimen cum UPX fasciculatum est, sed instrumenta identitatis maxime fasciculorum eam uti talem non agnoscunt. Hoc verisimile est quia plerumque subscriptionem continent dependens coram filo "UPX", praeterea signaturae Mach-O minus communes sunt et toties renovatae non sunt. Haec factura stabilis deprehensio difficilis facit. Interestingly, post vestimenta, punctum aculei in principio sectionis est __cfstring in fegmento .TEXT. Hanc sectionem vexillum attributa habet ut infra in imagine monstratur.

OceanLotus: malware update pro macOS
Figure 1. MACH-O __cfstring sectionem attributorum

Ut patet in Figura II, in codice locis in sectione __cfstring sino te aliqua instrumenta disassemble fallere, ostendens codicem sicut chordas.

OceanLotus: malware update pro macOS
Figure 2. Backdoor codice deprehendit IDA ut notitia

Postquam exsecutioni mandatur, binarius linum efficit ut anti-debugger, cuius unicum propositum est ut continue praesentiam debugger reprimat. Hoc enim fluunt;

- Tries unhook aliquem debugger, vocantem ptrace с PT_DENY_ATTACH ut petitionem parametri
- SCUTULATUM si aliqui exclusivae portus aperiuntur vocando functionem task_get_exception_ports
- SCUTULATUM si debugger iungitur, ut in figura infra ostenditur, praesentiam vexillum annotando P_TRACED in current processus

OceanLotus: malware update pro macOS
Figure 3. Reprehendo debugger nexum utens ad sysctl munus

Si speculator praesentiam purgantis detegit, munus appellatur exit. Accedit, quod specimen deinde duo imperia currendo coercet:

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

Sample tunc inhibet valorem reditus contra indicem chordarum duro-codedatum ex notis systematibus virtualisationum: acle, vmware, virtualbox aut parallelae. Denique proximum imperium inhibet si apparatus unus ex sequentibus "MBP", "MBA", "MB", "MM", "IM", "MP" et "XS". Hae sunt exemplar codicis systematis, exempli gratia, "MBP" MacBook Pro, "MBA" MacBook Air, etc.

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

Praecipua additamenta

Dum mandata postica non mutaverunt cum investigationis Microform Trend, paucas alias modificationes animadvertimus. Servientes C&C in hoc exemplo usi sunt satis nova et in die 22.10.2018/XNUMX/XNUMX creati sunt.

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

Subsidium URL mutata est /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
Prima fasciculus ad C&C servo missos plura habet de machinae exercitu, inclusis omnibus notitiis ex mandatorum in tabula infra collectis.

OceanLotus: malware update pro macOS

Praeter hanc configurationem mutationem, exemplum bibliothecae retis eliquandi non utitur libcurlsed bibliotheca externa. Invenire, posticum singulas tabellas minuere conatur in directorio currenti utendo cum clave AES-256-CBC. gFjMXBgyXWULmVVVzyxyadditamenta cyphris. Quisque file decrypted et servata est /tmp/storeet conatum onerare ut bibliotheca fit functione utens dlopen. Cum decryption conatum consequitur feliciter vocatus dlopen, posticum extracta munera exportata Boriry ΠΈ ChadylonVquae videntur responsabiles esse communicationis retis cum calculonis servi. Dropperam vel alias tabulas non habemus ex loco originalis exempli, ideo hanc bibliothecam parse non possumus. Praeterea, cum pars encryptatur, regula YARA his chordis nititur, tabellae in orbe inventae non congruit.

Sicut in superiori articulo descriptus est, creat clientID. Id est MD5 Nullam reditus valorem unius ex his praeceptis:

- 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}' (Ut MAC oratio)
- turma ignota ("x1ex72x0a"), quae in praecedentibus exemplis adhibetur

Priusquam hashing, "0" vel "I" additur ad valorem reditus ad indicandas privilegia radicis. Hoc clientID conditur /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex, si signum pro radice vel in ~/Library/SmartCardsServices/Technology/PlugIns/auriga/snippets.ecgML in omnibus aliis casibus currat. Tabella plerumque munus occultatum est _chflags, eius indicatione mutatur utens imperio touch –t cum temere pretii.

Decoding chordis

Ut cum optionibus superioribus, chordae AES-256-CBC utentes chordae encryptae (clavem hexadecimalem; 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 addita cum cyphris, et IV cyphris referta) per functionem CCCrypt. Clavis e prioribus versionibus mutata est, sed cum globus adhuc eodem algorithmo encryption filo utitur, decryption automari potest. Praeter hanc stationem, scripturam IDA dimittimus quae Hex-Rayrum API utitur ad decryptas chordarum quae in tabella binaria habentur. Hoc scriptum adiuvare potest cum futura analysi OceanLotus et analysi exemplorum exsistentium quae nondum obtinere potuimus. Scriptum est de methodo universali recipiendi rationes ad functionem latas. Accedit, quod parametri destinationes spectat. Methodus reddi potest ut rationes functionis indicem accipias et ad callback transeas.

Sciens munus exemplar decrypt, scriptum invenit omnes cruces ad hoc munus, omnes argumentationes, dein decryptas notas et textum planum locat intra commentarium in crucem-referentem electronicam. Scriptum ad recte operandum, consuetudini alphabeti a basi64 decoctionis functionis apponi debet, et variabilis globalis variabilis longitudo clavium (in hoc casu DWORD vide figura 4) definiri debet.

OceanLotus: malware update pro macOS
Figura 4. Definitio globalis variabilis key_len

In fenestra Function, munus decryption recte click ac deprime "Extract et decrypta argumenta". Scriptum lineas in commentationes decryptas collocare debet, ut in Figura 5 ostenditur.

OceanLotus: malware update pro macOS
Figure 5. Textus decrypted in commentaria positus est

Hoc modo chordae decryptae in fenestra idae convenienter collocantur xrefs ad hoc munus ut in Figura VI.

OceanLotus: malware update pro macOS
Figure 6. Xrefs ad f_decrypt munus

Ultima scriptum inveniri potest at Github eclesiae reposito.

conclusio,

Ut iam dictum est, OceanLotus constanter auget et adaequat suum toolkit. Hoc tempore, coetus cyber malware emendavit ad operandum cum Mac usoribus. Codex non multum mutavit, sed cum multi Mac users ignari fructus securitatis ignorent, malware e deprehensio protegens secundae momenti est.

Producta ESET iam tempore investigationis hanc limam detexerunt. Quia bibliotheca retis adhibita communicationis C&C nunc in disco encrypta est, protocollum retis accurata ab oppugnatoribus adhibitum nondum notum est.

Indicatores compromissum

Indicatores compromissi necnon MATER ATT&CK attributa etiam in promptu sunt GitHub.

Source: www.habr.com