ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus

I dette indlæg vil vi fortælle, hvordan cybergruppen OceanLotus (APT32 og APT-C-00) for nylig har udnyttet en af de offentligt tilgængelige exploits til CVE-2017-11882, en sårbarhed vedrørende hukommelseskorruption i Microsoft Office, og hvordan gruppens malware opnår vedholdenhed i kompromitterede systemer uden at efterlade spor. Derudover vil vi beskrive, hvordan gruppen siden begyndelsen af 2019 har anvendt selvudpakkende arkiver til at køre kode.

OceanLotus specialiserer sig i cyberspionage, med fokus på lande i Sydøstasien. Angribere forfalsker dokumenter, der fanger potentielle ofres opmærksomhed, for at overbevise dem om at køre en backdoor, og arbejder således på udvikling af deres værktøjer. Metoderne til at skabe lokkemad varierer fra angreb til angreb – fra filer med 'dobbelt filendelse', selvudpakkende arkiver, dokumenter med makroer til velkendte exploits.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus

Brugen af exploit i Microsoft Equation Editor

I midten af 2018 gennemførte OceanLotus en kampagne, der anvendte sårbarheden CVE-2017-11882. Et af de ondsindede dokumenter fra cybergruppen blev analyseret af specialister fra 360 Threat Intelligence Center (undersøgelse på kinesisk), som inkluderede en detaljeret beskrivelse af exploit'en. I indlægget nedenfor præsenteres en oversigt over et sådant ondsindet dokument.

Første fase

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) ligner det, der er nævnt i undersøgelsen ovenfor. Det er interessant, da det retter sig mod brugere, der er interesseret i cambodiansk politik (CNRP – Cambodian National Rescue Party, der blev opløst i slutningen af 2017). På trods af filendelsen .doc har dokumentet RTF-format (se billede nedenfor), indeholder affaldskode, samt er blevet forvrænget.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 1. 'Affald' i RTF

På trods af de forvrængede elementer åbner Word dette RTF-fil uden problemer. Som det ses i figur 2, er her strukturen EQNOLEFILEHDR med en offset på 0xC00, efterfulgt af overskriften MTEF, og derefter posten MTEF (figur 3) for skrifttypen.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 2. Postværdier FONT

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 3. Formatet på FONT-posten

Der kan være en overflow i feltet name, da dets størrelse ikke tjekkes før kopiering. Et for langt navn udløser sårbarheden. Som det fremgår af indholdet i RTF-filen (offset 0xC26 i figur 2), fyldes bufferen med shellkode, efterfulgt af en falsk kommando (0x90) og returadresse 0x402114. Adressen er et dialogelement i EQNEDT32.exe, der angiver instruktionen RET. Dette fører til, at EIP peger på begyndelsen af feltet name, der indeholder shell-kode.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 4. Begyndelsen af shell-koden for udnyttelsen

Adresse 0x45BD3C opbevarer en variabel, der derefereres, indtil den når en pegepind til den aktuelt indlæste struktur MTEFData. Her findes den resterende del af shell-koden.

Formålet med shell-koden er at udføre det andet fragment af shell-koden, der er indlejret i det åbne dokument. Først forsøger den oprindelige shell-kode at finde filhåndtaget til det åbne dokument ved at gennemgå alle systemhåndtagene (NtQuerySystemInformation med argumentet SystemExtendedHandleInformation) og kontrollere, om PID håndtaget og PID til at skabe illustrationer. For eksempel er nogle illustrationer i FunCorp lavet helt på den med Apple Pencil. WinWord og om dokumentet blev åbnet med adgangsmasken – 0x12019F.

For at bekræfte, at det rigtige håndtag er fundet (og ikke håndtaget til et andet åbent dokument), vises filens indhold ved hjælp af funktionen CreateFileMapping, og shell-koden tjekker, om de sidste fire byte af dokumentet "yyyy" (Egg Hunting-metoden). Så snart et match er fundet, kopieres dokumentet til en midlertidig mappe (GetTempPath) som ole.dll. Derefter læses de sidste 12 byte af dokumentet.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 5. Dokumentets slutmærker

32-bit værdi mellem mærkerne AABBCCDD og yyyy – er offset til den næste shell-kode. Den kaldes ved hjælp af funktionen CreateThread. Den samme shell-kode, som OceanLotus-gruppen tidligere har brugt, er blevet udvundet. Python-emuleringsscriptet, som vi har udgivet i marts 2018, fungerer stadig for dumping af anden fase.

