ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus

Im Beitrag erlĂ€utern wir, wie die Cybergruppe OceanLotus (APT32 und APT-C-00) kĂŒrzlich einen der öffentlich zugĂ€nglichen Exploits fĂŒr CVE-2017-11882, eine Schwachstelle zum Speichermanagement in Microsoft Office, nutzte und wie die Malware der Gruppe in kompromittierten Systemen Persistenz gewĂ€hrleistet, ohne Spuren zu hinterlassen. Weiterhin beschreiben wir, wie die Gruppe seit Anfang 2019 selbstextrahierende Archive zum AusfĂŒhren von Code verwendet hat.

OceanLotus spezialisiert sich auf Cyber-Spionage, wobei die PrioritĂ€tsziele LĂ€nder in SĂŒdostasien sind. Angreifer fĂ€lschen Dokumente, die die Aufmerksamkeit potenzieller Opfer auf sich ziehen, um diese zu ĂŒberzeugen, einen Backdoor zu installieren, und arbeiten auch an der Entwicklung ihrer Werkzeuge. Die Methoden, die zur Erstellung von Ködern verwendet werden, variieren bei unterschiedlichen Angriffen – von Dateien mit "Doppelter Erweiterung", selbstextrahierenden Archiven, Dokumenten mit Makros bis hin zu bekannten Exploits.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus

Nutzung des Exploits im Microsoft Equation Editor

Mitte 2018 fĂŒhrte OceanLotus eine Kampagne unter Ausnutzung der Schwachstelle CVE-2017-11882 durch. Ein Dokument der Cybergruppe wurde von Spezialisten des 360 Threat Intelligence Centers (eine Untersuchung auf Chinesisch) analysiert, das eine detaillierte Beschreibung des Exploits enthĂ€lt. Im Folgenden ein Überblick ĂŒber ein Ă€hnliches bösartiges Dokument.

Erster Schritt

Dokument FW Report on demonstration of former CNRP in Republic of Korea.doc (SHA-1: D1357B284C951470066AAA7A8228190B88A5C7C3) Ă€hnelt dem im obigen Bericht erwĂ€hnten. Es ist interessant, weil es auf Benutzer abzielt, die sich fĂŒr die kambodschanische Politik interessieren (CNRP – Kambodschanische Nationalrettungspartei, die Ende 2017 aufgelöst wurde). Trotz der Erweiterung .doc hat das Dokument das Format RTF (siehe Abbildung unten), enthĂ€lt Junk-Code und ist verzerrt.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 1. „Junk“ im RTF

Trotz der verzerrten Elemente öffnet Word diese RTF-Datei erfolgreich. Wie aus Abbildung 2 ersichtlich ist, gibt es hier die Struktur EQNOLEFILEHDR mit dem Offset 0xC00, gefolgt von einem MTEF-Header und dann einem MTEF-Eintrag (Abbildung 3) fĂŒr die Schriftart.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 2. Werte des FONT-Eintrags

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 3. Format des FONT-Eintrags

Mögliche Überlauf im Feld name, da seine GrĂ¶ĂŸe vor dem Kopieren nicht ĂŒberprĂŒft wird. Ein zu langer Name löst die Schwachstelle aus. Wie aus dem Inhalt der RTF-Datei ersichtlich ist (Offset 0xC26 in Abbildung 2), wird der Puffer mit Shellcode gefĂŒllt, gefolgt von einem Dummy-Befehl (0x90) und einer RĂŒcksprungadresse 0x402114. Die Adresse ist ein Steuerelement in EQNEDT32.exe, der auf die Anweisung hinweist RET. Dies fĂŒhrt dazu, dass die EIP auf den Anfang des Feldes name, das den Shellcode enthĂ€lt, zeigt.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 4. Beginn des Shellcodes des Exploits

Adresse 0x45BD3C speichert eine Variable, die dereferenziert wird, bis sie auf den Zeiger der aktuell geladenen Struktur trifft MTEFData. Hier befindet sich der verbleibende Teil des Shellcodes.

Der Zweck des Shellcodes besteht darin, das zweite Fragment des Shellcodes auszufĂŒhren, das im geöffneten Dokument eingebettet ist. Zuerst versucht der ursprĂŒngliche Shellcode, den Dateihandler des geöffneten Dokuments zu finden, indem er alle Handler des Systems durchlĂ€uft (NtQuerySystemInformation mit dem Argument SystemExtendedHandleInformation) und ĂŒberprĂŒft, ob der PID des Handlers und des PID Prozesses WinWord ĂŒbereinstimmen und ob das Dokument mit der Zugriffsmaske – 0x12019F.

geöffnet wurde. Um die Erkennung des richtigen Handlers (und nicht des Handlers eines anderen offenen Dokuments) zu bestĂ€tigen, wird der Inhalt der Datei mithilfe der Funktion CreateFileMappingabgebildet, und der Shellcode ĂŒberprĂŒft, ob die letzten vier Bytes des Dokuments „yyyy“ entsprechen (Methode Egg Hunting). Sobald eine Übereinstimmung gefunden wird, wird das Dokument in ein temporĂ€res Verzeichnis kopiert (GetTempPath) als ole.dll. Dann werden die letzten 12 Bytes des Dokuments gelesen.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 5. Marker fĂŒr das Ende des Dokuments

Der 32-Bit-Wert zwischen den Markern AABBCCDD und yyyy ist der Offset des nĂ€chsten Shellcodes. Er wird mit der Funktion CreateThreadaufgerufen. Der gleiche Shellcode wurde zuvor von der OceanLotus-Gruppe verwendet. Das Python-Emulationsskript, das wir im MĂ€rz 2018 veröffentlicht haben, funktioniert weiterhin fĂŒr den Dump der zweiten Phase.

Zweite Phase

Extrahierung von Komponenten

Datei- und Verzeichnisnamen werden dynamisch ausgewĂ€hlt. Der Code wĂ€hlt zufĂ€llig den Namen einer ausfĂŒhrbaren oder DLL-Datei in C:Windowssystem32. Dann fragt er seine Ressourcen an und extrahiert das Feld FileDescription , um es als Ordnernamen zu verwenden. Falls dies nicht funktioniert, wĂ€hlt der Code zufĂ€llig einen Ordnernamen aus den Verzeichnissen %ProgramFiles% oder C:Windows (aus GetWindowsDirectoryW). Er vermeidet die Verwendung eines Namens, der mit vorhandenen Dateien in Konflikt stehen könnte, und stellt sicher, dass er die folgenden Wörter nicht enthĂ€lt: windows, von Microsoft, desktop, System, system32 oder syswow64. Wenn das Verzeichnis bereits existiert, wird „NLS_{6 Zeichen}“ zum Namen hinzugefĂŒgt.

Ressource 0x102 wird analysiert und die Dateien werden in %ProgramFiles% oder %AppData%, in einen zufÀllig ausgewÀhlten Ordner entladen. Das Erstellungsdatum wird geÀndert, um die gleichen Werte wie bei kernel32.dll.

Zum Beispiel, hier ist ein Ordner und eine Liste von Dateien, die durch die Auswahl der ausfĂŒhrbaren Datei erstellt wurden. C:Windowssystem32TCPSVCS.exe als Datenquelle.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 6. Extraktion verschiedener Komponenten

Struktur der Ressource 0x102 im Dropper ist ziemlich komplex. Kurz gesagt, er enthÀlt:
— Dateinamen
— GrĂ¶ĂŸe und Inhalt der Dateien
— Komprimierungsformat (COMPRESSION_FORMAT_LZNT1, das von der Funktion RtlDecompressBuffer)

Die erste Datei wird als TCPSVCS.exeherausgegeben, die legitim ist. AcroTranscoder.exe (laut FileDescription, SHA-1: 2896738693A8F36CC7AD83EF1FA46F82F32BE5A3).

Vielleicht haben Sie bemerkt, dass die GrĂ¶ĂŸe einiger DLL-Dateien 11 MB ĂŒberschreitet. Das liegt daran, dass ein großer kontinuierlicher Puffer zufĂ€lliger Daten innerhalb der ausfĂŒhrbaren Datei platziert wird. Es ist nicht ausgeschlossen, dass dies eine Methode ist, um von bestimmten Sicherheitsprodukten nicht entdeckt zu werden.

Sicherung der Persistenz

Ressource 0x101 im Dropper enthÀlt zwei 32-Bit-Ganzzahlen, die bestimmen, wie die Persistenz gewÀhrleistet werden soll. Der Wert der ersten gibt an, wie die Malware die Persistenz ohne Administratorrechte aufrechterhalten wird.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Tabelle 1. Mechanismus der Persistenz ohne Administratorrechte

Der Wert der zweiten Ganzzahl gibt an, wie die Malware die Persistenz mit Administratorrechten sicherstellen soll.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Tabelle 2. Mechanismus der Persistenz mit Administratorrechten

