ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep

In hierdie pos sal ons jou vertel hoe die kubergroep OceanLotus (APT32 en APT-C-00) onlangs een van die publiek beskikbare ontginnings gebruik het vir CVE-2017-11882, geheue korrupsie kwesbaarhede in Microsoft Office, en hoe die groep se wanware bestendigheid op gekompromitteerde stelsels bereik sonder om 'n spoor te laat. Vervolgens sal ons beskryf hoe die groep sedert die begin van 2019 selfonttrekkingsargiewe gebruik om kode uit te voer.

OceanLotus spesialiseer in kuberspioenasie, met prioriteitsteikens wat lande in Suidoos-Asië is. Aanvallers smee dokumente wat die aandag van potensiële slagoffers trek om hulle te oortuig om die agterdeur uit te voer, en werk ook aan die ontwikkeling van gereedskap. Die metodes wat gebruik word om heuningpotte te skep, wissel oor aanvalle, van "dubbel-uitbreiding" lêers, self-onttrekking argiewe, dokumente met makros, tot bekende uitbuitings.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep

Gebruik 'n uitbuiting in Microsoft Equation Editor

In die middel van 2018 het OceanLotus 'n veldtog gevoer om die CVE-2017-11882 kwesbaarheid te ontgin. Een van die kwaadwillige dokumente van die kubergroep is ontleed deur spesialiste van 360 Threat Intelligence Centre (navorsing in Chinees), insluitend 'n gedetailleerde beskrywing van die ontginning. Die plasing hieronder bevat 'n oorsig van so 'n kwaadwillige dokument.

Eerste stadium

Die dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) is soortgelyk aan dié wat in die studie hierbo genoem is. Dit is interessant omdat dit gemik is op gebruikers wat belangstel in Kambodjaanse politiek (CNRP - Cambodia National Rescue Party, ontbind aan die einde van 2017). Ten spyte van die .doc-uitbreiding, is die dokument in RTF-formaat (sien prentjie hieronder), bevat vulliskode en is dit ook vervorm.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 1. "Gemors" in RTF

Alhoewel daar verdraaide elemente is, maak Word hierdie RTF-lêer suksesvol oop. Soos jy in Figuur 2 kan sien, is daar 'n EQNOLEFILEHDR-struktuur by offset 0xC00, gevolg deur 'n MTEF-kopskrif, en dan 'n MTEF-inskrywing (Figuur 3) vir die lettertipe.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 2. FONT-inskrywingwaardes

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 3. FONT opname formaat

Moontlike oorloop in die veld naam, omdat die grootte nie gekontroleer word voor kopiëring nie. 'n Naam wat te lank is, veroorsaak 'n kwesbaarheid. Soos u kan sien uit die inhoud van die RTF-lêer (offset 0xC26 in Figuur 2), is die buffer gevul met dopkode gevolg deur 'n dummy-opdrag (0x90) en terugstuuradres 0x402114. Die adres is 'n dialoogelement in EQNEDT32.exe, wat instruksies aandui RET. Dit veroorsaak dat EIP na die begin van die veld wys naamwat die dopkode bevat.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 4. Begin van die ontginning dopkode

adres 0x45BD3C stoor 'n veranderlike wat herverwys word totdat dit 'n wyser na die tans gelaaide struktuur bereik MTEFData. Die res van die dopkode is hier.

Die doel van die dopkode is om die tweede stuk dopkode wat in die oop dokument ingebed is, uit te voer. Die oorspronklike dopkode probeer eers om die lêerbeskrywing van die oop dokument te vind deur oor alle stelselbeskrywers te herhaal (NtQuerySystemInformation met argument SystemExtendedHandleInformation) en kyk of hulle ooreenstem PID beskrywer en PID proses WinWord en of die dokument met 'n toegangsmasker oopgemaak is - 0x12019F.