Anden fase

Uddragning af komponenter

Filnavne og mapper vælges dynamisk. Koden vælger tilfældigt navnet på en kørbar eller DLL-fil i C:Windowssystem32. Derefter anmoder den om sine ressourcer og udtrækker feltet FileDescription , som skal bruges som mappenavn. Hvis dette ikke virker, vælger koden tilfældigt et mappenavn fra %ProgramFiles% eller C:Windows (fra GetWindowsDirectoryW). Den undgår at bruge et navn, der kan konflikte med eksisterende filer og sørger for, at det ikke indeholder følgende ord: windows, Microsoft, desktop, system, system32. eller syswow64. Hvis mappen allerede findes, tilføjes "NLS_{6 tegn}" til navnet.

Platformen 0x102 analyseres, og filer dumpes til %ProgramFiles% eller %AppData%, i mappen, der er valgt tilfældigt. Oprettelsestidspunktet ændres, så det har de samme værdier som kernel32.dll.

For eksempel er her mappen og listen over filer, der er oprettet ved at vælge den kørbare fil C:Windowssystem32TCPSVCS.exe som datakilde.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 6. Uddrag af forskellige komponenter

Ressource struktur 0x102 i dropperen er ret kompleks. Kort sagt, den indeholder:
— Filnavne
— Størrelse og indhold af filer
— Komprimeringsformat (COMPRESSION_FORMAT_LZNT1, anvendt af funktionen RtlDecompressBuffer)

Den første fil nulstilles som TCPSVCS.exe, som er legitim AcroTranscoder.exe (ifølge FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Du har måske bemærket, at størrelsen på nogle DLL-filer overstiger 11 MB. Dette skyldes, at en stor sammenhængende buffer med tilfældige data er placeret inde i den eksekverbare fil. Det er ikke umuligt, at dette er en måde at undgå opdagelse af visse sikkerhedsprodukter.

Sikring af vedholdenhed

Platformen 0x101 i dropperen indeholder to 32-bit heltal, der angiver, hvordan vedholdenhed skal sikres. Den første værdi angiver, hvordan malware vil bevare vedholdenhed uden administratorrettigheder.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Tabel 1. Mekanisme for vedholdenhed uden administratorrettigheder

Den anden integer værdi angiver, hvordan malware skal sikre vedholdenhed, mens den kører med administratorrettigheder.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Tabel 2. Mekanisme for vedholdenhed med administratorrettigheder

Servicenavnet er filnavnet uden filtypenavn; det viste navn er mappenavnet, men hvis det allerede eksisterer, tilføjes en streng “Revision 1” (tallet øges, indtil der findes et ubesat navn). Operatørerne har sørget for, at vedholdenhed via tjenesten er konstant – i tilfælde af nedbrud skal tjenesten genstartes efter 1 sekund. Derefter tildeles værdien WOW64 den nye registreringsnøgle for tjenesten værdi 4, hvilket indikerer, at det er en 32-bit service.

En planlagt opgave oprettes gennem flere COM-grænseflader: ITaskScheduler, ITask, ITaskTrigger, IPersistFile og ITaskScheduler. I det væsentlige opretter malware en skjult opgave, indstiller kontooplysninger sammen med oplysninger om den aktuelle bruger eller administrator og derefter fastsætter en trigger.

Dette er en daglig opgave med en varighed på 24 timer og mellemrum mellem to udførelser på 10 minutter, hvilket betyder, at den vil køre konstant.

Malware-biten

I vores eksempel er den eksekverbare fil TCPSVCS.exe (AcroTranscoder.exe) er legitim software, der downloader DLL-filer, som nulstilles sammen med det. I denne sammenhæng er der interesse for Flash Video Extension.dll.

Dens funktion DLLMain kalder blot en anden funktion. Der er nogle uklare prædikater:

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 7. Uklare prædikater

Efter disse vildledende kontroller får koden sektionen .text filen TCPSVCS.exe, ændrer dens beskyttelse til PAGE_EXECUTE_READWRITE og overskriver den ved at tilføje falske instruktioner:

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 8. Instruktionssekvens

Til slut tilføjes der en instruktion til adressen af funktionen FLVCore::Uninitialize(void), som eksporteres Flash Video Extension.dll, med en instruktion CALL. Det betyder, at efter indlæsningen af den ondsindede DLL, når runtime kalder WinMain i TCPSVCS.exe, vil instruktionens peg være peget på NOP, hvilket resulterer i at kalde FLVCore::Uninitialize(void), næste fase.

Funktionen skaber blot en mutex, der begynder med {181C8480-A975-411C-AB0A-630DB8B0A221}, efterfulgt af det nuværende brugernavn. Derefter læser den den nulstillede fil med yderligere filtypen *.db3, som indeholder positionsuafhængig kode, og bruger CreateThread til at udføre indholdet.

Indholdet af *.db3-filen er shell-kode, der normalt anvendes af OceanLotus-gruppen. Vi har igen lykkedes med at udpakke dens nyttelast ved hjælp af et emulator script, som vi har offentliggjort på GitHub.

Scriptet udtrækker den sidste fase. Denne komponent er en backdoor, som vi allerede har analyseret i den tidligere OceanLotus-undersøgelse. Dette kan identificeres ved GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} af binærfilen. Konfigurationen af den ondsindede software er stadig krypteret i PE-ressourcen. Den har omtrent den samme konfiguration, men C&C-serverne adskiller sig fra de tidligere:

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

