ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp

An dësem Post wäerte mir Iech soen wéi d'Cybergrupp OceanLotus (APT32 an APT-C-00) viru kuerzem ee vun den ëffentlech verfügbaren Ausnotzen benotzt huet fir CVE-2017-11882, Gedächtnis Korruptioun Schwachstelle am Microsoft Office, a wéi d'Malware vun der Grupp Persistenz op kompromittéiert Systemer erreecht ouni eng Spuer ze hannerloossen. Als nächst wäerte mir beschreiwen wéi zanter dem Ufank vum 2019 de Grupp selbstextraktéierend Archiven benotzt fir Code ze lafen.

OceanLotus spezialiséiert op Cyberspionage, mat prioritär Ziler sinn Länner a Südostasien. Ugräifer verschmieden Dokumenter déi d'Opmierksamkeet vu potenziellen Affer zéien fir se ze iwwerzeegen fir d'Hannerdier auszeféieren, a schaffen och un der Entwécklung vun Tools. D'Methoden, déi benotzt gi fir Honeypots ze kreéieren, variéieren iwwer Attacken, vu "Double-Extension" Dateien, selbst extrahéierend Archiven, Dokumenter mat Makroen, bis bekannten Ausnotzen.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp

Benotzt en Exploit am Microsoft Equation Editor

Mëtt 2018 huet OceanLotus eng Kampagne gemaach déi d'CVE-2017-11882 Schwachstelle exploitéiert. Ee vun de béiswëlleg Dokumenter vun der Cybergrupp gouf vun Spezialisten vum 360 Threat Intelligence Center analyséiert (Fuerschung op Chinesesch), dorënner eng detailléiert Beschreiwung vum Exploit. De Post hei drënner enthält en Iwwerbléck iwwer sou e béiswëlleg Dokument.

Déi éischt Stuf

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) ass ähnlech wéi déi an der Etude uewen ernimmt. Et ass interessant well et u Benotzer riicht, déi an der kambodschanescher Politik interesséiert sinn (CNRP - Cambodia National Rescue Party, um Enn vum 2017 opgeléist). Trotz der .doc-Extensioun ass d'Dokument am RTF-Format (kuckt d'Bild hei ënnen), enthält Müllcode, an ass och verzerrt.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 1. "Garbage" an RTF

Och wann et verréckt Elementer gëtt, mécht Word dës RTF-Datei erfollegräich op. Wéi Dir an der Figur 2 kënnt gesinn, gëtt et eng EQNOLEFILEHDR Struktur am Offset 0xC00, gefollegt vun engem MTEF Header, an dann eng MTEF Entrée (Figur 3) fir d'Schrëft.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 2. FONT Entrée Wäerter

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figure 3. FONT Opnam Format

Méiglech Iwwerschwemmung am Feld Numm, well seng Gréisst net virun der Kopie gepréift gëtt. En Numm deen ze laang ass léist eng Schwachstelle aus. Wéi Dir aus dem Inhalt vun der RTF-Datei kënnt gesinn (Offset 0xC26 an der Figur 2), ass de Puffer mat Shellcode gefëllt gefollegt vun engem Dummy Kommando (0x90) an zréck Adress 0x402114. D'Adress ass en Dialog Element an EQNEDT32.exe, Instruktioune uginn RET. Dëst verursaacht EIP op den Ufank vum Feld ze weisen Nummenthält de Shellcode.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 4. Ufank vun der exploit shellcode

Adress 0x45BD3C späichert eng Variabel déi dereferenzéiert gëtt bis se e Pointer op déi aktuell gelueden Struktur erreecht MTEFData. De Rescht vum Shellcode ass hei.

Den Zweck vum Shellcode ass dat zweet Stéck Shellcode auszeféieren, deen am oppene Dokument agebonnen ass. Den ursprénglechen Shellcode probéiert als éischt de Dateideskriptor vum oppenen Dokument ze fannen andeems Dir iwwer all Systemdeskriptoren (NtQuerySystemInformation mat engem Argument SystemExtendedHandleInformation) a kontrolléiert ob se passen Colombera Beschreiwung an Colombera Prozess WinWord an ob d'Dokument mat enger Zougangsmaske opgemaach gouf - 0x12019F.

