OceanLotus: Diweddariad drwgwedd ar gyfer macOS

Ym mis Mawrth 2019, uwchlwythwyd sampl newydd o faleiswedd macOS o'r grŵp seiber OceanLotus i VirusTotal, gwasanaeth sganio ar-lein poblogaidd. Mae gan y ffeil gweithredadwy backdoor yr un galluoedd â'r fersiwn flaenorol o'r malware macOS a astudiwyd gennym, ond mae ei strwythur wedi newid ac mae wedi dod yn anoddach ei ganfod. Yn anffodus, nid oeddem yn gallu dod o hyd i dropper yn gysylltiedig â'r sampl hwn, felly nid ydym yn gwybod fector yr haint eto.

Cyhoeddasom yn ddiweddar post am OceanLotus a sut mae gweithredwyr yn ceisio darparu dyfalbarhad, cyflymu gweithrediad cod, a lleihau ôl troed ar systemau Windows. Mae'n hysbys hefyd bod gan y grŵp seiber hwn elfen ar gyfer macOS hefyd. Mae'r swydd hon yn manylu ar y newidiadau yn y fersiwn diweddaraf o'r malware ar gyfer macOS o'i gymharu â'r fersiwn flaenorol (disgrifiwyd gan Trend Micro), ac mae hefyd yn disgrifio sut y gallwch chi awtomeiddio dadgryptio tannau yn ystod dadansoddiad gan ddefnyddio API Hex-Rays IDA.

OceanLotus: Diweddariad drwgwedd ar gyfer macOS

Dadansoddi

Mae'r tair rhan nesaf yn disgrifio dadansoddiad sampl gyda hash SHA-1 E615632C9998E4D3E5ACD8851864ED09B02C77D2. Gelwir y ffeil fflachlyd, Mae cynhyrchion gwrthfeirws ESET yn ei ganfod fel OSX/OceanLotus.D.

Gwrth-debugio a diogelu blychau tywod

Fel pob binaries OceanLotus macOS, mae'r sampl wedi'i becynnu â UPX, ond nid yw'r rhan fwyaf o offer adnabod pecynwyr yn ei adnabod felly. Mae'n debyg bod hyn oherwydd eu bod yn bennaf yn cynnwys llofnod sy'n dibynnu ar bresenoldeb y llinyn “UPX”, yn ogystal, mae llofnodion Mach-O yn llai cyffredin ac nid ydynt yn cael eu diweddaru mor aml. Mae'r nodwedd hon yn ei gwneud hi'n anodd canfod statig. Yn ddiddorol, ar ôl dadbacio, mae'r pwynt mynediad ar ddechrau'r adran __cfstring yn y segment .TEXT. Mae gan yr adran hon briodweddau baner fel y dangosir yn y ddelwedd isod.

OceanLotus: Diweddariad drwgwedd ar gyfer macOS
Ffigur 1. MACH-O __cfstring adran priodoleddau

Fel y dangosir yn Ffigur 2, mae'r lleoliadau cod yn yr adran __cfstring yn eich galluogi i dwyllo rhai offer dadosod trwy arddangos cod fel llinynnau.

OceanLotus: Diweddariad drwgwedd ar gyfer macOS
Ffigur 2. Cod drws cefn wedi'i ganfod gan yr IDA fel data

Ar ôl ei weithredu, mae'r deuaidd yn creu edefyn fel gwrth-debygwr a'i unig bwrpas yw gwirio'n barhaus am bresenoldeb dadfygiwr. Ar gyfer y llif hwn:

— Yn ceisio dadfachu unrhyw ddadfygiwr, gan alw ptrace с PT_DENY_ATTACH fel paramedr cais
- Gwirio a yw rhai porthladdoedd unigryw ar agor trwy alw swyddogaeth task_get_exception_ports
- Gwirio a yw'r dadfygiwr wedi'i gysylltu, fel y dangosir yn y ffigur isod, trwy wirio presenoldeb y faner P_TRACED yn y broses bresennol

OceanLotus: Diweddariad drwgwedd ar gyfer macOS
Ffigur 3. Gwirio'r cysylltiad dadfygiwr gan ddefnyddio'r swyddogaeth sysctl

Os yw'r corff gwarchod yn canfod presenoldeb dadfygiwr, gelwir y swyddogaeth exit. Yn ogystal, mae'r sampl wedyn yn gwirio'r amgylchedd trwy redeg dau orchymyn:

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

Yna mae'r sampl yn gwirio'r gwerth dychwelyd yn erbyn rhestr o linynnau cod caled o systemau rhithwiroli hysbys: acw, VMware, virtualbox neu tebygrwydd. Yn olaf, mae'r gorchymyn nesaf yn gwirio a yw'r peiriant yn un o'r “MBP”, “MBA”, “MB”, “MM”, “IM”, “MP” ac “XS” canlynol. Mae'r rhain yn godau model system, er enghraifft, mae "MBP" yn golygu MacBook Pro, "MBA" yn golygu MacBook Air, ac ati.

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

Prif ychwanegiadau

Er nad yw'r gorchmynion drws cefn wedi newid ers ymchwil Trend Micro, fe wnaethom sylwi ar ychydig o addasiadau eraill. Mae'r gweinyddwyr C&C a ddefnyddir yn y sampl hwn yn weddol newydd ac fe'u crëwyd ar 22.10.2018/XNUMX/XNUMX.

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

Mae'r URL adnodd wedi newid i /dp/B074WC4NHW/ref=gbps_img_m-9_62c3_750e6b35.
Mae'r pecyn cyntaf a anfonwyd at y gweinydd C&C yn cynnwys mwy o wybodaeth am y peiriant gwesteiwr, gan gynnwys yr holl ddata a gasglwyd gan y gorchmynion yn y tabl isod.

OceanLotus: Diweddariad drwgwedd ar gyfer macOS

Yn ogystal â'r newid cyfluniad hwn, nid yw'r sampl yn defnyddio llyfrgell ar gyfer hidlo rhwydwaith libcurl, ond llyfrgell allanol. I ddod o hyd iddo, mae'r drws cefn yn ceisio dadgryptio pob ffeil yn y cyfeiriadur cyfredol gan ddefnyddio AES-256-CBC gyda'r allwedd gFjMXBgyXWULmVVVzyxy, padio â sero. Mae pob ffeil yn cael ei dadgryptio a'i chadw fel /tmp/store, a gwneir ymgais i'w lwytho fel llyfrgell gan ddefnyddio'r ffwythiant dlopen. Pan fydd ymgais dadgryptio yn arwain at alwad lwyddiannus dlopen, y backdoor darnau allforio swyddogaethau Boriry и ChadylonV, sydd yn ôl pob golwg yn gyfrifol am gyfathrebu rhwydwaith gyda'r gweinydd. Nid oes gennym y dropiwr na ffeiliau eraill o leoliad gwreiddiol y sampl, felly ni allwn ddosrannu'r llyfrgell hon. Ar ben hynny, gan fod y gydran wedi'i hamgryptio, ni fydd rheol YARA sy'n seiliedig ar y llinynnau hyn yn cyfateb i'r ffeil a geir ar ddisg.

Fel y disgrifir yn yr erthygl uchod, mae'n creu ID cleient. Yr ID hwn yw'r stwnsh MD5 o werth dychwelyd un o'r gorchmynion canlynol:

- 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}' (cael cyfeiriad MAC)
- tîm anhysbys ("x1ex72x0a"), a ddefnyddir mewn samplau blaenorol

Cyn stwnsio, mae "0" neu "1" yn cael ei ychwanegu at y gwerth dychwelyd i nodi breintiau gwraidd. hwn ID cleient storio mewn /Library/Storage/File System/HFS/25cf5d02-e50b-4288-870a-528d56c3cf6e/pivtoken.appex, os yw'r cod yn cael ei redeg fel gwraidd neu mewn ~/Library/SmartCardsServices/Technology/PlugIns/drivers/snippets.ecgML ym mhob achos arall. Mae'r ffeil fel arfer yn cael ei guddio gan ddefnyddio'r swyddogaeth _chflags, mae ei stamp amser yn cael ei newid gan ddefnyddio'r gorchymyn touch –t gyda gwerth ar hap.

Llinynnau dadgodio

