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
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.
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 (
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.
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.
Figuur 2. FONT-inskrywingwaardes
Figuur 3.
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.
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.
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.
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.
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.
Tabel 1. Volhardingsmeganisme sonder administrateurregte
Die waarde van die tweede heelgetal spesifiseer hoe die wanware volharding moet bereik wanneer dit met administrateurregte hardloop.
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:
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:
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
Die draaiboek haal die finale stadium uit. Hierdie komponent is 'n agterdeur, waarin ons reeds ontleed het {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 ({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:
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:
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.
Figuur 11. Verduisterde kode
Nadat u gemorskode uitgefiltreer het, voer u uit DllRegisterServer
, genoem regsvr32.exe
, soos volg:
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 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.
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].job
Waar [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.
Figuur 14. Agterdeur-konfigurasiestruktuur (KaitaiStruct Visualizer)
Alhoewel die struktuur soortgelyk is, is baie van die veldwaardes opgedateer vanaf dié wat in
Die eerste element van die binêre skikking bevat 'n DLL (HttpProv.dll
MD5: 2559738D1BD4A999126F900C7357B759
),
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
Bron: will.com