Fir ze bestätegen datt de richtege Grëff fonnt gouf (an net de Grëff fir en anert opgemaacht Dokument), gëtt den Inhalt vun der Datei mat der Funktioun ugewisen CreateFileMapping, an de Shellcode kontrolléiert ob déi lescht véier Bytes vum Dokument mat "yyyy"(Eeër Juegd Method). Wann e Match fonnt gëtt, gëtt d'Dokument an en temporäre Dossier kopéiert (GetTempPath) Wéi ole.dll. Da ginn déi lescht 12 Bytes vum Dokument gelies.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 5. Enn vun Dokument Marker

32-Bit Wäert tëscht Marker AABBCCDD и yyyy ass den Offset vum nächste Shellcode. Et gëtt genannt d'Funktioun ze benotzen CreateThread. Extrahéiert dee selwechte Shellcode dee fréier vun der OceanLotus Grupp benotzt gouf. Python Emulatioun Skript, déi mir am Mäerz 2018 verëffentlecht hunn, funktionnéiert nach ëmmer fir déi zweet Stuf Dump.

Déi zweet Stuf

Ewechzehuelen Komponente

Datei- an Verzeichnisnimm ginn dynamesch gewielt. De Code wielt zoufälleg den Numm vun der ausführbarer oder DLL Datei an C:Windowssystem32. Et mécht dann eng Ufro un seng Ressourcen an retrieves d'Feld FileDescription als Dossier Numm ze benotzen. Wann dëst net funktionnéiert, wielt de Code zoufälleg en Dossiernumm aus den Verzeichnisser %ProgramFiles% oder C:Windows (vum GetWindowsDirectoryW). Et vermeit en Numm ze benotzen, dee mat existéierende Dateien konflikt kéint a garantéiert datt et net déi folgend Wierder enthält: windows, Microsoft, desktop, system, system32 oder syswow64. Wann de Verzeichnis schonn existéiert, gëtt "NLS_{6 Zeechen}" un den Numm bäigefüügt.

Ressource 0x102 gëtt analyséiert an d'Dateie gi gedumpt %ProgramFiles% oder %AppData%, zu engem zoufälleg ausgewielten Dossier. Geännert Kreatiounszäit fir déiselwecht Wäerter ze hunn wéi kernel32.dll.

Zum Beispill, hei ass den Dossier an d'Lëscht vun de Dateien erstallt andeems Dir den ausführbar auswielen C:Windowssystem32TCPSVCS.exe als Datenquell.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 6. Verschidde Komponente extrahéieren

Ressource Struktur 0x102 an engem Dropper ass zimlech komplex. An enger Nossschuel enthält et:
- Dateinumm
- Dateigréisst an Inhalt
- Kompressiounsformat (COMPRESSION_FORMAT_LZNT1, benotzt vun der Funktioun RtlDecompressBuffer)

Déi éischt Datei gëtt zréckgesat als TCPSVCS.exe, wat legitim ass AcroTranscoder.exe (geméiss FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Dir hutt vläicht gemierkt datt e puer DLL Dateien méi grouss wéi 11 MB sinn. Dëst ass well e grousse kontinuéierleche Puffer vun zoufälleg Daten an der ausführbarer Datei plazéiert ass. Et ass méiglech datt dëst e Wee ass fir Detektioun vu Sécherheetsprodukter ze vermeiden.

Ausdauer garantéieren

Ressource 0x101 am Dropper enthält zwee 32-Bit ganz Zuelen déi spezifizéieren wéi d'Persistenz soll geliwwert ginn. De Wäert vun der éischter spezifizéiert wéi d'Malware ouni Administratorrechter bestoe bleift.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Dësch 1. Persistenz Mechanismus ouni Administrator Rechter

De Wäert vum zweete Ganzt spezifizéiert wéi d'Malware d'Persistenz sollt erreechen wann se mat Administratorrechter lafen.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Dësch 2. Persistenz Mechanismus mat Administrator Rechter

De Servicenumm ass den Dateinumm ouni Extensioun; den Affichage Numm ass den Numm vum Dossier, awer wann et scho gëtt, gëtt d'String " derbäi bäigefüügtRevision 1” (d'Zuel klëmmt bis en onbenotzten Numm fonnt gëtt). D'Bedreiwer hunn dofir gesuergt datt d'Persistenz duerch de Service robust war - am Fall vun engem Ausfall, sollt de Service no 1 Sekonn nei gestart ginn. Dann de Wäert WOW64 De Registry-Schlëssel vum neie Service ass op 4 gesat, wat beweist datt et en 32-Bit Service ass.

Eng geplangten Aufgab gëtt duerch verschidde COM-Interfaces erstallt: ITaskScheduler, ITask, ITaskTrigger, IPersistFile и ITaskScheduler. Wesentlech erstellt d'Malware eng verstoppt Aufgab, setzt d'Kontoinformatioun zesumme mat der aktueller Benotzer- oder Administratorinformatioun, a setzt dann den Ausléiser.

Dëst ass eng deeglech Aufgab mat enger Dauer vu 24 Stonnen an Intervalle tëscht zwou Ausféierungen vun 10 Minutten, dat heescht datt se kontinuéierlech leeft.

Béiswëlleg bëssen

An eisem Beispill, déi ausführbar Datei TCPSVCS.exe (AcroTranscoder.exe) ass eng legitim Software déi DLLs lued déi zesumme mat zréckgesat ginn. An dësem Fall ass et interessant Flash Video Extension.dll.

Seng Funktioun DLLMain rifft just eng aner Funktioun. E puer fuzzy Prädikate sinn präsent:

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 7. Fuzzy Prädikater

No dëse irféierende Kontrollen kritt de Code eng Sektioun .text Datei TCPSVCS.exe, ännert seng Verteidegung un PAGE_EXECUTE_READWRITE an iwwerschreift et andeems Dir Dummy Instruktiounen bäidréit:

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 8. Sequenz vun Uweisungen

Um Enn op d'Funktioun Adress FLVCore::Uninitialize(void), exportéiert Flash Video Extension.dll, Instruktioun gëtt dobäi CALL. Dëst bedeit datt no der béiswëlleg DLL gelueden ass, wann d'Runtime rifft WinMain в TCPSVCS.exe, wäert den Instruktiounszeiger op NOP weisen, verursaacht FLVCore::Uninitialize(void), nächst Etapp.

D'Funktioun erstellt einfach e Mutex mat {181C8480-A975-411C-AB0A-630DB8B0A221}gefollegt vum aktuelle Benotzernumm. Et liest dann de gedumpte * .db3-Datei, déi Positiounonofhängege Code enthält, a benotzt CreateThread den Inhalt auszeféieren.

Den Inhalt vun der *.db3 Datei ass de Shellcode deen d'OceanLotus Grupp typesch benotzt. Mir hunn erëm erfollegräich seng Notzlaascht mat dem Emulator Skript ausgepackt, dee mir publizéiert hunn op GitHub.

De Skript extrahéiert déi lescht Etapp. Dëse Bestanddeel ass eng Backdoor, déi mir scho analyséiert hunn virdrun OceanLotus Studie. Dëst kann vun der GUID bestëmmt ginn {A96B020F-0000-466F-A96D-A91BBF8EAC96} binär Datei. D'Malware Konfiguratioun ass nach ëmmer an der PE Ressource verschlësselt. Et huet ongeféier déiselwecht Konfiguratioun, awer d'C&C Serveren sinn anescht wéi déi virdrun:

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

D'OceanLotus Team weist erëm eng Kombinatioun vu verschiddenen Techniken fir Detektioun ze vermeiden. Si sinn zréck mat engem "raffinéierte" Diagramm vum Infektiounsprozess. Andeems se zoufälleg Nimm auswielen an Ausféierbaren mat zoufälleg Daten ausfëllen, reduzéieren se d'Zuel vun zouverlässeg IoCs (baséiert op Hashes an Dateinumm). Ausserdeem, dank der Notzung vun Drëtt Partei DLL Luede, Ugräifer brauchen nëmmen déi legitim binär ewechzehuelen AcroTranscoder.