Om te bevestig dat die korrekte handvatsel gevind is (en nie die handvatsel na 'n ander oop dokument nie), word die inhoud van die lêer vertoon met behulp van die funksie CreateFileMapping, en die dopkode kontroleer of die laaste vier grepe van die dokument ooreenstem met "yyyy"(Eier jag metode). Sodra 'n passing gevind is, word die dokument na 'n tydelike vouer gekopieer (GetTempPath) Hoe ole.dll. Dan word die laaste 12 grepe van die dokument gelees.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 5. Einde van dokumentmerkers

32-bis waarde tussen merkers AABBCCDD и yyyy is die afwyking van die volgende dopkode. Dit word genoem om die funksie te gebruik CreateThread. Het dieselfde dopkode onttrek wat vroeër deur die OceanLotus-groep gebruik is. Python-emulasieskrip, wat ons in Maart 2018 vrygestel het, werk steeds vir die tweede stadium-storting.

Die tweede fase

Verwydering van komponente

Lêer- en gidsname word dinamies gekies. Die kode kies lukraak die naam van die uitvoerbare of DLL-lêer in C:Windowssystem32. Dit rig dan 'n versoek aan sy hulpbronne en haal die veld terug FileDescription om as die gidsnaam te gebruik. As dit nie werk nie, kies die kode lukraak 'n gidsnaam uit die gidse %ProgramFiles% of C:Windows (van GetWindowsDirectoryW). Dit vermy die gebruik van 'n naam wat kan bots met bestaande lêers en verseker dat dit nie die volgende woorde bevat nie: windows, Microsoft, desktop, system, system32 of syswow64. As die gids reeds bestaan, word "NLS_{6 karakters}" by die naam gevoeg.

hulpbron 0x102 word ontleed en lêers word in gestort %ProgramFiles% of %AppData%, na 'n lukraak geselekteerde gids. Verander skeppingstyd om dieselfde waardes te hê as kernel32.dll.

Hier is byvoorbeeld die gids en lys lêers wat geskep is deur die uitvoerbare te kies C:Windowssystem32TCPSVCS.exe as 'n databron.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 6. Onttrekking van verskeie komponente

Hulpbronstruktuur 0x102 in 'n dropper is redelik kompleks. In 'n neutedop, dit bevat:
— Lêername
- Lêergrootte en inhoud
- Kompressie formaat (COMPRESSION_FORMAT_LZNT1, gebruik deur die funksie RtlDecompressBuffer)

Die eerste lêer word teruggestel as TCPSVCS.exe, wat wettig is AcroTranscoder.exe (Volgens FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Jy het dalk opgemerk dat sommige DLL-lêers groter as 11 MB is. Dit is omdat 'n groot aaneenlopende buffer van ewekansige data binne die uitvoerbare lêer geplaas word. Dit is moontlik dat dit 'n manier is om opsporing deur sommige sekuriteitsprodukte te vermy.

Verseker volharding

hulpbron 0x101 in die drupper bevat twee 32-bis heelgetalle wat spesifiseer hoe volharding verskaf moet word. Die waarde van die eerste spesifiseer hoe die wanware sal voortduur sonder administrateurregte.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Tabel 1. Volhardingsmeganisme sonder administrateurregte

Die waarde van die tweede heelgetal spesifiseer hoe die wanware volharding moet bereik wanneer dit met administrateurregte hardloop.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Tabel 2. Volhardingsmeganisme met administrateurregte

Die diensnaam is die lêernaam sonder uitbreiding; die vertoonnaam is die naam van die vouer, maar as dit reeds bestaan, word die string " daaraan gevoegRevision 1” (die getal neem toe totdat 'n ongebruikte naam gevind word). Die operateurs het seker gemaak dat volharding deur die diens robuust was - in geval van mislukking, moet die diens na 1 sekonde herbegin word. Dan die waarde WOW64 Die nuwe diens se registersleutel is op 4 gestel, wat aandui dat dit 'n 32-bis diens is.

'n Geskeduleerde taak word deur verskeie COM-koppelvlakke geskep: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. In wese skep die wanware 'n versteekte taak, stel die rekeninginligting saam met die huidige gebruiker- of administrateurinligting, en stel dan die sneller.

Dit is 'n daaglikse taak met 'n tydsduur van 24 uur en intervalle tussen twee uitvoerings van 10 minute, wat beteken dat dit deurlopend sal loop.

Kwaadwillige bietjie

In ons voorbeeld, die uitvoerbare lêer TCPSVCS.exe (AcroTranscoder.exe) is wettige sagteware wat DLL's laai wat saam met dit teruggestel word. In hierdie geval is dit van belang Flash Video Extension.dll.

Sy funksie DLLMain roep net 'n ander funksie. Sommige fuzzy predikate is teenwoordig:

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 7. Fuzzy predikate

Na hierdie misleidende kontrole kry die kode 'n afdeling .text lêer TCPSVCS.exe, verander sy verdediging na PAGE_EXECUTE_READWRITE en herskryf dit deur dummy-instruksies by te voeg:

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 8. Volgorde van instruksies

Aan die einde van die funksie adres FLVCore::Uninitialize(void), uitgevoer Flash Video Extension.dll, word instruksie bygevoeg CALL. Dit beteken dat nadat die kwaadwillige DLL gelaai is, wanneer die runtime oproepe WinMain в TCPSVCS.exe, sal die instruksiewyser na NOP wys, wat veroorsaak FLVCore::Uninitialize(void), volgende fase.

Die funksie skep eenvoudig 'n mutex wat begin met {181C8480-A975-411C-AB0A-630DB8B0A221}gevolg deur die huidige gebruikersnaam. Dit lees dan die gestort *.db3-lêer, wat posisie-onafhanklike kode bevat, en gebruik CreateThread om die inhoud uit te voer.

Die inhoud van die *.db3-lêer is die dopkode wat die OceanLotus-groep tipies gebruik. Ons het weer die loonvrag suksesvol uitgepak deur die emulatorskrip wat ons gepubliseer het op GitHub.

Die draaiboek haal die finale stadium uit. Hierdie komponent is 'n agterdeur, waarin ons reeds ontleed het vorige OceanLotus-studie. Dit kan deur die GUID bepaal word {A96B020F-0000-466F-A96D-A91BBF8EAC96} binêre lêer. Die wanware-konfigurasie is steeds geïnkripteer in die PE-hulpbron. Dit het ongeveer dieselfde konfigurasie, maar die C&C-bedieners verskil van die voriges:

- andreagahuvrauvin[.]com
- byronorenstein[.]com
- stienollmache[.]xyz

Die OceanLotus-span demonstreer weer 'n kombinasie van verskillende tegnieke om opsporing te vermy. Hulle het teruggekeer met 'n "verfynde" diagram van die infeksieproses. Deur ewekansige name te kies en uitvoerbare data met ewekansige data te vul, verminder hulle die aantal betroubare IoC's (gebaseer op hashes en lêername). Boonop, danksy die gebruik van derdeparty-DLL-laai, hoef aanvallers net die wettige binêre te verwyder AcroTranscoder.

Self-onttrekking argiewe

Na RTF-lêers het die groep na selfonttrekking (SFX) argiewe met algemene dokumentikone verskuif om die gebruiker verder te verwar. Threatbook het hieroor geskryf (skakel in Chinees). By bekendstelling word selfonttrekkings RAR-lêers laat vaar en DLL's met 'n .ocx-uitbreiding word uitgevoer, waarvan die finale loonvrag voorheen gedokumenteer is {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Sedert middel Januarie 2019 hergebruik OceanLotus hierdie tegniek, maar het sommige konfigurasies mettertyd verander. In hierdie afdeling sal ons praat oor die tegniek en veranderinge.

Die skep van 'n lokmiddel

Die dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) is die eerste keer in 2018 gevind. Hierdie SFX-lêer is verstandig geskep - in die beskrywing (Weergawe-inligting) dit sê dit is 'n JPEG-beeld. Die SFX-skrif lyk soos volg:

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 9. SFX-opdragte

Die malware word teruggestel {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), sowel as 'n foto 2018 thich thong lac.jpg.

Die lokprent lyk so:

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 10. Lokbeeld

Jy het dalk opgemerk dat die eerste twee reëls in die SFX-skrif die OCX-lêer twee keer noem, maar dit is nie 'n fout nie.

{9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (ShLd.dll)

Die beheervloei van 'n OCX-lêer is baie soortgelyk aan ander OceanLotus-komponente - baie opdragreekse JZ/JNZ и PUSH/RET, afgewissel met vulliskode.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 11. Verduisterde kode

Nadat u gemorskode uitgefiltreer het, voer u uit DllRegisterServer, genoem regsvr32.exe, soos volg:

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 12. Basiese installeerderkode

Basies, op die eerste oproep DllRegisterServer uitvoer stel registerwaarde HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model vir geënkripteerde offset in DLL (0x10001DE0).

Wanneer die funksie 'n tweede keer geroep word, lees dit dieselfde waarde en word by daardie adres uitgevoer. Van hier af word die hulpbron en baie aksies in RAM gelees en uitgevoer.

Die dopkode is dieselfde PE-laaier wat in vorige OceanLotus-veldtogte gebruik is. Dit kan nageboots word met behulp van ons skrif. Op die ou end herstel hy db293b825dcc419ba7dc2c49fa2757ee.dll, laai dit in die geheue en voer dit uit DllEntry.

Die DLL onttrek die inhoud van sy hulpbron, dekripteer (AES-256-CBC) en dekomprimeer (LZMA) dit. Die hulpbron het 'n spesifieke formaat wat maklik is om te dekompileer.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 13. Installeerderkonfigurasiestruktuur (KaitaiStruct Visualizer)

Die konfigurasie word uitdruklik gespesifiseer - afhangend van die voorregvlak, sal binêre data geskryf word %appdata%IntellogsBackgroundUploadTask.cpl of %windir%System32BackgroundUploadTask.cpl (Of SysWOW64 vir 64-bis stelsels).

Verdere volharding word verseker deur 'n taak met die naam te skep BackgroundUploadTask[junk].jobWaar [junk] verteenwoordig 'n stel grepe 0x9D и 0xA0.

Naam van die taaktoepassing %windir%System32control.exe, en die parameterwaarde is die pad na die afgelaaide binêre lêer. Die verborge taak loop elke dag.

Struktureel is 'n CPL-lêer 'n DLL met 'n interne naam ac8e06de0a6c4483af9837d96504127e.dll, wat 'n funksie uitvoer CPlApplet. Hierdie lêer dekripteer sy enigste hulpbron {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, laai dan hierdie DLL en roep sy enigste uitvoer DllEntry.

Agterdeur-konfigurasielêer

Die agterdeur-konfigurasie is geïnkripteer en ingebed in sy hulpbronne. Die struktuur van die konfigurasielêer is baie soortgelyk aan die vorige een.

ESET: nuwe agterdeurafleweringskemas vir die OceanLotus-kubergroep
Figuur 14. Agterdeur-konfigurasiestruktuur (KaitaiStruct Visualizer)

Alhoewel die struktuur soortgelyk is, is baie van die veldwaardes opgedateer vanaf dié wat in ons ou verslag.

Die eerste element van die binêre skikking bevat 'n DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), deur Tencent geïdentifiseer. Maar aangesien die uitvoernaam uit die binêre verwyder is, stem die hashes nie ooreen nie.

Bykomende navorsing

Terwyl ons monsters versamel het, het ons 'n paar kenmerke opgemerk. Die monster wat pas beskryf is, het in Julie 2018 verskyn, en ander soos dit het so onlangs as middel Januarie tot vroeg Februarie 2019 verskyn. Die SFX-argief is as 'n infeksievektor gebruik, wat 'n wettige lokdokument en 'n kwaadwillige OSX-lêer laat val.

Alhoewel OceanLotus vals tydstempels gebruik, het ons opgemerk dat die tydstempels van SFX- en OCX-lêers altyd dieselfde is (0x57B0C36A (08/14/2016 @ 7:15 UTC) en 0x498BE80F (02/06/2009 @ 7:34 UTC) onderskeidelik). Dit dui waarskynlik daarop dat die skrywers 'n soort "ontwerper" het wat dieselfde sjablone gebruik en bloot sekere kenmerke verander.

Onder die dokumente wat ons sedert die begin van 2018 bestudeer het, is daar verskeie name wat die lande van belang vir die aanvallers aandui:

— Die nuwe kontakinligting van Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (vals pdf-dokument van 'n CV)
- terugvoer, Rally in VSA vanaf 28-29 Julie, 2018.exe

Sedert die agterdeur ontdek is {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll en die publikasie van die ontleding daarvan deur verskeie navorsers, het ons 'n paar veranderinge in die malware-konfigurasiedata waargeneem.

Eerstens het die skrywers name van helper-DLL's begin verwyder (DNSprov.dll en twee weergawes HttpProv.dll). Die operateurs het toe opgehou om die derde DLL (die tweede weergawe HttpProv.dll), en kies om slegs een in te sluit.

Tweedens is baie agterdeur-konfigurasievelde verander, wat waarskynlik opsporing sal ontduik namate baie IoC's beskikbaar geword het. Belangrike velde wat deur die skrywers gewysig is, sluit in:

  • AppX-registersleutel verander (sien IoC's)
  • mutex-koderingstring ("def", "abc", "ghi")
  • poortnommer

Ten slotte, alle nuwe weergawes wat ontleed is, het nuwe C&C's wat in die IoC's-afdeling gelys word.

Bevindinge

OceanLotus gaan voort om te ontwikkel. Die kubergroep is daarop ingestel om die gereedskap en lokmiddels te verfyn en uit te brei. Skrywers verdoesel kwaadwillige loonvragte deur dokumente wat aandag trek, waarvan die onderwerp relevant is vir die beoogde slagoffers. Hulle ontwikkel nuwe skemas en gebruik ook publieke beskikbare gereedskap, soos die Equation Editor-ontginning. Boonop verbeter hulle gereedskap om die aantal artefakte wat op slagoffers se masjiene oorbly, te verminder, waardeur die kans op opsporing deur antivirussagteware verminder word.

Aanduiders van kompromie

Aanwysers van kompromie sowel as MITER ATT&CK-eienskappe is beskikbaar op Welivesecurity и op GitHub.

Bron: will.com

Voeg 'n opmerking