Yn yr un modd ag opsiynau blaenorol, mae'r llinynnau'n cael eu hamgryptio gan ddefnyddio AES-256-CBC (allwedd hecsadegol: 9D7274AD7BCEF0DED29BDBB428C251DF8B350B92 eu padio â sero, a IV llenwi â sero) drwy'r swyddogaeth CCCrypt. Mae'r allwedd wedi newid o fersiynau blaenorol, ond gan fod y grŵp yn dal i ddefnyddio'r un algorithm amgryptio llinynnol, gall dadgryptio fod yn awtomataidd. Yn ogystal â'r swydd hon, rydym yn rhyddhau sgript IDA sy'n defnyddio'r API Hex-Rays i ddadgryptio'r llinynnau sy'n bresennol yn y ffeil ddeuaidd. Efallai y bydd y sgript hon yn helpu gyda dadansoddiad o OceanLotus yn y dyfodol a dadansoddiad o samplau presennol nad ydym wedi gallu eu cael eto. Mae'r sgript yn seiliedig ar ddull cyffredinol o dderbyn dadleuon a drosglwyddir i swyddogaeth. Yn ogystal, mae'n edrych i fyny aseiniadau paramedr. Gellir ailddefnyddio'r dull i gael rhestr o ddadleuon swyddogaeth ac yna ei drosglwyddo i'r alwad yn ôl.

Gwybod y prototeip swyddogaeth datgryptio, mae'r sgript yn canfod pob croesgyfeiriad i'r swyddogaeth hon, pob dadl, yna'n dadgryptio'r data ac yn gosod testun plaen y tu mewn i sylw yn y cyfeiriad croesgyfeirio. Er mwyn i'r sgript weithio'n gywir, rhaid ei gosod i'r wyddor arferiad a ddefnyddir gan y swyddogaeth datgodio base64, a rhaid diffinio newidyn byd-eang sy'n cynnwys hyd yr allwedd (DWORD yn yr achos hwn, gweler Ffigur 4).

OceanLotus: Diweddariad drwgwedd ar gyfer macOS
Ffigur 4. Diffiniad o'r newidyn byd-eang key_len

Yn y ffenestr Swyddogaeth, gallwch dde-glicio ar y swyddogaeth dadgryptio a chlicio ar “Echdynnu a dadgryptio dadleuon.” Dylai'r sgript osod y llinellau dadgryptio mewn sylwadau, fel y dangosir yn Ffigur 5.

OceanLotus: Diweddariad drwgwedd ar gyfer macOS
Ffigur 5. Rhoddir y testun dadgryptio yn y sylwadau

Fel hyn mae'r tannau dadgryptio wedi'u gosod yn gyfleus gyda'i gilydd yn ffenestr yr IDA xrefs ar gyfer y swyddogaeth hon fel y dangosir yn Ffigur 6.

OceanLotus: Diweddariad drwgwedd ar gyfer macOS
Ffigur 6. Xrefs to f_decrypt function

Mae'r sgript derfynol i'w gweld yn Storfa Github.

Allbwn

Fel y soniwyd eisoes, mae OceanLotus yn gwella ac yn diweddaru ei becyn cymorth yn gyson. Y tro hwn, mae'r grŵp seiber wedi gwella'r malware i weithio gyda defnyddwyr Mac. Nid yw'r cod wedi newid llawer, ond gan fod llawer o ddefnyddwyr Mac yn anwybyddu cynhyrchion diogelwch, mae amddiffyn malware rhag cael ei ganfod o bwysigrwydd eilaidd.

Roedd cynhyrchion ESET eisoes yn canfod y ffeil hon ar adeg yr ymchwil. Oherwydd bod y llyfrgell rhwydwaith a ddefnyddir ar gyfer cyfathrebu C&C bellach wedi'i hamgryptio ar ddisg, nid yw'r union brotocol rhwydwaith a ddefnyddir gan yr ymosodwyr yn hysbys eto.

Dangosyddion cyfaddawd

Mae dangosyddion cyfaddawdu yn ogystal â phriodoleddau MITER ATT&CK hefyd ar gael ar GitHub.

Ffynhonnell: hab.com

Ychwanegu sylw