Die OceanLotus-Gruppe (auch bekannt als APT32 und APT-C-00) ist bekannt für ihre Angriffe in Ostasien. Im vergangenen Jahr wurde eine Reihe von Studien zur Arbeit der Gruppe veröffentlicht, darunter
CyberReason- Dokumente, eine
FireEye- Überprüfung und eine Beschreibung des Wasserlochangriffs von
Volexity . Wie wir sehen können, aktualisiert die Gruppe Backdoors, Infrastruktur und Infektionsvektoren.
OceanLotus richtet sich weiterhin an Unternehmen und Regierungsbehörden in Ostasien. Laut ESET-Telemetrie liegen die vorrangigen Ziele von OceanLotus in Vietnam, Laos, Kambodscha und auf den Philippinen.
Vor einigen Monaten haben wir eine ihrer neuesten Hintertüren entdeckt und analysiert. Es werden verschiedene Tools implementiert, die die Analyse erschweren und eine Erkennung vermeiden. Wir werden sie in einem Beitrag diskutieren.

Verteilung
Angreifer verwenden verschiedene Methoden, um das Opfer davon zu überzeugen, eine böswillige Pipette zu starten.
Doppelte Erweiterungen und gefälschte Anwendungssymbole (Word, PDF usw.)
Dropper verbreiten sich wahrscheinlich über E-Mail-Anhänge. Wir haben die folgenden Dateinamen beobachtet:
-
Mi17 Technical issues - Phonesack Grp.exe
(Mi-17 - Russisches Hubschraubermodell)
-
Chi tiet don khieu nai gui saigontel.exe
(übersetzt aus dem Vietnamesischen - „Einzelheiten der an Saigontel gesendeten Forderung“, Saigontel - vietnamesisches Telekommunikationsunternehmen)
-
Updated AF MOD contract - Jan 2018.exe
-
remove_pw_Reschedule of CISD Regular Meeting.exe
-
Sorchornor_with_PM_-_Sep_2017.exe
-
20170905-Evaluation Table.xls.exe
-
CV_LeHoangThing.doc.exe
(gefälschte Lebensläufe wurden auch in Kanada gefunden)
Alle diese Dateien haben etwas gemeinsam - das Starten eines passwortgeschützten Köderdokuments. Es ist unklar, ob das Passwort irgendwo in den Daten des übermittelten Briefes enthalten ist oder ob das Dokument nicht geöffnet werden soll.
Gefälschte Installer
In Wasserlochkampagnen wurden mehrere gefälschte Installateure entdeckt, die sich als Installateure oder Software-Updates ausgeben. Ein Beispiel ist das von 360 Labs on
Freebuf (auf Chinesisch) beschriebene neu verpackte Firefox-Installationsprogramm.
Ein weiteres Beispiel, das wir gesehen haben, hieß
RobototFontUpdate.exe
. Es hat sich wahrscheinlich über kompromittierte Websites verbreitet, aber wir haben keine ausreichenden Beweise dafür.
Alle beschriebenen Dateien, unabhängig davon, ob sie per E-Mail verteilt oder beim Besuch einer gefährdeten Site heruntergeladen wurden, lieferten dieselbe Backdoor-Komponente. In einem Beitrag werden wir ein Beispiel von
RobototFontUpdate.exe
analysieren und zeigen, wie es gelingt, eine böswillige Nutzlast auf dem System auszuführen.
Technische Analyse
Der Installations- und Ausführungsprozess hängt von der mehrschichtigen Verschleierung ab, nämlich der Komponentenverschlüsselung, der Rekonstruktion von PE-Dateien, dem Laden von Shellcode und dem Laden von Seiten. Letzteres wurde in der
vorherigen Korplug-Studie von ESET beschrieben.
Fortschrittskontrolle
Der Angriff besteht aus zwei Teilen: einer Pipette und einer Trägerrakete. Jeder Schritt jedes Teils des Prozesses wird im entsprechenden Abschnitt ausführlich erläutert. Die beiden folgenden Diagramme geben einen kurzen Überblick über den Gesamtfortschritt der Malware.
Abbildung 1. Der Fortschritt der Pipette
Abbildung 2. Fortschritt der HintertürFast alle diese Komponenten sind verschleiert. Die Verschleierung basiert auf komplementären bedingten Paarübergangsbefehlen. Für jede der Formen: JZ / JNZ, JP / JNP, JO / JNO usw. führt jedes Paar einen Übergang zum gleichen Ziel durch. Die Sequenz ist mit Junk-Code durchsetzt, der den Stapelzeiger verwendet, aber den Wert des bedingten Flags nicht ändert. Es stellt sich heraus, dass der Übergang innerhalb desselben Zweigs erfolgt. Dies führt zu Problemen während des Dekompilierungsprozesses aufgrund der Verwendung positiver Stapelzeigerwerte.
Abbildung 3. Komplementärer bedingter ÜbergangDarüber hinaus fügen einige Grundelemente des Programms dem Stapel eine Adresse hinzu, wonach sie in JMP / CALL enden, während andere Grundelemente zwei Adressen hinzufügen und mit dem Befehl RET enden. Die zweite Elementaddition ist die aufgerufene Funktion, und die erste ist die Adresse des nächsten Basisprogrammelements, in dem der Übergang erfolgen soll. Somit werden die Grundelemente des Programms ohne übergeordnete Objekte erstellt.
Abbildung 4. PUSH / JMP-TechnikAls Ergebnis einer Kombination von zwei Verschleierungstechniken werden "schöne" Graphen erhalten:
Abbildung 5. Verschleierung einer LaufsequenzJunk-Code zu bemerken ist ziemlich einfach. Es kann bei der Analyse von Proben ignoriert werden, wenn Sie das Anwendungsschema kennen.
Tropfer
Schritt 1. Köderdokument
In den letzten Monaten hat OceanLotus mehrere Köder verwendet. Eine davon ist eine gefälschte Software zum Aktualisieren der
Roboto Slab regular
TrueType-Schriftart von
Roboto Slab regular
. Die Auswahl einer Schriftart erscheint etwas seltsam, da sie nicht viele ostasiatische Sprachen unterstützt.
Abbildung 6. RobototFontUpdate-Symbol für die Aktualisierung von SchriftartenBei der Ausführung entschlüsselt die Binärdatei ihre Ressourcen (XOR, 128 Byte, fest codierter Schlüssel) und stellt die entschlüsselten Daten (LZMA) wieder her. Legitime RobotoSlab-Regular.ttf-Datei
(SHA1:
912895e6bb9e05af3a1e58a1da417e992a71a324
) wird in den Ordner
%temp%
und mit der
ShellExecute
API-
ShellExecute
Funktion gestartet.
Der aus den Ressourcen entschlüsselte Shell-Code wird ausgeführt. Nach der Ausführung implementiert eine gefälschte Schriftartaktualisierung eine andere Anwendung, deren einziger Zweck darin besteht, die Pipette zu entfernen. Diese Löschanwendung wird als
%temp%\[0-9].tmp.exe
.
Stufe 2. Shell-Code
In jeder Phase wird derselbe Shellcode verwendet.
Der Shellcode ist ein benutzerdefinierter PE-Loader. Es stellt die ausführbare Datei im Speicher wieder her - entschlüsselt alle Abschnitte und berechnet die erforderlichen Bewegungen und anderen Einrückungen. Der
RtlMoveMemory
verwendet die drei Funktionen der Windows-API:
VirtualAlloc
,
RtlMoveMemory
und
RtlZeroMemory
.
Die Funktion
RtlZeroMemory
verwendet,
RtlZeroMemory
Felder im PE-Header zu
RtlZeroMemory
. Das Verlassen auf einen automatischen Speicherauszug schlägt fehl, da die MZ / PE-Header beschädigt sind.
Der Shell-Code ruft die entschlüsselte PE-Anmeldefunktion und dann die
DLLEntry
Exportfunktion auf.
Stufe 3. Die echte Pipette
{103004A5-829C-418E-ACE9-A7615D30E125}.dll
Diese ausführbare Datei entschlüsselt Ressourcen mithilfe des AES-Algorithmus im CBC-Modus über die Windows-API. Der fest codierte Schlüssel ist 256 Bit groß. Nach der Entschlüsselung werden die komprimierten Daten dekomprimiert (LZMA-Algorithmus).
Wenn der Prozess mit Administratorrechten gestartet wird, bietet Malware Persistenz, indem ein Dienst erstellt wird. Andernfalls wird der klassische Registrierungsschlüssel "Ausführen" verwendet (
HKCU\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run;DeviceAssociationService;rastlsc.exe
).
Wenn der Dropper-Code mit Administratorrechten ausgeführt wird, versucht er, die unten aufgeführten Dateien in den Ordner
C:\Program Files\Symantec\Symantec Endpoint Protection\12.1.671.4971.104a\DeviceAssociationService\
. Wenn nicht, werden sie in den Ordner
%APPDATA%\Symantec\Symantec Endpoint Protection\12.1.671.4971.104a\DeviceAssociationService\
:
-
rastlsc.exe
(SHA1:
2616da1697f7c764ee7fb558887a6a3279861fac
, Kopie der legitimen Anwendung Symantec Network Access Control,
dot1xtra.exe
)
-
SyLog.bin
(SHA1:
5689448b4b6260ec9c35f129df8b8f2622c66a45
, verschlüsselte Hintertür)
-
rastls.dll
(SHA1:
82e579bd49d69845133c9aa8585f8bd26736437b
, eine bösartige DLL, die
rastlsc.exe
)
Der Pfad variiert von Sample zu Sample, aber das Layout ist ähnlich. Abhängig von den Rechten speichert die Malware Dateien in
%ProgramFiles%
oder
%appdata%
. Wir haben auch beobachtet:
-
\Symantec\CNG Key Isolation\
-
\Symantec\Connected User Experiences and Telemetry\
-
\Symantec\DevQuery Background Discovery Broker Tasks\
Diese Pfade werden von verschiedenen Symantec-Produkten verwendet.
Nach Erreichen der Persistenz und Implementierung der ausführbaren Datei eine legitime Datei,
rastlsc.exe
wird mit
CreateProcessW
.
Wir haben auch eine Version (
{BB7BDEC9-B59D-492E-A4AF-4C7B1C9E646B}.dll
) beobachtet, die
rastlsc.exe
mit dem Parameter
krv
ausführt. Wir werden weiter unten ausführlicher darauf eingehen.
Backdoor-Komponente: rastlsc.exe füllen
Das OceanLotus-Team verwendet eine alte und bekannte Technik in einer der ausführbaren Dateien des Symantec-Produkts. Unter dem Strich wird der Vorgang des Ladens einer Bibliothek einer legitimen und signierten EXE-Datei verwendet, indem eine schädliche Bibliothek in denselben Ordner geschrieben wird. Dadurch wird das böswillige Verhalten als legitim angesehen, da diese Aktionen ausgeführt werden, während die vertrauenswürdige ausführbare Datei ausgeführt wird.
Wie oben erwähnt, wird die legitime Datei
rastlsc.exe
zurückgesetzt und ausgeführt.
Es importiert die Datei
rastls.dll
, die in diesem Fall schädlichen Inhalt enthält.
Abbildung 7. Digital signierte rastlsc.exe von SymantecWir haben auch eine Füllung mit anderen legitimen und signierten ausführbaren Dateien gesehen, einschließlich
mcoemcpy.exe
von McAfee, das
McUtil.dll
lädt. Diese Technik wurde zuvor von PlugX verwendet, was die Aufmerksamkeit von
Vietnam CERT (auf Vietnamesisch) auf sich zog.
Stufe 1. Füllen der Bibliothek, rastls.dll
Der interne Name der DLL-Datei lautet
{7032F494-0562-4422-9C39-14230E095C52}.dll
, wir haben jedoch andere Versionen gesehen, z. B.
{5248F13C-85F0-42DF-860D-1723EEAA4F90}.dll
. Alle exportierten Funktionen führen zur Ausführung derselben Funktion.
Abbildung 8. Alle Exporte von rasltls.dll führen zu einer einzigen FunktionExport versucht, die
SyLog.bin
Datei zu lesen, die sich im selben Ordner befindet. Andere Versionen haben versucht, die Datei
OUTLFLTR.DAT
zu öffnen. Wenn die Datei vorhanden ist, wird sie mithilfe des AES-Algorithmus im CBC-Modus mit einem fest codierten 256-Bit-Schlüssel entschlüsselt. Anschließend werden die empfangenen komprimierten Daten dekomprimiert (LZMA-Komprimierung).
Die Variante
McUtil.dll
verwendet eine andere Technik. Auf den ersten Blick macht die Hauptfunktion nichts Bösartiges, sondern ersetzt tatsächlich den
.text
der legitimen Datei
mcoemcpy.exe
, einer Binärdatei. Es wird ein Shellcode generiert, dessen Aufgabe darin besteht, eine Funktion zum Lesen des verschlüsselten Shellcodes der zweiten Stufe aus der Datei
mcscentr.adf
.
Der folgende Pseudocode wird zum Erstellen von Shell-Code verwendet:
x = False i = 0
buff = genRandom()
opc1 = [0x58,0x59,0x5a,0x5b]
opc2 = [0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57]
opc3 = [0x90,0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,
0x49,0x4a,0x4b]
while i < len(buff):
currentChar = buff[i] if currentChar < 0xc8:
buff[i] = opc1[currentChar % len(opc1)]
else:
if x:
buff[i] = opc2[currentChar % len(opc2)]
else:
buff[i] = opc3[currentChar % len(opc3)] x = x == False
i+=1
Unten in der Abbildung sehen Sie eine Auflistung des Ergebnisses des Assemblers:
Abbildung 9. Generierter ShellcodeSchritte 2–4. Wieder Shellcode, Launcher und Shellcode
Der
{E1E4CBED-5690-4749-819D-24FB660DF55F}.dll
entschlüsselt und lädt die
{E1E4CBED-5690-4749-819D-24FB660DF55F}.dll
Bibliothek
{E1E4CBED-5690-4749-819D-24FB660DF55F}.dll
herunter. Die Bibliothek lädt Ressourcen und versucht, den DeviceAssociationService-Dienst zu starten. Die entschlüsselten Informationen enthalten auch einen Shellcode. Letzteres entschlüsselt die letzte Phase: eine Hintertür.
Die Variante
{92BA1818-0119-4F79-874E-E3BF79C355B8}.dll
prüft, ob
rastlsc.exe
mit
krv
als erstem Parameter ausgeführt wurde. In diesem
rastlsc.exe
wird eine Aufgabe erstellt und
rastlsc.exe
erneut ausgeführt, jedoch ohne diesen Parameter.
Stufe 5. Hintertür
{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll
Zunächst versucht die Malware, ihre Ressourcen herunterzuladen und mithilfe des RC4-Algorithmus zu entschlüsseln. Die resultierenden Ressourcen enthalten Daten, die zum Konfigurieren der Hintertür verwendet werden. Das Konfigurationsformat ist nicht schwer zu finden. Mit der Kaitai-Struktur und ihrem Strukturdämpfer erhalten wir Folgendes:
Abbildung 10. KonfigurationsstrukturHinweis : Mit Ausnahme der Zeile domain_encoding_str und der Bibliothek httpprov ändern sich die Daten von Beispiel zu Beispiel. Die Registrierungsschlüssel sind fast identisch, haben jedoch ein ähnliches Schema:
\HKCU\SOFTWARE\Classes\AppX[a-f0-9]{32}
, nichts
\HKCU\SOFTWARE\Classes\AppX[a-f0-9]{32}
.
Das Schadprogramm empfängt die ersten 10 Bytes des Benutzernamens (UTF-16), codiert sie mit der aus drei Buchstaben bestehenden Zeichenfolge
mutex_encoding_str
in UTF-16 und codiert sie hexadezimal. Das Ergebnis wird als Name des Mutex verwendet. Für einen Benutzer, dessen Name mit
abc
und einem Schlüssel in Form von
vwx
,
vwx
der Mutex beispielsweise
\Sessions\1\BaseNamedObjects\170015001b
.
Die Hintertür enthält einen PE-Loader, der
HTTPProv.dll
Bibliothek
HTTPProv.dll
in den Speicher lädt, den Einstiegspunkt aufruft und dann die
CreateInstance
.
Kommunikation
Die Hintertür verwendet das Standard-TCP-Kommunikationsprotokoll über Port
25123
. Um die Server-IP-Adresse zu erhalten, erstellt die Hintertür zunächst eine bestimmte DNS-Abfrage.
Das Schadprogramm wählt eine von drei Domänen aus der Konfiguration aus und fügt eine spezielle Unterdomäne hinzu, die mit zwei Werten generiert wird. Der erste Wert ist der Name des Computers innerhalb einer Länge von 16 Byte. Die zweite ist eine 4-Byte-Versions-ID. Der folgende Python 2-Code ist ein Codierungsalgorithmus:
letters=domain_encoding_str # “ghijklmnop” hex_pc_name=pc_name.encode(“UTF-16LE”).encode(“hex”) s=''
for c in hex_pc_name:
if 0x2f < ord(c) < 0x3a:
s+=letters[ord(c) - 0x30]
else:
s+=c
Wenn der Computername beispielsweise "
random-pc
lautet und die Versions-ID 0x0a841523 lautet, wird die folgende Domäne generiert:
niggmhggmeggmkggmfggmdggidggngggmjgg.ijhlokga.dwarduong[.]com
Der folgende reguläre Ausdruck kann verwendet werden, um den C & C-Server dieser Hintertür zu kennzeichnen:
[ghijklmnopabcdef]{4-60}\.[ghijklmnopabcdef]{8}\.[az]+\.[az]+
Wenn die IP-Adresse zu einer bestimmten Domäne gehört, versucht die Malware, über Port
25123
eine TCP-Verbindung
25123
. Jedes der Beispiele verfügt über drei verschiedene Domänennamen, mit denen der C & C-Server gefunden wird.
Der Kommunikationsprozess wird über RC4 verschlüsselt und mit LZMA komprimiert. Es ist möglich, den Datenverkehr zu entschlüsseln, da der Schlüssel am Anfang der Pakete hinzugefügt wird. Das Format ist wie folgt:
[ RC4 (4 )][ ]
Jedes Schlüsselbyte wird von der
rand
Funktion generiert. Nach dem Entschlüsseln und Entpacken des Pakets haben die Daten das folgende Format:
[dw:][dw:][dw: ][dw: ][dw:] [dw:]
Wenn der Client zum ersten Mal eine Verbindung zum Server herstellt, wird die UUID übertragen, die als Sitzungskennung verwendet wird. Letzteres wird im Registrierungsschlüssel als Binärdaten gespeichert:
HKCU\SOFTWARE\Classes\ AppXc52346ec40fb4061ad96be0e6cb7d16a\DefaultIcon
Wie bereits erwähnt, enthält die Hintertür auch eine Bibliothek namens
HTTPprov
. Es wird als alternative Möglichkeit zur Kommunikation mit dem Server verwendet. Die DLL-Datei sendet eine POST-Anforderung über HTTP. Es unterstützt auch HTTPS und Proxys mit SOCKS5, SOCKS4a und SOCKS4. Die Bibliothek ist statisch mit
libcurl
verknüpft.
Nach der Initialisierung wird ein Registrierungseintrag erstellt - ein Befehl für die Backdoor zur weiteren Verwendung von HTTP für die Kommunikation mit dem Befehlsserver:
HKCU\SOFTWARE\Classes\ CLSID{E3517E26-8E93-458D-A6DF-8030BC80528B}
.
Die Standard-Client-Anwendung wird verwendet:
Mozilla/4.0 ( ; MSIE 8.0; Windows NT 6.0; Trident/4.0)
.
Das Hauptmerkmal dieser Bibliothek ist ein spezieller Verschlüsselungsalgorithmus für eine universelle Ressourcenkennung. Der Ressourcenteil des URI wird mit dem folgenden Pseudocode erstellt:
buffEnd = ((DWORD)genRand(4) % 20) + 10 + buff; while (buff < buffEnd){
b=genRand(16);
if (b[0] - 0x50 > 0x50)
t=0;
else
*buf++= UPPER(vowels[b[1] % 5]);
v=consonants[b[1]%21]); if (!t)
v=UPPER(v);
*buff++= v;
if (v!='h' && b[2] - 0x50 < 0x50)
*buff++= 'h';
*buff++= vowels[b[4] % 5];
if (b[5] < 0x60)
*buff++= vowels[b[6] % 5];
*buff++= consonants[b[7] % 21];
if (b[8] < 0x50)
*buff++= vowels[b[9] % 5];
*buff++= '-';
};
*buff='\0';
Hinweis : Aus Gründen der Übersichtlichkeit wurde der Teil, der für die Überprüfung der Zeichenfolgenlänge verantwortlich ist, aus dem Code entfernt.
Um den Bezeichner aus der generierten Zeichenfolge zu erhalten, werden zwei Zahlen mithilfe eines speziellen Summenüberprüfungsalgorithmus hinzugefügt:
checksum=crc32(buff)
num2=(checksum >> 16) + (checksum & 0xffff) * 2
num1=(num2 ^ 1) & 0xf
URL=GENERATED_DOMAIN+ “/” + num1 + “/” + num2 + “-” + buff
Wenn Sie den URI-Generator der
HTTPprov
Bibliothek
HTTPprov
, erhalten Sie die folgende URL:
hXXp://niggmhggmeggmkggmfggmdggidggngggmjgg.ijhlokga.aisicoin[.]com/ 13/139756-Ses-Ufali-L
Teams
Nach Erhalt der SESSIONID-Sitzungskennung erstellt die Hintertür einen Systemfingerabdruck. Das Paket ist wie folgt aufgebaut (Einzug in der Paketbeschreibung):
0x000 - Bytes: Der Wert ändert sich in jeder Version
0x001 - 0x01: fest codiertes Byte
0x002 - bool: erhöhte Berechtigungen
0x003 - dword: Versions-ID
0x007 - Zeichenfolge (UTF-16), Computername (max. 0x20)
0x027 - Zeichenfolge (UTF-16), Benutzername
0x079 - das Ergebnis einer Registrierungsabfrage in den Werten
HKLM\SOFTWARE\Microsoft\Windows NT\ CurrentVersion
:
ProductName
,
CSDVersion
,
CurrentVersion
,
ReleaseId
,
CurrentBuildNumber
und das Ergebnis des Aufrufs von
IsWow64Process (x86|x64)
0x179 - das nachfolgende Format der Zeichenfolge% s (% s); ersetzt durch (
GetVolumeInformationW:VolumeNameBuffer
),
VolumePathNames
0x279 - Physische Festplatte, E / A-Steuerung eines PhysicalDrive-GerätsIOControl 0x2D1400 (IOCTL_STORAGE_QUERY_ PROPERTY) (VolSerialNumber)
0x379 - wmi
SELECT SerialNumber FROM Win32_BaseBoard
0x3f9 -
Ruft das aktuelle Datum und die aktuelle Uhrzeit GetSystemTimeAsFileTime ab
0x400 - bool: unbekannt
0x401 - dword: Wird nach dem Entschlüsseln der Ressource empfangen
Hier ist ein Beispiel für einen Systemfingerabdruck:
Abbildung 11. SystemfingerabdruckDies ist eine vollwertige Hintertür, die ihren Bedienern eine Reihe von Funktionen bietet: Bearbeiten der Datei, Registrierung und Prozesse, Herunterladen zusätzlicher Komponenten, Abrufen eines digitalen Fingerabdrucks des Systems. Nachfolgend finden Sie die Nummern und Beschreibungen der unterstützten Befehle:
0 - digitaler Fingerabdruck
1 - Legt die Sitzungs-ID fest
2 - Erstellen eines Prozesses und Erhalten eines Ergebnisses (Verwenden von Programmkanälen)
3 - Setzt den Zähler für Verbindungsversuche
4 - verschiebt die Abrufzeit
5 - liest eine Datei oder einen Registrierungsschlüssel und berücksichtigt MD5
6 - Erstellen eines Prozesses
7 - Erstellt eine Datei, einen Registrierungseintrag oder einen Stream im Speicher
8 - schreibt in die Registrierung
9 - fragt die Registrierung ab
10 - sucht nach Dateien im System
11 - überträgt Dateien in ein anderes Verzeichnis
12 - Entfernt Dateien von der Festplatte
13 - Abrufen einer Liste der im System mit der Funktion markierten Festplatten
GetLogicalDriveStringW
14 - erstellt ein Verzeichnis
15 - Entfernt das Verzeichnis
16 - Liest die Datei vom Offset
17 - ruft den PE-Loader auf (wechseln Sie zur Kommunikation über
HTTPprov
)
18 - [unbekannt]
19 - 0: Abfragen des Werts in der Registrierung; 1: Programmdurchführung und -umsetzung
20 - Setzt die Umgebungsvariable
21 - Startet Shellcode in einem neuen Thread
22 - gibt die Umgebungsvariable zurück
23 in der neuen Version - Startet sich neu, wenn die APPL-Umgebungsvariable nicht vorhanden ist
Fazit
OceanLotus ist weiterhin sehr aktiv und aktualisiert das Toolkit weiterhin.
Die Gruppe versucht, ihre Aktivitäten zu verbergen. Dazu wählen die Angreifer die Opfer sorgfältig aus, begrenzen die Verbreitung von Malware und verwenden mehrere Server, um nicht auf dieselbe Domain oder IP-Adresse aufmerksam zu machen. Die Entschlüsselung der zu implementierenden Komponente und die Side-Loading-Technik ermöglichen es trotz ihrer weit verbreiteten Beliebtheit, eine Erkennung zu vermeiden, da die Arbeit von Angreifern in diesem Fall als legitime Anwendung getarnt ist.
Kompromissindikatoren (IoCs)
Proben
Tabelle 1: Tropfer

Tabelle 2: Bibliotheken

Netzwerk
IP-Adressen
46.183.220.81
46.183.220.82
46.183.222.82
46.183.222.83
46.183.222.84
46.183.223.106
46.183.223.107
74.121.190.130
74.121.190.150
79.143.87.230