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 , 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.

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 (), 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.

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.

Figur 2. FONT Entrée WÀerter

Figure 3.
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.

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.
![]()
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. , 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 (Оз GetWindowsDirectoryW). ĐĐœ ĐžĐ·Đ±Đ”ĐłĐ°Đ”Ń ĐžŃĐżĐŸĐ»ŃĐ·ĐŸĐČĐ°ĐœĐžŃ ĐžĐŒĐ”ĐœĐž, ĐșĐŸŃĐŸŃĐŸĐ” ĐŒĐŸĐ¶Đ”Ń ĐșĐŸĐœŃлОĐșŃĐŸĐČаŃŃ Ń ŃŃŃĐ”ŃŃĐČŃŃŃĐžĐŒĐž ŃаĐčĐ»Đ°ĐŒĐž, Đž ŃĐ»Đ”ĐŽĐžŃ Đ·Đ° ŃĐ”ĐŒ, ŃŃĐŸĐ±Ń ĐŸĐœĐŸ ĐœĐ” ŃĐŸĐŽĐ”ŃĐ¶Đ°Đ»ĐŸ ŃлДЎŃŃŃОД ŃĐ»ĐŸĐČа: 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.

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.

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.

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:

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:

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 .
De Skript extrahéiert déi lescht Etapp. Dëse Bestanddeel ass eng Backdoor, déi mir scho analyséiert hunn . 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 (). 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:

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:

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.

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

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 . 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.

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.

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 .
Dat éischt Element vun der binÀrer Array enthÀlt eng DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), . 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 Đž .
Source: will.com