Self-Extraktioun Archiver

No RTF-Dateien ass d'Grupp op selbstextraktéierend (SFX) Archiven mat gemeinsame Dokumentikonen geplënnert fir de Benotzer weider duercherneen ze bréngen. Threatbook huet iwwer dëst geschriwwen (Link op Chinesesch). Beim Start ginn selbstextraktéierend RAR-Dateien erofgelooss an DLLs mat enger .ocx Extensioun ginn ausgefouert, déi lescht Notzlaascht ass virdru dokumentéiert. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Zënter Mëtt Januar 2019 hunn OceanLotus dës Technik nei benotzt, awer e puer Konfiguratiounen iwwer Zäit änneren. An dëser Rubrik wäerte mir iwwer d'Technik an Ännerungen schwätzen.

Schafen eng Lure

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) gouf fir d'éischt am Joer 2018 fonnt. Dës SFX Datei gouf verstänneg erstallt - an der Beschreiwung (Versioun Info) et seet datt dëst e JPEG Bild ass. De SFX Skript gesäit esou aus:

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 9. SFX Kommandoen

D'Malware gëtt zréckgesat {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), souwéi eng Foto 2018 thich thong lac.jpg.

D'Decoy Bild gesäit esou aus:

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 10. Decoy Bild

Dir hutt vläicht gemierkt datt déi éischt zwou Zeilen am SFX Skript d'OCX Datei zweemol nennen, awer dëst ass kee Feeler.

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

De Kontrollfloss vun enger OCX Datei ass ganz ähnlech wéi aner OceanLotus Komponenten - vill Kommandosequenzen JZ/JNZ и PUSH/RET, ofwiesselnd mat Gerempels Code.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 11. Obfuscated Code

Nodeems Dir de Junkcode ausfiltert, exportéiert DllRegisterServer, genannt regsvr32.exe, wéi follegt:

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 12. Basis Installateur Code

Prinzipiell um éischten Uruff DllRegisterServer export setzt Registry Wäert HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model fir verschlësselte Offset an DLL (0x10001DE0).

Wann d'Funktioun eng zweete Kéier genannt gëtt, liest se dee selwechte Wäert a leeft op där Adress aus. Vun hei aus ginn d'Ressource a vill Aktiounen am RAM gelies an ausgefouert.

De Shellcode ass dee selwechte PE Loader deen a vergaangene OceanLotus Kampagnen benotzt gouf. Et kann emuléiert ginn benotzt eisem Skript. Um Enn setzt hien zréck db293b825dcc419ba7dc2c49fa2757ee.dll, lued et an d'Erënnerung an leeft aus DllEntry.

D'DLL extrahéiert den Inhalt vu senger Ressource, entschlësselt (AES-256-CBC) an dekompriméiert (LZMA) et. D'Ressource huet e spezifescht Format dat einfach ze dekompiléieren ass.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 13. Installateur Konfiguratioun Struktur (KaitaiStruct Visualizer)

D'Konfiguratioun ass explizit spezifizéiert - ofhängeg vum Privilegniveau ginn binär Daten geschriwwe ginn %appdata%IntellogsBackgroundUploadTask.cpl oder %windir%System32BackgroundUploadTask.cpl (oder SysWOW64 fir 64-Bit Systemer).

Weider Persistenz gëtt gesuergt andeems Dir eng Aufgab mam Numm erstellt BackgroundUploadTask[junk].jobwou [junk] stellt eng Rei vu Bytes duer 0x9D и 0xA0.

Aufgab Applikatioun Numm %windir%System32control.exe, an de Parameterwäert ass de Wee op déi erofgeluede binär Datei. Déi verstoppt Aufgab leeft all Dag.