OceanLotus-gruppen demonstrerer igen kombinationen af forskellige teknikker for at undgå opdagelse. De er vendt tilbage med en 'forbedret' modtagelsesproces. Ved at vælge tilfældige navne og fylde de eksekverbare filer med tilfældige data, reducerer de antallet af pålidelige IoC (baseret på hashes og filnavne). Desuden, ved at anvende tredjeparts DLL-download, behøver angrebskræfterne kun at fjerne det legitime binære AcroTranscoder.

Selvudpakkende arkiver

Efter RTF-filerne er gruppen gået over til selvudpakkende (SFX) arkiver med almindelige dokumentikoner for yderligere forvirring af brugeren. Dette er blevet rapporteret af Threatbook (link til kinesisk). Efter lanceringen slettes selvudpaknings RAR-filerne, og DLL-filer med .ocx-udvidelsen udføres, hvis den endelige nyttelast tidligere er blevet dokumenteret {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Siden midten af januar 2019 har OceanLotus genbrugt denne teknik, men ændrer over tid nogle konfigurationer. I dette afsnit vil vi beskrive teknikken og ændringerne.

Oprettelse af lokkemad

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) blev først fundet i 2018. Denne SFX-fil er skabt med omtanke – i beskrivelsen (Version Info) står der, at dette er et JPEG-billede. SFX-scriptet ser således ud:

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 9. SFX-kommandoer

Malware'en sletter {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), samt billedet 2018 thich thong lac.jpg.

Lokkemad-billedet ser således ud:

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 10. Lokkemad-billede

Du har muligvis bemærket, at de første to linjer i SFX-scriptet kalder OCX-filen to gange, men dette er ikke en fejl.

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

Kontrolstrømmen for OCX-filen ligner meget andre komponenter fra OceanLotus – mange sekvenser af kommandoer JZ/JNZ og PUSH/RET, skiftende med skrammelkode.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 11. Obfuskeret kode

Efter filtrering af skrammelkoden eksporteres DllRegisterServer, kaldt af regsvr32.exe, looks as follows:

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 12. Hovedkoden for installatøren

I bund og grund sætter den ved første kald DllRegisterServer eksportet registreringsværdien HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model til den krypterede offset i DLL (0x10001DE0).

Når funktionen kaldes for anden gang, læser den den samme værdi og udføres på denne adresse. Herfra læses og udføres ressourcen, og mange handlinger i hukommelsen.

Shellkoden er den samme PE-loader, der er brugt i tidligere OceanLotus-kampagner. Den kan emuleres ved hjælp af vores script. Til slut sletter den db293b825dcc419ba7dc2c49fa2757ee.dll, indlæser det i hukommelsen og udfører DllEntry.

DLL'en udtrækker indholdet af sin ressource, dekrypterer (AES-256-CBC) og udpakkes (LZMA). Ressourcen har et specifikt format, der er let at dekompilere.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 13. Struktur for installatørkonfiguration (KaitaiStruct Visualizer)