Der Dienstname ist der Dateiname ohne Erweiterung; der angezeigte Name ist der Ordnername, aber wenn dieser bereits existiert, wird eine Zeichenkette "Revision 1" hinzugefĂŒgt (die Zahl wird erhöht, bis ein ungenutzter Name gefunden wird). Die Betreiber haben dafĂŒr gesorgt, dass die Persistenz ĂŒber den Dienst stabil ist – im Falle eines Fehlers sollte der Dienst nach 1 Sekunde neu gestartet werden. Dann wird dem Wert WOW64 des neuen DienstregistrierungsschlĂŒssels der Wert 4 zugewiesen, was angibt, dass es sich um einen 32-Bit-Dienst handelt.

Aufgabe wird ĂŒber mehrere COM-Schnittstellen erstellt: ITaskScheduler, ITask, ITaskTrigger, IPersistFile und ITaskScheduler. Im Wesentlichen erstellt die Malware eine versteckte Aufgabe, legt die Kontoinformationen zusammen mit den Informationen des aktuellen Benutzers oder Administrators fest und setzt dann einen Trigger.

Es handelt sich um eine tĂ€gliche Aufgabe mit einer Dauer von 24 Stunden und Intervallen von 10 Minuten zwischen zwei AusfĂŒhrungen, was bedeutet, dass sie kontinuierlich ausgefĂŒhrt wird.

Schadhafter Bit

In unserem Beispiel ist die ausfĂŒhrbare Datei TCPSVCS.exe (AcroTranscoder.exe) ein legitimes Softwareprogramm, das DLLs lĂ€dt, die zusammen mit ihm entpackt werden. In diesem Fall ist von Interesse Flash Video Extension.dll.

Seine Funktion DLLMain ruft einfach eine andere Funktion auf. Es gibt einige schwammige PrÀdikate:

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 7. Schwammige PrÀdikate

Nach diesen irrefĂŒhrenden ÜberprĂŒfungen erhĂ€lt der Code den Abschnitt .text der Datei TCPSVCS.exe, Ă€ndert seinen Schutz auf PAGE_EXECUTE_READWRITE und ĂŒberschreibt ihn, wobei er fiktive Anweisungen hinzufĂŒgt:

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 8. Folge von Anweisungen

Am Ende wird an die Adresse der Funktion FLVCore::Uninitialize(void), die exportiert wird Flash Video Extension.dll, eine Anweisung CALL. Das bedeutet, dass nach dem Laden der schadhaften DLL, wenn die Laufzeit WinMain in TCPSVCS.exeaufruft, der Anweisungszeiger auf NOP zeigt, was zu FLVCore::Uninitialize(void)fĂŒhrt, dem nĂ€chsten Schritt.

Die Funktion erstellt einfach ein Mutex, beginnend mit {181C8480-A975-411C-AB0A-630DB8B0A221}, gefolgt von dem aktuellen Benutzernamen. Dann liest sie die entpackte Datei mit der Erweiterung *.db3, die positionsunabhĂ€ngigen Code enthĂ€lt, und verwendet CreateThread zum AusfĂŒhren des Inhalts.

Der Inhalt der Datei *.db3 stellt Shellcode dar, der typischerweise von der OceanLotus-Gruppe verwendet wird. Wir haben erneut erfolgreich die Payload entpackt, indem wir ein Emulator-Skript verwendet haben, das wir veröffentlicht haben. auf GitHub.

Das Skript extrahiert die letzte Phase. Dieses Komponente ist ein Backdoor, den wir bereits analysiert haben in der vorherigen Untersuchung von OceanLotus.Das lĂ€sst sich an der GUID {A96B020F-0000-466F-A96D-A91BBF8EAC96} der BinĂ€rdatei erkennen. Die Konfiguration der Malware ist immer noch im PE-Ressource verschlĂŒsselt. Sie hat eine Ă€hnliche Konfiguration, aber die C&C-Server unterscheiden sich von frĂŒher:

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

Die OceanLotus-Gruppe zeigt erneut eine Kombination verschiedener Techniken, um Erkennung zu vermeiden. Sie sind mit einem „verbesserten“ Infektionsprozess zurĂŒckgekehrt. Durch die Wahl zufĂ€lliger Namen und das AuffĂŒllen ausfĂŒhrbarer Dateien mit zufĂ€lligen Daten reduzieren sie die Anzahl der vertrauenswĂŒrdigen IoCs (basierend auf Hashes und Dateinamen). Außerdem mĂŒssen die Angreifer durch die Verwendung von Drittanbieter-DLL-Downloads nur die legitime BinĂ€rdatei AcroTranscoder.

Selbstentpackende Archive

Nach den RTF-Dateien hat die Gruppe auf selbstentpackende (SFX) Archive mit verbreiteten Dokumentensymbolen umgestellt, um den Benutzer noch mehr zu verwirren. DarĂŒber berichtete Threatbook (Link auf Chinesisch). Nach dem Start werden selbstentpackende RAR-Dateien zurĂŒckgesetzt und DLLs mit der Erweiterung .ocx ausgefĂŒhrt, deren endgĂŒltige Nutzlast zuvor dokumentiert wurde. {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll. Seit Mitte Januar 2019 verwendet OceanLotus diese Technik erneut, Ă€ndert jedoch im Laufe der Zeit einige Konfigurationen. In diesem Abschnitt werden wir ĂŒber die Technik und Änderungen berichten.

Erstellung des Lockvogel.

Dokument THICH-THONG-LAC-HANH-THAP-THIEN-VIET-NAM (1).EXE (SHA-1: AC10F5B1D5ECAB22B7B418D6E98FA18E32BBDEAB) wurde 2018 zum ersten Mal gefunden. Diese SFX-Datei wurde clever erstellt – in der Beschreibung (Version Info) steht, dass dies ein JPEG-Bild ist. Das SFX-Skript sieht folgendermaßen aus:

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 9. SFX-Befehle

Die Malware setzt zurĂŒck {9ec60ada-a200-4159-b310-8071892ed0c3}.ocx (SHA-1: EFAC23B0E6395B1178BCF7086F72344B24C04DCC), sowie ein Bild 2018 thich thong lac.jpg.

Das Lockvogelbild sieht folgendermaßen aus:

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 10. Lockvogelbild

Möglicherweise ist Ihnen aufgefallen, dass die ersten beiden Zeilen im SFX-Skript die OCX-Datei zweimal aufrufen, aber das ist kein Fehler.

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

Der Kontrollfluss der OCX-Datei Ă€hnelt stark anderen Komponenten von OceanLotus – viele Anweisungsfolgen JZ/JNZ und PUSH/RET, wechseln sich mit Junk-Code ab.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 11. Obfuskierter Code

Nach der Filterung des Junk-Codes exportiert DllRegisterServer, aufgerufen mit regsvr32.exe, sieht folgendermaßen aus:

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 12. Hauptcode des Installationsprogramms

Im Wesentlichen setzt der erste Aufruf DllRegisterServer den Registrierungseintrag HKCUSOFTWAREClassesCLSID{E08A0F4B-1F65-4D4D-9A09-BD4625B9C5A1}Model auf den verschlĂŒsselten Offset in DLL (0x10001DE0).

Wenn die Funktion ein zweites Mal aufgerufen wird, liest sie denselben Wert und fĂŒhrt ihn an dieser Adresse aus. Von hier wird der Ressourceninhalt gelesen und viele Aktionen im Arbeitsspeicher ausgefĂŒhrt.

Der Shellcode ist derselbe PE-Lader, der in frĂŒheren Kampagnen von OceanLotus verwendet wurde. Er kann mit unserem Skript. Am Ende setzt er db293b825dcc419ba7dc2c49fa2757ee.dll, lĂ€dt ihn in den Speicher und fĂŒhrt ihn aus. DllEntry.

DLL extrahiert den Inhalt ihrer Ressource, entschlĂŒsselt (AES-256-CBC) und entpackt (LZMA) ihn. Die Ressource hat ein spezifisches Format, das leicht dekompiliert werden kann.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 13. Struktur der Installationskonfiguration (KaitaiStruct Visualizer)

Die Konfiguration ist explizit festgelegt – je nach Berechtigungsstufe werden die BinĂ€rdaten in %appdata%IntellogsBackgroundUploadTask.cpl oder %windir%System32BackgroundUploadTask.cpl (oder SysWOW64 fĂŒr 64-Bit-Systeme.)

Die Persistenz wird durch die Erstellung einer Aufgabe mit dem Namen BackgroundUploadTask[junk].job

[junk] besteht aus einer Bytefolge 0x9D und 0xA0.

Der Anwendungsname der Aufgabe %windir%System32control.exe, wĂ€hrend der Parameterwert der Pfad zur hochgeladenen BinĂ€rdatei ist. Die versteckte Aufgabe wird jeden Tag ausgefĂŒhrt.

Konstruktiv ist die CPL-Datei eine DLL mit dem internen Namen ac8e06de0a6c4483af9837d96504127e.dll, die die Funktion CPlAppletexportiert. Diese Datei entschlĂŒsselt ihre einzige Ressource {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll, lĂ€dt dann diese DLL und ruft ihr einziges Export auf. DllEntry.

Die Konfigurationsdatei des Backdoors

Die Backdoor-Konfiguration ist verschlĂŒsselt und in ihren Ressourcen eingebettet. Die Struktur der Konfigurationsdatei Ă€hnelt stark der vorherigen.

ESET: Neue Methoden zur Lieferung von Backdoors der Cybergruppe OceanLotus
Abbildung 14. Die Struktur der Backdoor-Konfiguration (KaitaiStruct Visualizer)

Trotz der Àhnlichen Struktur wurden die Werte vieler Felder im Vergleich zu den Angaben in unserem alten Bericht aktualisiert..

Das erste Element des BinĂ€rarrays enthĂ€lt die DLL (HttpProv.dll MD5: 2559738D1BD4A999126F900C7357B759), identifiziert Tencent. Da jedoch der Exportname aus der BinĂ€rdatei entfernt wurde, stimmen die Hashes nicht ĂŒberein.

ZusÀtzliche Untersuchungen

Bei der Sammlung von Proben haben wir auf einige Merkmale geachtet. Das gerade beschriebene Muster trat ungefÀhr im Juli 2018 auf, wÀhrend andere Àhnliche Muster erst vor kurzem, Mitte Januar bis Anfang Februar 2019, erschienen. Als Infektionsvektor wurde ein SFX-Archiv verwendet, das ein legitimes Lockvogel-Dokument und eine bösartige OCX-Datei ablegt.

Obwohl OceanLotus gefĂ€lschte Zeitstempel verwendet, haben wir festgestellt, dass die Zeitstempel der SFX- und OCX-Dateien immer gleich sind (0x57B0C36A (14.08.2016 @ 19:15 UTC) und 0x498BE80F (06.02.2009 @ 07:34 UTC) respektive). Wahrscheinlich deutet das darauf hin, dass die Autoren einen „Builder“ verwenden, der die gleichen Vorlagen nutzt und einfach einige Merkmale Ă€ndert.

Unter den Dokumenten, die wir seit Anfang 2018 untersucht haben, finden sich verschiedene Titel, die auf die fĂŒr die Angreifer interessanten LĂ€nder hinweisen:

— Die neuen Kontaktinformationen der kambodschanischen Medien (Neu).xls.exe
— 李ć»ș驙 (Lebenslauf).exe (falsches PDF-Dokument eines Lebenslaufs)
— Feedback, Rally in den USA vom 28.-29. Juli 2018.exe

Seit der Entdeckung der Backdoor {A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll und der Veröffentlichung ihrer Analyse durch mehrere Forscher haben wir einige Änderungen in den Konfigurationsdaten der Malware beobachtet.

Erstens haben die Autoren begonnen, Namen aus den unterstĂŒtzenden DLLs zu entfernen (DNSprov.dll und zwei Versionen HttpProv.dll). Dann hörten die Betreiber auf, die dritte DLL (zweite Version HttpProv.dll), und wĂ€hlten die Integration nur einer.

Zweitens wurden viele Konfigurationsfelder des Backdoors geĂ€ndert, wahrscheinlich um Entdeckung zu vermeiden, da viele IoCs verfĂŒgbar wurden. Zu den wichtigen Feldern, die von den Autoren geĂ€ndert wurden, gehören folgende:

  • geĂ€nderter AppX-Registry-Bereich (siehe IoCs)
  • Mutex-Codierungszeichenfolge („def“, „abc“, „ghi“)
  • Portnummer

Schließlich wurden in allen neuen analysierten Versionen neue C&C-Server entdeckt, die im Abschnitt IoCs aufgefĂŒhrt sind.

Das DBMS Tarantool ist ein attraktives, zukunftstrÀchtiges Produkt zur Erstellung von hochbelasteten Anwendungen.

OceanLotus entwickelt sich weiter. Die Cybergruppe konzentriert sich darauf, ihre Werkzeuge und TĂ€uschungen weiter zu verbessern und auszubauen. Die Autoren tarnen bösartige Nutzlasten mit auffĂ€lligen Dokumenten, deren Themen fĂŒr die beabsichtigten Opfer relevant sind. Sie entwickeln neue Schema und nutzen auch öffentlich verfĂŒgbare Werkzeuge, wie den Exploit des Equation Editors. DarĂŒber hinaus verbessern sie die Werkzeuge, um die Anzahl der Artefakte, die auf den Maschinen der Opfer bleiben, zu minimieren und somit die Chance auf eine Entdeckung durch Antivirus-Software zu verringern.

Indikatoren fĂŒr Kompromittierung

Indikatoren fĂŒr Kompromittierung sowie MITRE ATT&CK-Attribute sind verfĂŒgbar auf Welivesecurity und auf GitHub.

Quelle: habr.com

60GB SSD 8Gb DDR4