Strukturell ass eng CPL Datei eng DLL mat engem internen Numm ac8e06de0a6c4483af9837d96504127e.dll, déi eng Funktioun exportéiert CPlApplet. Dëse Fichier entschlësselt seng eenzeg Ressource {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, lued dann dës DLL a rifft säin eenzegen Export DllEntry.

Backdoor Configuratiounsdatei

D'Backdoor Konfiguratioun ass verschlësselt an a seng Ressourcen agebonnen. D'Struktur vun der Konfiguratiounsdatei ass ganz ähnlech wéi déi virdrun.

ESET: nei Backdoor Liwwerung Schemae fir den OceanLotus Cyber ​​​​Grupp
Figur 14. Backdoor Configuratioun Struktur (KaitaiStruct Visualizer)

Och wann d'Struktur ähnlech ass, sinn vill vun de Feldwäerter aktualiséiert ginn vun deenen, déi an der gewisen ginn eisen ale Bericht.

Dat éischt Element vun der binärer Array enthält eng DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), vun Tencent identifizéiert. Awer well den Export Numm aus dem Binär geläscht gouf, passen d'Hashes net.

Zousätzlech Fuerschung

Beim Sammelen vun Echantillon hu mir e puer Charakteristiken gemierkt. D'Exemplare just beschriwwen erschéngt ronderëm Juli 2018, an anerer wéi et erschéngen sou viru kuerzem wéi Mëtt Januar bis Ufank Februar 2019. D'SFX Archiv gouf als Infektiounsvektor benotzt, e legitimen Decoy Dokument an eng béiswëlleg OSX Datei erof.

Och wann OceanLotus gefälschte Zäitstempel benotzt, hu mir gemierkt datt d'Zäitstempele vu SFX an OCX Dateien ëmmer d'selwecht sinn (0x57B0C36A (08/14/2016 @ 7:15 UTC) an 0x498BE80F (02/06/2009 @ 7:34am UTC) respektiv). Dëst beweist wahrscheinlech datt d'Auteuren eng Zort "Designer" hunn, déi déiselwecht Schabloune benotzt an einfach e puer Charakteristiken ännert.

Ënnert den Dokumenter, déi mir zënter dem Ufank vum 2018 studéiert hunn, ginn et verschidden Nimm, déi d'Länner vun Interessi un den Ugräifer uginn:

- Déi nei Kontaktinformatioun vu Cambodia Media(New).xls.exe
— 李建香 (个人简历).exe (gefälschte pdf Dokument vun engem CV)
- Feedback, Rally an den USA vum 28.-29. Juli 2018.exe

Zënter der Hannerdier entdeckt gouf {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll an d'Publikatioun vu senger Analyse vu verschiddene Fuerscher, hu mir e puer Ännerungen an de Malware Konfiguratiounsdaten observéiert.

Als éischt hunn d'Auteuren ugefaang Nimm vun den Helper DLLs ze läschen (DNSprov.dll an zwou Versiounen HttpProv.dll). D'Betreiber hunn dunn opgehalen déi drëtt DLL (déi zweet Versioun HttpProv.dll), wielt nëmmen eng embed.

Zweetens, vill Backdoor Konfiguratiounsfelder goufen geännert, méiglecherweis fir d'Erkennung z'evitéieren wéi vill IoCs verfügbar sinn. Wichteg Felder geännert vun den Auteuren enthalen:

  • AppX Registry Schlëssel geännert (kuckt IoCs)
  • mutex Encoding String ("def", "abc", "ghi")
  • port Zuel

Endlech, all nei Versiounen analyséiert hunn nei C&Cs an der IoCs Sektioun opgezielt.

Conclusiounen

OceanLotus weider ze entwéckelen. De Cyber ​​​​Grupp konzentréiert sech op d'Verfeinerung an Ausbau vun Tools a Köder. Autoren verkleeden béiswëlleg Notzlaascht mat opmierksamste Dokumenter deenen hir Thema relevant ass fir déi virgesinn Affer. Si entwéckelen nei Schemaen a benotzen och ëffentlech verfügbar Tools, sou wéi den Equation Editor Exploit. Ausserdeem verbesseren se Tools fir d'Zuel vun den Artefakte ze reduzéieren déi op de Maschinnen vun den Affer bleiwen, an doduerch d'Chance vun der Detektioun duerch Antivirus Software ze reduzéieren.

Indikatoren vum Kompromëss

Indikatoren vu Kompromëss souwéi MITER ATT&CK Attributer sinn verfügbar op Welivesecurity и op GitHub.

Source: will.com

Setzt e Commentaire