Konfigurationen er angivet eksplicit – afhængigt af privilegieniveauet vil binære data blive skrevet til %appdata%IntellogsBackgroundUploadTask.cpl eller %windir%System32BackgroundUploadTask.cpl (eller SysWOW64 for 64-bit systemer).

Derudover sikres vedholdenhed ved at oprette en opgave med navnet BackgroundUploadTask[junk].job, hvor [junk] repræsenterer en samling af bytes 0x9D og 0xA0.

Navn på opgaveapplikation %windir%System32control.exe, og parameterens værdi er stien til den udskrevne binære fil. Den skjulte opgave kører dagligt.

Konstruktivt set er CPL-filen en DLL med et internt navn ac8e06de0a6c4483af9837d96504127e.dll, der eksporterer funktionen CPlApplet. Denne fil dekrypterer sin eneste ressource {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, derefter indlæser den denne DLL og kalder dens eneste eksport DllEntry.

Backdoor konfigurationsfil

Backdoor konfigurationen er krypteret og indlejret i dens ressourcer. Filstrukturen ligner meget den tidligere.

ESET: nye distributionsmetoder for backdoor fra cybergruppen OceanLotus
Figur 14. Struktur af backdoor konfiguration (KaitaiStruct Visualizer)

På trods af den lignende struktur er værdierne af mange felter blevet opdateret sammenlignet med dataene givet i vores gamle rapport.

Det første element i den binære matrix indeholder DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), identificeret som Tencent. Men da eksportnavnet blev fjernet fra den binære fil, stemmer hasherne ikke overens.

Yderligere undersøgelser

Da vi indsamlede prøver, lagde vi mærke til nogle karakteristika. Den netop beskrevne prøve dukkede op omkring juli 2018, mens andre lignende prøver kom frem for nylig, i midten af januar - begyndelsen af februar 2019. Infektionsvektoren var en SFX-arkiv, der frigav et legitimt lokkedokument og en ondsindet OSH-fil.

Selvom OceanLotus bruger falske tidsstempler, bemærkede vi, at tidsstemplerne for SFX- og OCX-filer altid er ens (0x57B0C36A (08/14/2016 @ 7:15pm UTC) og 0x498BE80F (02/06/2009 @ 7:34am UTC) henholdsvis). Dette indikerer sandsynligvis, at forfatterne har en form for 'bygger', der bruger de samme skabeloner og blot ændrer nogle karakteristika.

Blandt de dokumenter, vi har undersøgt siden begyndelsen af 2018, er der forskellige navne, der peger på de lande, som angriberne er interesseret i:

— The New Contact Information Of Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (fake pdf document of a CV)
— feedback, Rally in USA from July 28-29, 2018.exe

Siden opdagelsen af backdooren {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll og offentliggørelsen af dens analyse af flere forskere har vi set nogle ændringer i malware konfiguration data.

For det første er forfatterne begyndt at fjerne navne fra hjælpe-DLL-filerne (DNSprov.dll og to versioner HttpProv.dll). Derefter stoppede operatørerne med at pakke den tredje DLL (den anden version HttpProv.dll), valgte at integrere kun én.

For det andet er mange af bagdørs konfigurationsfelter blevet ændret, sandsynligvis for at undgå opdagelse, da mange IoCs er blevet tilgængelige. Blandt de vigtige felter, som forfatterne har ændret, er følgende:

  • ændret registreringsafsnit for AppX (se IoCs)
  • mutex kode linje ("def", "abc", "ghi")
  • portnummer

Endelig er der i alle de nye analyserede versioner opstået nye C&C, der er nævnt i afsnittet IoCs.

Konklusioner

OceanLotus fortsætter med at udvikle sig. Cybergruppen fokuserer på at forbedre og udvide værktøjer og lokkemad. Forfatterne camouflerer de ondsindede belastninger med opmærksomme dokumenter, hvis emner er relevante for de forventede ofre. De udvikler nye ordninger samt bruger offentligt tilgængelige værktøjer, såsom Equation Editor udnyttelsen. Desuden forbedrer de værktøjer for at reducere antallet af artefakter, der forbliver på ofrenes maskiner, hvilket dermed mindsker chancen for at blive opdaget af antivirussoftware.

Indikatorer for kompromittering

Kompromitteringsindikatorer samt MITRE ATT&CK-attributter er tilgængelige på Welivesecurity og på GitHub.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster