ESET-Forscher haben einen Lazarus-Angriff auf ein Luft- und Raumfahrtunternehmen in Spanien aufgedeckt, bei dem die Gruppe mehrere Tools einsetzte, vor allem eine öffentlich nicht dokumentierte Backdoor namens LightlessCan. Die Lazarus-Operatoren verschafften sich im vergangenen Jahr nach einer erfolgreichen Spearphishing-Kampagne Zugang zum Netzwerk des Unternehmens, indem sie sich als Anwerber für Meta ausgaben - dem Unternehmen hinter Facebook, Instagram und WhatsApp.
Der gefälschte Anwerber kontaktierte das Opfer über LinkedIn Messaging, eine Funktion innerhalb der professionellen Social-Networking-Plattform LinkedIn, und schickte zwei Programmieraufgaben, die als Teil eines Einstellungsprozesses erforderlich waren, und die das Opfer herunterlud und auf einem Firmengerät ausführte. Die erste Aufgabe ist ein sehr einfaches Projekt, das den Text "Hello, World!" anzeigt, die zweite gibt eine Fibonacci-Folge aus - eine Zahlenreihe, bei der jede Zahl die Summe der beiden vorangegangenen ist. ESET Research war dank der Zusammenarbeit mit dem betroffenen Luft- und Raumfahrtunternehmen in der Lage, die ersten Zugriffsschritte zu rekonstruieren und das von Lazarus verwendete Toolset zu analysieren.
In diesem Blogpost beschreiben wir die Methode der Infiltration und die bei diesem Lazarus-Angriff eingesetzten Tools. Außerdem werden wir einige unserer Erkenntnisse über diesen Angriff auf der Virus Bulletin-Konferenz am 4. Oktober 2023 vorstellen.
Die wichtigsten Punkte des Blogposts:
- Mitarbeiter des angegriffenen Unternehmens wurden von einem gefälschten Anwerber über LinkedIn kontaktiert und dazu verleitet, eine bösartige ausführbare Datei zu öffnen, die sich als Programmieraufgabe oder Quiz ausgab.
- Wir haben vier verschiedene Ausführungsketten identifiziert, die drei Arten von Payloads über DLL-Side-Loading bereitstellen.
- Die bemerkenswerteste Payload ist die Backdoor LightlessCan, die Techniken einsetzt, um die Erkennung durch Echtzeit-Sicherheitsüberwachungssoftware und die Analyse durch Cybersecurity-Experten zu verhindern. Dies stellt eine große Veränderung im Vergleich zu ihrem Vorgänger BlindingCan dar, einem Flaggschiff des HTTP(S)-Lazarus-RAT.
- Wir schreiben diese Aktivität mit hoher Wahrscheinlichkeit Lazarus zu, insbesondere seinen Kampagnen im Zusammenhang mit Operation DreamJob.
- Der Zweck des Angriffs war Cyberspionage.
Lazarus lieferte verschiedene Payloads an die Systeme der Opfer. Die bemerkenswerteste ist ein öffentlich nicht dokumentierter und ausgeklügelter Remote-Access-Trojaner (RAT), den wir LightlessCan genannt haben und der im Vergleich zu seinem Vorgänger, BlindingCan, eine bedeutende Weiterentwicklung darstellt. LightlessCan ahmt die Funktionen einer Vielzahl von nativen Windows-Befehlen nach und ermöglicht eine diskrete Ausführung innerhalb des RAT selbst anstelle von "lauten" Konsolenausführungen. Dieser strategische Wechsel macht es schwieriger, die Aktivitäten des Angreifers zu erkennen und zu analysieren.
Ein weiterer Mechanismus zur Minimierung der Aufdeckung ist die Verwendung von klaren Vorgaben: Lazarus stellte sicher, dass die Payload nur auf dem Rechner des vorgesehenen Opfers entschlüsselt werden kann. Diese Vorgaben bestehen aus einer Reihe von Schutzprotokollen und -mechanismen, die implementiert wurden, um die Integrität und Vertraulichkeit der Payloads während ihrer Bereitstellung und Ausführung zu schützen und eine unbefugte Entschlüsselung auf unbeabsichtigten Rechnern, wie denen von Sicherheitsforschern, effektiv zu verhindern. Wir beschreiben die Implementierung dieses Mechanismus in dem Abschnitt Ausführungskette 3: LightlessCan (komplexe Version) weiter unten im Text.
Attribution zur Lazarus-Gruppe
Die Lazarus-Gruppe (auch bekannt als HIDDEN COBRA) ist eine Cyberspionage-Gruppe, die mit Nordkorea in Verbindung steht und mindestens seit 2009 aktiv ist. Sie ist verantwortlich für aufsehenerregende Vorfälle wie den Hack von Sony Pictures Entertainment und Cyberdiebstähle in Millionenhöhe im Jahr 2016, den Ausbruch von WannaCryptor (auch bekannt als WannaCry) im Jahr 2017, die 3CX- und X_TRADER Supply-Chain-Angriffe sowie eine lange Reihe von störenden Angriffen auf die öffentliche und kritische Infrastruktur Südkoreas seit mindestens 2011. Die Vielfalt, Anzahl und Exzentrizität bei der Durchführung von Lazarus-Kampagnen zeichnen diese Gruppe aus, ebenso wie die Tatsache, dass sie alle drei Säulen cyberkrimineller Aktivitäten ausführt: Cyberspionage, Cybersabotage und das Streben nach finanziellem Gewinn.
Luft- und Raumfahrtunternehmen sind kein ungewöhnliches Ziel für mit Nordkorea verbündete APT-Gruppen (Advanced Persistent Threats). Das Land hat mehrere Atomtests durchgeführt und Interkontinentalraketen gestartet, was gegen die Resolutionen des Sicherheitsrats der Vereinten Nationen (UN) verstößt. Die Vereinten Nationen überwachen die nuklearen Aktivitäten Nordkoreas, um die weitere Entwicklung und Verbreitung von Kernwaffen oder Massenvernichtungswaffen zu verhindern, und veröffentlichen halbjährliche Berichte über diese Aktivitäten. Diesen Berichten zufolge greifen mit Nordkorea verbündete APT-Gruppen Luft- und Raumfahrtunternehmen an, um sich Zugang zu sensibler Technologie und Luft- und Raumfahrt-Know-how zu verschaffen, da sich Interkontinentalraketen in ihrer mittleren Flugphase außerhalb der Erdatmosphäre befinden. In diesen Berichten wird auch behauptet, dass ein Teil der Kosten für die Entwicklung von Raketen in Nordkorea auf die Einnahmen aus Cyberangriffen entfällt.
Wir führen den Angriff in Spanien mit hoher Wahrscheinlichkeit auf die Lazarus-Gruppe zurück, insbesondere auf die Operation DreamJob. Der Name für Operation DreamJob wurde in einem Blogpost von ClearSky vom August 2020 geprägt, in dem eine Lazarus-Kampagne beschrieben wird, die auf Unternehmen der Verteidigungs- und Luftfahrtindustrie abzielt und Cyberspionage zum Ziel hat. Seitdem haben wir den Begriff weitläufig verwendet, um verschiedene Lazarus-Operationen zu bezeichnen, bei denen Jobangebote als Köder eingesetzt wurden, aber keine Tools verwendet wurden, die eindeutig denen ähneln, die bei anderen Aktivitäten wie der Operation In(ter)ception verwendet wurden. Zum Beispiel die Kampagne mit Tools, die mit 2 TOY GUYS-Zertifikaten signiert sind (siehe ESET Threat Report T1 2021, Seite 11), und der im September 2022 veröffentlichte Fall von Amazon-Ködern in den Niederlanden und Belgien.
Unsere Zuordnung basiert auf den folgenden Faktoren, die vor allem einen Zusammenhang mit der zuvor erwähnten Amazon-Kampagne aufweisen:
1. Malware (das Intrusion Set):
- Der erste Zugriff erfolgte durch Kontaktaufnahme über LinkedIn und die anschließende Überzeugung der Zielperson, eine als Test getarnte Malware auszuführen, um einen Einstellungsprozess erfolgreich abzuschließen. Dies ist eine bekannte Lazarus-Taktik, die mindestens seit Operation DreamJob verwendet wird.
- Wir beobachteten neue Varianten von Payloads, die bereits im niederländischen Fall vom letzten Jahr identifiziert worden waren, wie z. B. Zwischenladeprogramme und die BlindingCan-Backdoor, die mit Lazarus verbunden ist.
- In den Tools dieser Lazarus-Kampagne wurden mehrere Arten starker Verschlüsselung verwendet - AES-128 und RC6 mit einem 256-Bit-Schlüssel -, die auch in der Amazon-Kampagne zum Einsatz kamen.
2. Infrastruktur:
- Für die C&C-Server der ersten Ebene (die im Abschnitt "Netzwerk" am Ende dieses Blogposts aufgelistet sind) richten die Angreifer keine eigenen Server ein, sondern kompromittieren bestehende Server, in der Regel solche, die schlecht gesichert sind und auf denen Websites gehostet werden, deren Wartung vernachlässigt wird. Dies ist ein typisches, aber wenig vertrauenserweckendes Verhalten von Lazarus.
3. Cui bono:
- Der Diebstahl des Know-hows eines Luft- und Raumfahrtunternehmens steht im Einklang mit den von Lazarus verfolgten langfristigen Zielen.
Erster Zugang
Die Gruppe sprach mehrere Mitarbeiter des Unternehmens über LinkedIn Messaging an. Der Angreifer gab sich als Meta-Recruiter aus und lockte mit einem Stellenangebot, um die Aufmerksamkeit und das Vertrauen der Zielperson zu gewinnen. Ein Screenshot dieser Konversation, den wir während unserer Zusammenarbeit mit dem spanischen Luft- und Raumfahrtunternehmen erhalten haben, ist in Abbildung 1 dargestellt.
Zu Beginn von Lazarus-Angriffen werden die ahnungslosen Ziele in der Regel davon überzeugt, ihre Systeme selbst zu kompromittieren. Zu diesem Zweck setzen die Angreifer verschiedene Strategien ein. So wird die Zielperson beispielsweise dazu verleitet, einen vom Angreifer bereitgestellten (und trojanisierten) PDF-Viewer auszuführen, um den vollständigen Inhalt eines Stellenangebots zu sehen. Alternativ wird die Zielperson dazu gebracht, eine Verbindung mit einem trojanisierten SSL/VPN-Client herzustellen, wobei ihr eine IP-Adresse und Anmeldedaten mitgeteilt werden. Beide Szenarien werden in einem Microsoft-Blogpost beschrieben, der im September 2022 veröffentlicht wurde. In diesem Fall forderte der Betrüger das Opfer auf, seine Kenntnisse in der Programmiersprache C++ zu beweisen.
Zu diesem Zweck wurden zwei bösartige ausführbare Dateien, Quiz1.exe
und Quiz2.exe
, bereitgestellt, die über die auf einer Cloud-Speicherplattform eines Drittanbieters gehosteten Images Quiz1.iso
und Quiz2.iso
geliefert wurden. Bei beiden ausführbaren Dateien handelt es sich um sehr einfache Befehlszeilenanwendungen, die Eingaben erfordern.
Bei der ersten handelt es sich um ein Hello World-Projekt, ein sehr einfaches Programm, das oft nur aus einer einzigen Codezeile besteht und bei der Ausführung den Text "Hello, World!" anzeigt. Das zweite druckt eine Fibonacci-Folge bis zum größten Element, das kleiner ist als die eingegebene Zahl. Eine Fibonacci-Folge ist eine Reihe von Zahlen, bei der jede Zahl die Summe der beiden vorhergehenden ist. Normalerweise beginnt sie mit 0 und 1; in dieser bösartigen Aufgabe beginnt die Folge jedoch mit 1 und 2. Abbildung 2 zeigt ein Beispiel für die Ausgabe der Fibonacci-Sequenz. Nachdem die Ausgabe erfolgt ist, lösen beide ausführbaren Dateien die böswillige Aktion der Installation zusätzlicher Payloads aus den ISO-Images auf dem System des Ziels aus. Die Aufgabe für einen anvisierten Entwickler besteht darin, die Logik des Programms zu verstehen und es in der Programmiersprache C++ umzuschreiben.
Die Ereigniskette, die zur ersten Kompromittierung führte, ist in Abbildung 3 skizziert. Die erste Payload, die auf das System des Ziels übertragen wird, ist ein HTTP(S)-Downloader, den wir NickelLoader genannt haben. Mit diesem Tool können die Angreifer jedes beliebige Programm im Speicher des Computers des Opfers installieren.
Toolset nach der Kompromittierung
Sobald NickelLoader auf dem System des Ziels ausgeführt wird, verwenden die Angreifer ihn, um zwei Arten von RATs zu installieren. Einer dieser RATs ist bereits als Teil des Lazarus-Toolkits bekannt, nämlich eine Variante der BlindingCan-Backdoor mit eingeschränkter Funktionalität, aber identischer Befehlsverarbeitungslogik. Zur Unterscheidung haben wir dem Namen der Variante das Präfix mini- vorangestellt. Zusätzlich haben die Angreifer ein RAT eingeführt, das bisher nicht öffentlich dokumentiert war und das wir LightlessCan nennen.
Die RATs werden als letzter Schritt einer Kette von Schritten mit unterschiedlicher Komplexität eingesetzt, denen ausführbare Hilfsdateien wie Dropper und Loader vorausgehen. Wir bezeichnen eine ausführbare Datei als Dropper, wenn sie eine eingebettete Payload enthält, auch wenn sie nicht im Dateisystem abgelegt, sondern direkt in den Speicher geladen und ausgeführt wird. Malware, die kein verschlüsseltes eingebettetes Datenfeld hat, sondern eine Payload aus dem Dateisystem lädt, bezeichnen wir als Loader.
Neben den anfänglichen Quiz-Ködern fasst Tabelle 1 die ausführbaren Dateien (EXEs) und dynamischen Link-Bibliotheken (DLLs) zusammen, die auf das System des Opfers gelangen. Bei allen Malware-Samples in der dritten Spalte handelt es sich um trojanisierte Open-Source-Anwendungen (siehe vierte Spalte für das zugrunde liegende Projekt), bei denen eine legitime ausführbare Datei eine bösartige DLL nachlädt. Die bösartige mscoree.dll
ist beispielsweise eine trojanisierte Version der legitimen NppyPluginDll. Die DLL enthält einen eingebetteten NickelLoader und wird von einer legitimen PresentationHost.exe
geladen, die sich beide im Verzeichnis C:\ProgramShared
befinden.
Tabelle 1. Zusammenfassung der an dem Angriff beteiligten Binärdateien
Location directory |
Legitimate parent process |
Malicious side-loaded DLL |
Trojanized project |
C:\ProgramShared\ |
PresentationHost.exe |
mscoree.dll |
NppyPluginDll |
C:\ProgramData\Adobe\ |
colorcpl.exe |
colorui.dll |
LibreSSL 2.6.5 |
C:\ProgramData\Oracle\Java\ |
fixmapi.exe |
mapistub.dll |
Lua plugin for Notepad++ 1.4.0.0 |
C:\ProgramData\Adobe\ARM\ |
tabcal.exe |
HID.dll |
MZC8051 for Notepad++ 3.2 |
LightlessCan - neue Backdoor
Die interessanteste Payload, die in dieser Kampagne verwendet wurde, ist LightlessCan, ein Nachfolger des HTTP(S)-Lazarus-RAT-Flaggschiffs der Gruppe namens BlindingCan. LightlessCan ist ein neuer komplexer RAT, der bis zu 68 verschiedene Befehle unterstützt, die in einer benutzerdefinierten Funktionstabelle indiziert sind. In der aktuellen Version 1.0 sind jedoch nur 43 dieser Befehle mit einer gewissen Funktionalität implementiert. Die restlichen Befehle sind zwar vorhanden, haben aber eine formale Implementierung in Form von Platzhaltern, denen die eigentliche Funktionalität fehlt. Das Projekt, das hinter dem RAT steht, basiert definitiv auf dem Quellcode von BlindingCan, da die Reihenfolge der gemeinsam genutzten Befehle weitgehend beibehalten wurde, auch wenn es Unterschiede in der Indexierung gibt.
Die wichtigste Neuerung ist die Nachahmung der Funktionalität vieler nativer Windows-Befehle wie ping
, ipconfig
, systeminfo
, sc
, net
, etc. Die hartkodierte Zeichenfolge "The operation completed successfully.", die Standard-Systemmeldung für das ERROR_SUCCESS-Ergebnis, brachte uns auf diese Idee. Tabelle 2 enthält eine Liste der Befehle, die in LightlessCan implementiert sind. In früheren Lazarus-Angriffen, die in Blogposts von Positive Technologies im April 2021 und HvS Consulting im Dezember 2020 dokumentiert wurden, werden diese nativen Befehle häufig ausgeführt, nachdem die Angreifer im System des Ziels Fuß gefasst haben. In diesem Fall werden diese Befehle jedoch diskret innerhalb des RAT selbst ausgeführt und nicht sichtbar in der Systemkonsole. Dieser Ansatz bietet einen erheblichen Vorteil in Bezug auf die Unauffälligkeit, da er sich sowohl Echtzeit-Überwachungslösungen wie EDRs als auch postmortem-Tools für die digitale Forensik entzieht. Die interne Versionsnummer (1.0) deutet darauf hin, dass es sich um eine neue Entwicklungsarbeit der Angreifer handelt.
Da die Kerndienstprogramme von Windows proprietär und nicht quelloffen sind, standen die Entwickler von LightlessCan vor der Wahl, entweder die quelloffenen System-Binärdateien zu reverse-engineeren oder sich von dem über das Wine-Projekt verfügbaren Code inspirieren zu lassen, in dem viele Programme umgeschrieben werden, um ihre Ausführung auf anderen Plattformen wie Linux, macOS oder ChromeOS nachzuahmen. Wir sind geneigt zu glauben, dass die Entwickler die erste Option gewählt haben, da die entsprechenden Programme, die sie in LightlessCan nachgeahmt haben, in Wine etwas anders oder gar nicht implementiert waren (z. B. netsh
).
Interessanterweise wird in einem der von uns analysierten Fälle die Payload von LightlessCan in einer verschlüsselten Datei auf dem kompromittierten Rechner gespeichert, die nur mit einem umgebungsabhängigen Schlüssel entschlüsselt werden kann. Weitere Einzelheiten hierzu finden Sie im Abschnitt Ausführungskette 3: LightlessCan (komplexe Version). Damit soll sichergestellt werden, dass die Payload nur auf dem Computer des beabsichtigten Opfers entschlüsselt werden kann und nicht etwa auf einem Gerät eines Sicherheitsforschers.
Tabelle 2. Liste der LightlessCan-Befehle, die die Befehle der Windows-Eingabeaufforderung nachahmen
Index |
Description |
33 |
Mimic the ipconfig command from the Windows command prompt; see Figure 4. |
34 |
Mimic the net command from the Windows prompt; see Figure 5. |
35 |
Mimic the netshadvfirewall firewall command from the Windows prompt; see Figure 4. |
36 |
Mimic the netstat command from the Windows prompt. |
37 |
Mimic the ping -6 command from the Windows prompt. |
38 |
Mimic the reg command from the Windows prompt; see Figure 7. |
39 |
Mimic the sc command from the Windows prompt; see Figure 8. |
40 |
Mimic the ping command from the Windows prompt. |
41 |
Mimic the tasklist command from the Windows prompt. |
42 |
Mimic the wmic process call create command from the Windows prompt; see Figure 9. |
43 |
Mimic the nslookup command from the Windows Server prompt. |
44 |
Mimic the schstasks command from the Windows prompt; see Figure 10. |
45 |
Mimic the systeminfo command from the Windows prompt. |
46 |
Mimic the arp command from the Windows prompt. |
47 |
Mimic the mkdir command from the Windows prompt. |
Eine Untersuchung der internen Konfiguration des RAT deutet außerdem darauf hin, dass Lazarus im Vergleich zu BlindingCan den Code von LightlessCan verfeinert hat.
Technische Analyse
In diesem Abschnitt liefern wir technische Details über die Kompromittierungskette, die den NickelLoader-Downloader bereitstellt, sowie über die drei Ausführungsketten, die Lazarus verwendet hat, um seine Payloads auf dem kompromittierten System bereitzustellen.
Kompromittierungskette: NickelLoader
NickelLoader ist ein HTTP(S)-Downloader, der auf dem kompromittierten System über DLL-Side-Loading ausgeführt wird und später dazu verwendet wird, andere Lazarus-Payloads zu liefern.
Der Prozess der Bereitstellung von NickelLoader entfaltet sich in einer Reihe von Stufen, beginnend mit der Ausführung von PresentationHost.exe
, die automatisch ausgelöst wird, nachdem das Ziel die ersten Quiz-Aufgaben manuell ausgeführt hat. Der Fall Quiz1
ist in Abbildung 3 dargestellt. Eine bösartige, dynamisch verknüpfte Bibliothek, mscoree.dll
, wird dann von der legitimen PresentationHost.exe
nachgeladen - beide befinden sich in C:\ProgramShared\
. Diese DLL ist eine trojanisierte NppyPluginDll.dll
aus dem inaktiven General Python Plugins DLL for Notepad++ Projekt von 2011. Sie dient als Dropper und hat verschiedene Exporte: alle Exporte, die von der ursprünglichen NppyPluginDll.dll
kopiert wurden, sowie alle Exporte der legitimen mscoree.dll
. Einer dieser legitimen Exporte, CorExitProcess
, enthält den bösartigen Code, der für die Entschlüsselung und Ausführung der nächsten Malware-Stufe verantwortlich ist.
Um ein in den Dropper eingebettetes verschlüsseltes Datenfeld erfolgreich zu entschlüsseln, benötigt der Dropper drei 16 Zeichen lange Schlüsselwörter. Diese Schlüsselwörter lauten wie folgt:
- der Name des übergeordneten Prozesses(
PresentationHost
), - der interne Parameter, der in der Binärdatei hartkodiert ist(
9zCnQP6o78753qg8
), und - der auf der Befehlszeile übergebene externe Parameter(
-embeddingObject
), der vom übergeordneten Prozess vonPresentationHost.exe
geerbt wird und vonQuiz1.exe
oderQuiz2.exe
bereitgestellt wird.
Die Schlüsselwörter werden Byte für Byte XOR-verknüpft und die Ausgabe bildet den AES-128-Entschlüsselungsschlüssel.
Die Payload ist ein HTTP(S)-Downloader, der vier Befehle erkennt, die alle fünf Buchstaben lang sind (siehe Tabelle 3). Wegen dieser Befehle mit fünf Buchstaben haben wir diesen Payload "NickelLoader" genannt, in Anlehnung an den umgangssprachlichen Begriff für die US-Fünf-Cent-Münze - ein Nickel. Die wichtigsten Befehle sind avdrq
und gabnc
. Wenn diese Befehle ausgegeben werden, lädt jeder von ihnen die vom C&C-Server empfangenen Daten als DLL. Zu diesem Zweck haben die Angreifer wahrscheinlich MemoryModule verwendet, eine Bibliothek, mit der eine DLL vollständig aus dem Speicher geladen werden kann.
Tabelle 3. Die Liste der magischen Schlüsselwörter, die in empfangenen Puffern erkannt wurden
Keyword |
Description |
abcde |
Requests another immediate command without the usual long sleep delay that separates the execution of the commands. |
avdrq |
Loads a DLL contained in the received buffer and executes its hardcoded export info. |
gabnc |
Loads a DLL contained in the received buffer. |
dcrqv |
Terminates itself. |
Ausführungskette 1: miniBlindingCan
Eine der von NickelLoader heruntergeladenen und ausgeführten Payloads ist miniBlindingCan, eine vereinfachte Version des Flaggschiffs der Gruppe, BlindingCan RAT. Es wurde erstmals im September 2022 von Mandiant unter dem Namen AIRDRY.V2 gemeldet.
Um miniBlindingCan zu laden, wird eine bösartige, dynamisch verknüpfte 64-Bit-Bibliothek colorui.dll
von einer legitimen colorcpl.exe
, die unter C:\ProgramData\Adobe\
ausgeführt wird, nachgeladen und dient als Dropper. Die DLL ist mit VMProtect verschleiert und enthält Tausende von Exporten, von denen LaunchColorCpl der wichtigste ist, da er die Ausführung der nächsten Stufe übernimmt. Der DLL-Dump enthält ein verschlüsseltes Datenfeld sowie mehrere Debugsymbole, die das Stammverzeichnis und das Projekt, aus dem die DLL erstellt wurde, offenbaren:
W:\Develop\aTool\ShellCodeLoader\App\libressl-2.6.5\
Wie der Name ShellCodeLoader
bereits andeutet, besteht der Hauptzweck dieser ersten Phase darin, das Datenarray aus seinem Body, der den Shellcode enthält, zu entschlüsseln und zu laden. Zu Beginn seiner Ausführung setzt ShellCodeLoader
Anti-Debugging-Techniken ein, indem er den BeingDebugged
-Wert innerhalb der PEB-Struktur (Process Environment Block) prüft, um festzustellen, ob er von Debugging-Tools untersucht oder analysiert wird, und Anti-Sandbox-Techniken einsetzt, um eine Erkennung in Sandbox-Umgebungen zu vermeiden, die für Sicherheitsanalysen konzipiert sind. Die Malware prüft auch explizit, ob ihr übergeordneter Prozess colorcpl.exe
ist. Falls nicht, wird sie sofort beendet.
Das entschlüsselte Datenfeld ist keine vollständige DLL, sondern bildet einen Zwischenblob mit zwei Teilen: Shellcode, gefolgt von einem weiteren verschlüsselten Datenfeld, das den letzten Schritt der Kette darstellt. Der Shellcode scheint von einer Instanz des Open-Source-Projekts ShellcodeRDI erzeugt worden zu sein - insbesondere der Code ShellcodeRDI.c
. Er wurde wahrscheinlich durch die Ausführung des Python-Skripts ConvertToShellcode.py
aus diesem Projekt auf einer Payload-DLL erzeugt, die als Quelle für eine reflektierende DLL-Injektion dient.
Die endgültige Payload wird extrahiert und mittels XOR mit einem langen Schlüssel entschlüsselt, der aus dem Namen des übergeordneten Prozesses(colorcpl.exe
), dem Dateinamen des Droppers(colorui.dll
) und dem externen Befehlszeilenparameter besteht - in diesem Fall ergibt sich COLORCPL.EXECOLORUI.DLL669498484488D3F22712CC5BACA6B7A7
. Dieser Prozess ähnelt dem, den wir mit der BlindingCan-Backdoor im niederländischen Fall beobachtet haben, den wir zuvor in diesem WeLiveSecurity-Blogpost beschrieben haben. Die Entschlüsselung offenbart eine ausführbare Datei mit Download- und Ausführungsfunktionalität, deren interne Logik des Sendens und Parsens von Befehlen stark an BlindingCan erinnert, ein Vorzeige-HTTP(S)-Lazarus-RAT. Im Gegensatz zum Fall in den Niederlanden ist es nicht "VMProtect-ed" und unterstützt nur eine kleine Teilmenge der bisher verfügbaren Befehle: siehe Tabelle 4 in diesem Blogpost und Tabelle 3 im Blogpost über den niederländischen Fall vom September 2022. Da die Funktionen dieses RATs im Vergleich zu denen von BlindingCan deutlich reduziert sind und sie dennoch dieselbe serverseitige Infrastruktur zu nutzen scheinen, haben wir beschlossen, ihn durch Anhängen des Präfixes "mini-" an seinen Namen zu kennzeichnen, um seine reduzierte Funktionalität im Vergleich zu seinem voll ausgestatteten RAT-Gegenstück hervorzuheben.
Tabelle 4. Befehle von miniBlindingCan
Command ID |
Description |
8201 |
Send system information like computer name, Windows version, and code page. |
8232 |
Update the current communication interval with a value provided by the C&C server. |
8233 |
Discontinue the command execution. |
8241 |
Send the current configuration of size 9,392 bytes to the C&C server. |
8242 |
Update the configuration of size 9,392 bytes, stored encrypted on the file system. |
8247 |
Wait for the next command. |
8248 |
Update the current communication interval with a value stored in the configuration. |
8274 |
Download and decrypt a file from the C&C server. |
8279 |
Execute shellcode passed as a parameter. |
Abbildung 11 zeigt den entschlüsselten Zustand einer 9.392 Byte langen Konfiguration, die in den RAT eingebettet ist. Sie enthält fünf URLs, in diesem Fall kompromittierte Websites, die jeweils auf eine maximale Größe von 260 Zeichen begrenzt sind.
Ausführungskette 2: LightlessCan (einfache Version)
Eine weitere Payload, die von NickelLoader ausgeführt wurde, ist LightlessCan, eine neue Lazarus-Backdoor. Wir haben zwei verschiedene Ketten beobachtet, die diese Backdoor laden.
In der einfachen Version der Kette ist der Dropper dieser Payload die bösartige dynamisch verknüpfte Bibliothek mapistub.dll
, die von der legitimen fixmapi.exe
, die von C:\ProgramData\Oracle\Java\
ausgeführt wird, nachgeladen wird. Bei der DLL handelt es sich um ein trojanisiertes Lua-Plugin der Version 1.4, bei dem alle Exporte aus der legitimen Windows mapi32.dll
kopiert wurden. Der Export FixMAPI enthält bösartigen Code, der für die Entschlüsselung und das Laden der nächsten Stufe verantwortlich ist. Alle anderen Exporte enthalten harmlosen Code, der aus einem öffentlich verfügbaren MineSweeper-Beispielprojekt stammt. Dieser mapistub.dll
-Dropper wird über eine geplante Aufgabe aufrechterhalten. Leider sind uns keine weiteren Details über diese Aufgabe bekannt, außer dass ihr übergeordneter Prozess als %WINDOWS%\system32\svchost.exe -k netsvcs -p -s Schedule
erscheint.
Um das eingebettete Datenfeld erfolgreich zu entschlüsseln, muss der Dropper drei Schlüsselwörter korrekt angeben:
- der Name des übergeordneten Prozesses(
fixmapi.exe
), - der interne Parameter, der in der Binärdatei fest kodiert ist(
IP7pdINfE9uMz63n
), und - der externe Parameter, der in der Befehlszeile übergeben wird(
AudioEndpointBuilder
).
Die Schlüsselwörter werden Byte für Byte XOR-verknüpft, und das Ergebnis ist ein 128-Bit-AES-Schlüssel, der zur Entschlüsselung verwendet wird. Beachten Sie, dass die Länge der Schlüsselwörter nicht alle genau 16 Byte beträgt, aber der Entschlüsselungsprozess funktioniert auch dann, wenn die übergroße Zeichenfolge auf eine Länge von 16 Byte gekürzt wird (z. B. AudioEndpointBuilder
zu AudioEndpointBui
), und die untergroße Zeichenfolge, fixmapi.exe
, wird als fixmapi.exe\x00\x00\x00\x00\x00\x00
behandelt, da die Zeichenfolge als 260 Instanzen des Nullzeichens initialisiert wurde.
Ausführungskette 3: LightlessCan (komplexe Version)
Die komplexeste Kette, die wir auf dem kompromittierten System beobachtet haben, liefert ebenfalls LightlessCan, mit verschiedenen Komponenten, die an der gesamten Kette der Installationsschritte beteiligt sind: eine legitime Anwendung, ein anfänglicher Dropper, ein vollständiger Dropper (der die Konfiguration enthält), ein Zwischendropper, eine Konfigurationsdatei, eine Datei mit Systeminformationen (für die Entschlüsselung verschlüsselter Payloads auf dem Dateisystem), ein Zwischenlader und der letzte Schritt, das LightlessCan RAT. Die Verbindungen und Beziehungen zwischen diesen Dateien sind in Abbildung 12 dargestellt.
Der erste Dropper der vierten Kette ist eine bösartige, dynamisch verknüpfte Bibliothek HID.dll
, die von einer legitimen ausführbaren Datei, tabcal.exe
, die unter C:\ProgramData\Adobe\ARM\
ausgeführt wird, nachgeladen wird. Die DLL ist eine trojanisierte Version von MZC8051.dll
, einer legitimen Datei aus dem 8051 C-Compiler-Plugin-Projekt für Notepad++. Sie enthält alle Exporte des Originalprojekts, aber auch die notwendigen Exporte der legitimen Hid User Library von Microsoft, so dass das Side-Loading durch tabcal.exe
erfolgreich sein wird. Der Export HidD_GetHidGuid
enthält den bösartigen Code, der für das Droppen der nächsten Stufe verantwortlich ist, und wie im Fall des Droppers der vorherigen Kette (Ausführungskette 2) enthalten alle anderen Exporte den gutartigen MineSweeper-Code.
Wie in den vorherigen Fällen müssen drei lange Schlüsselwörter angegeben werden, um die eingebettete Nutzlast zu entschlüsseln:
- der Name des übergeordneten Prozesses(
tabcal.exe
), - der interne Parameter, der in der Binärdatei hartkodiert ist(
9zCnQP6o78753qg8
), und - der externe Parameter(
LocalServiceNetworkRestricted
) - dieses Mal nicht als Befehlszeilenparameter, sondern als Inhalt einer Datei unter%WINDOWS%\system32\thumbs.db
.
Auch hier werden die Schlüsselwörter Byte für Byte XOR-verknüpft, und die Ausgabe bildet einen 128-Bit-AES-Schlüssel, der für die Entschlüsselung verwendet wird. Wie im vorigen Fall sind die Schlüsselwörter nicht alle genau 16 Byte lang, aber die Entschlüsselung funktioniert trotzdem, wenn die übergroße Zeichenkette abgeschnitten (z. B. zu LocalServiceNetw
) und die untergroße Zeichenkette mit Nullen erweitert wird (z. B. zu tabcal.exe\x00\x00\x00\x00\x00\x00\x00
).
Die durch das obige Rezept erzeugte ausführbare Datei ist der vollständige Dropper aus Abbildung 12 und hat die InternalName-Ressource AppResolver.dll
(zu finden in der VERSIONINFO-Ressource). Es enthält zwei verschlüsselte Datenfelder: ein kleines von 126 Byte und ein großes von 1.807.464 Byte (das drei Unterteile enthält). Zunächst wird das kleine Array mit dem RC6-Algorithmus und dem hartkodierten 256-Bit-Schlüssel DA 48 A3 14 8D BF E2 D2 EF 91 12 11 FF 75 59 A3 E1 6E A0 64 B8 78 89 77 A0 37 91 58 5A FF FF 07
entschlüsselt. Die Ausgabe stellt die Pfade dar, in die die ersten beiden Unterteile des großen Blobs abgelegt werden (d. h. LightlessCan und der Zwischen-Dropper), und liefert die Zeichenfolgen C:\windows\system32\oci.dll
und C:\windows\system32\grpedit.dat
.
Als Nächstes wird das zweite Datenfeld - der große Blob - mit demselben Verschlüsselungsschlüssel wie zuvor entschlüsselt. Das Ergebnis ist ein entschlüsselter Blob, der drei Unterteile enthält: eine DLL, die grpedit.dat
(LightlessCan) entspricht, eine DLL, die oci.dll
(der Zwischendropper) entspricht, und eine 14.948 Byte große verschlüsselte Datei, die in %WINDOWS%\System32\wlansvc.cpl
(Konfiguration) abgelegt wird; wie in Abbildung 13 zu sehen ist.
Darüber hinaus speichert der vollständige Dropper auch mehrere Merkmale, die das kompromittierte System identifizieren, in der Datei %WINDOWS%\System32\4F59FB87DF2F
, deren Name in der Binärdatei fest einkodiert ist. Diese Merkmale werden hauptsächlich aus dem Registrierungspfad Computer\HKLM\HARDWARE\DESCRIPTION\System\BIOS
abgerufen. Im Folgenden werden die spezifischen Werte dieser Merkmale zusammen mit einem in Klammern angegebenen PowerShell-Befehl aufgeführt, mit dem der entsprechende Wert auf jedem Windows-Computer angezeigt werden kann:
- SystemBIOSDate(
Get-ItemProperty "HKLM:\HARDWARE\Description\System\BIOS" -Name BIOSReleaseDate | Select-Object -Property BIOSReleaseDate
) - SystemBIOSVersion(
Get-CimInstance -ClassName Win32_Bios | Select-Object -Property Version
) - SystemManufacturer (
Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object -Property Manufacturer
) - SystemProductName(
Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select-Object -Property Name
) - Kennung in
Computer\HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\MultifunctionAdapter\0\DiskController\0\DiskPeripheral\0
Die Verkettung der Werte ist für die Entschlüsselung der verschlüsselten grpedit.dat
aus dem Dateisystem erforderlich. Auf einem Testrechner, auf dem ein Image von Windows 10 auf VMWare läuft, kann die Ausgabe wie folgt aussehen:
11/12/20INTEL - 6040000VMware, Inc.VMware Virtual Platform656ba047-20b25a2a-A
Bei der Datei oci.dll
handelt es sich um eine weitere Dropping-Ebene - den Intermediate-Dropper, der den Intermediate-Loader ablegt, bei dem es sich um eine Payload handelt, die der im zuvor erwähnten niederländischen Fall beschriebenen ähnelt. Auch hier verwendeten die Angreifer ein Open-Source-Projekt, das Flashing Tip Plugin für Notepad++, das nicht mehr online verfügbar ist. Im Gegensatz zu den vorherigen Fällen müssen nur zwei lange Schlüsselwörter angegeben werden, um die eingebettete Payload erfolgreich mit AES-128 zu entschlüsseln:
- der Name des übergeordneten Prozesses(
msdtc.exe
), und - der in der Binärdatei fest kodierte interne Parameter(
fb5XPNCr8v83Y85P
).
Beide Schlüsselwörter werden byteweise XOR-verknüpft (der Name des übergeordneten Prozesses wird nach Bedarf abgeschnitten oder mit NULL aufgefüllt, um 16 Bytes zu füllen). Das Produkt der Entschlüsselung ist der Zwischenlader(LLTMapperAPI.dll
). Er verwendet die Systeminformationen (die mit den in 4F59FB87DF2F
gespeicherten Werten übereinstimmen), um die Konfigurationsdatei wlansvc.cpl
zu entschlüsseln und die verschlüsselte grpedit.dat
zu finden, zu entschlüsseln und zu laden, bei der es sich um LightlessCan, den neuen RAT mit allen Funktionen, handelt.
Schlussfolgerung
Wir haben einen neuen Lazarus-Angriff beschrieben, der seinen Ursprung auf LinkedIn hat, wo gefälschte Anwerber ihre potenziellen Opfer ansprechen, die Firmencomputer für private Zwecke nutzen. Obwohl die Öffentlichkeit für diese Art von Angriffen sensibilisiert sein sollte, sind die Erfolgsquoten dieser Kampagnen immer noch nicht auf Null gesunken.
Der besorgniserregendste Aspekt des Angriffs ist die neue Art von Payload, LightlessCan, ein komplexes und möglicherweise in der Entwicklung befindliches Tool, das ein hohes Maß an Raffinesse in seinem Design und seiner Funktionsweise aufweist und im Vergleich zu seinem Vorgänger, BlindingCan, einen erheblichen Fortschritt bei den bösartigen Fähigkeiten darstellt.
Die Angreifer können nun die Ausführungsspuren ihrer bevorzugten Windows-Befehlszeilenprogramme, die bei ihren Aktivitäten nach der Kompromittierung häufig verwendet werden, erheblich verwischen. Dieses Manöver hat weitreichende Auswirkungen auf die Effektivität sowohl von Echtzeit-Überwachungslösungen als auch von digitalen Forensik-Tools nach einem Angriff.
IoCs
Dateien
SHA-1 |
Filename |
Detection |
Description |
C273B244EA7DFF20B1D6B1C7FD97F343201984B3 |
%TEMP%\7zOC35416EE\Quiz1.exe |
Win64/NukeSped.KT |
An initial dropper disguised as a “Hello World” challenge that triggers the compromise. |
38736CA46D7FC9B9E5C74D192EEC26F951E45752 |
%TEMP%\7zOCB3CC96D\Quiz2.exe |
Win64/NukeSped.KT |
An initial dropper disguised as a “Fibonacci sequence” challenge that triggers the compromise. |
C830B895FB934291507E490280164CC4234929F0 |
%ALLUSERSPROFILE%\Adobe\colorui.dll |
Win64/NukeSped.KV |
A VMProtect-ed dropper side-loaded by the legitimate colorcpl.exe. It contains the debug information string W:\Develop\aTool\ShellCodeLoader\App\libressl-2.6.5. |
8CB37FA97E936F45FA8ECD7EB5CFB68545810A22 |
N/A |
Win64/NukeSped.KU |
The miniBlindingCan backdoor dropped by colorui.dll. |
0F33ECE7C32074520FBEA46314D7D5AB9265EC52 |
%ALLUSERSPROFILE%\Oracle\Java\mapistub.dll |
Win64/NukeSped.KW |
A dropper of LightlessCan, side-loaded by the legitimate fixmapi.exe. |
C7C6027ABDCED3093288AB75FAB907C598E0237D |
N/A |
Win64/NukeSped.KW |
A LightlessCan backdoor dropped by mapistub.dll. |
C136DD71F45EAEF3206BF5C03412195227D15F38 |
C:\ProgramShared\mscoree.dll |
Win64/NukeSped.KT |
A dropper of NickelLoader, side-loaded by PresentationHost.exe. It is dropped by both quiz-related samples: C273B244EA7DFF20B1D6B1C7FD97F343201984B3 and 38736CA46D7FC9B9E5C74D192EEC26F951E45752. |
E61672B23DBD03FE3B97EE469FA0895ED1F9185D |
N/A |
Win64/NukeSped.KT |
An HTTPS downloader we’ve named NickelLoader, dropped by mscoree.dll. |
E18B9743EC203AB49D3B57FED6DF5A99061F80E0 |
%ALLUSERSPROFILE%\Adobe\ARM\HID.dll |
Win64/NukeSped.KX |
An initial dropper side-loaded by the legitimate tabcal.exe. |
10BD3E6BA6A48D3F2E056C4F974D90549AED1B96 |
N/A |
Win64/NukeSped.KT |
The complete dropper AppResolver.dll dropped by HID.dll in the complex chain of LightlessCan delivery. |
3007DDA05CA8C7DE85CD169F3773D43B1A009318 |
%WINDIR%\system32\grpedit.dat |
Win64/NukeSped.KW |
A LightlessCan backdoor dropped in the complex chain of its delivery. |
247C5F59CFFBAF099203F5BA3680F82A95C51E6E |
%WINDIR%\system32\oci.dll |
@Trojan.Win64/NukeSped.MI |
The intermediate dropper dropping the intermediate loader in the complex chain of the LightlessCan delivery. |
EBD3EF268C71A0ED11AE103AA745F1D8A63DDF13 |
N/A |
Win64/NukeSped.KT |
The intermediate loader of LightlessCan. |
Netzwerk
IP |
Domain |
Hosting provider |
First seen |
Details |
46.105.57[.]169 |
bug.restoroad[.]com |
OVH SAS |
2021‑10‑10 |
A compromised legitimate site hosting the C&C server: http://bug.restoroad[.]com/admin/view_status.php |
50.192.28[.]29 |
hurricanepub[.]com |
Comcast Cable Communications, LLC |
2020‑01‑06 |
A compromised legitimate site hosting the C&C server: https://hurricanepub[.]com/include/include.php |
67.225.140[.]4 |
turnscor[.]com |
Liquid Web, L.L.C |
2020‑01‑03 |
A compromised legitimate WordPress-based site hosting the C&C server: https://turnscor[.]com/wp-includes/contacts.php |
78.11.12[.]13 |
mantis.quick.net[.]pl |
Netia SA |
2021‑03‑22 |
A compromised legitimate site hosting the C&C server: http://mantis.quick.net[.]pl/library/securimage/index.php |
89.187.86[.]214 |
www.radiographers[.]org |
Coreix Ltd |
2020‑10‑23 |
A compromised legitimate site hosting the C&C server: https://www.radiographers[.]org/aboutus/aboutus.php |
118.98.221[.]14 |
kapata-arkeologi.kemdikbud.go[.]id |
Pustekkom |
2020‑01‑02 |
A compromised legitimate site hosting the C&C server: https://kapata-arkeologi.kemdikbud.go[.]id/pages/payment/payment.php |
160.153.33[.]195 |
barsaji.com[.]mx |
GoDaddy.com, LLC |
2020‑03‑27 |
A compromised legitimate site hosting the C&C server: http://barsaji.com[.]mx/src/recaptcha/index.php |
175.207.13[.]231 |
www.keewoom.co[.]kr |
Korea Telecom |
2021‑01‑17 |
A compromised legitimate site hosting the C&C server: http://www.keewoom.co[.]kr/prod_img/201409/prod.php |
178.251.26[.]65 |
kerstpakketten.horesca-meppel[.]nl |
InterRacks B.V. |
2020‑11‑02 |
A compromised legitimate WordPress-based site hosting the C&C server: https://kerstpakketten.horesca-meppel[.]nl/wp-content/plugins/woocommerce/lib.php |
185.51.65[.]233 |
kittimasszazs[.]hu |
DoclerNet Operations, ORG-DHK1-RIPE |
2020‑02‑22 |
A compromised legitimate site hosting the C&C server: https://kittimasszazs[.]hu/images/virag.php |
199.188.206[.]75 |
nrfm[.]lk |
Namecheap, Inc. |
2021‑03‑13 |
A compromised legitimate WordPress-based site hosting the C&C server: https://nrfm[.]lk/wp-includes/SimplePie/content.php |
MITRE ATT&CK-Techniken
Diese Tabelle wurde mit der Version 13 des MITRE ATT&CK Frameworks erstellt.
Tactic |
ID |
Name |
Description |
Reconnaissance |
Search Open Websites/Domains: Social Media |
Lazarus attackers used LinkedIn to identify and contact specific employees of a company of interest. |
|
Resource Development |
Acquire Infrastructure: Server |
Compromised servers were used by the Lazarus HTTP(S) backdoors and the downloader for C&C. |
|
Establish Accounts: Social Media Accounts |
Lazarus attackers created a fake LinkedIn identity of a headhunter from Meta. |
||
Establish Accounts: Cloud Accounts |
Lazarus attackers had to create an account on a third-party cloud storage in order to deliver the initial ISO images. |
||
Develop Capabilities: Malware |
Custom tools from the attack are likely developed by the attackers. Some exhibit highly specific kernel development capacities seen earlier in Lazarus tools. |
||
Stage Capabilities: Upload Malware |
Lazarus attackers uploaded the initial ISO images to a cloud storage. |
||
Initial Access |
Phishing: Spearphishing Link |
The target received a link to a third-party remote storage with malicious ISO images. |
|
Phishing: Spearphishing via Service |
The target was contacted via LinkedIn Messaging. |
||
Execution |
Native API |
Windows APIs are essential for miniBlindingCan and LightlessCan to function and are resolved dynamically at runtime. |
|
Scheduled Task/Job |
Based on the parent process, a scheduled task was probably created to trigger thesimple chain of the LightlessCan execution. |
||
Shared Modules |
NickelLoader can load and execute an arbitrary DLL within memory. |
||
User Execution: Malicious File |
Lazarus attackers relied on the execution of Quiz1.exe and Quiz2.exe from the ISO files. |
||
Windows Management Instrumentation |
One of the LightlessCan commands allows creation of a new process via WMI. |
||
Persistence |
Scheduled Task/Job |
Based on the parent process, a scheduled task was probably created to trigger the simple chain of the LightlessCan execution. Moreover, LightlessCan can mimic the schtasks command. |
|
Defense Evasion |
Access Token Manipulation: Create Process with Token |
LightlessCan can create a new process in the security context of the user represented by the specified token and collect the output. |
|
Debugger Evasion |
There’s an anti-debug check in the dropper of miniBlindingCan. |
||
Execution Guardrails |
There’s a parent process check in the miniBlindingCan dropper. The concatenation of the values is required for decryption of the encrypted LightlessCan from the file system. |
||
Deobfuscate/Decode Files or Information |
Many of these Lazarus tools and configurations are encrypted on the file system, e.g., LightlessCan in grpedit.dat and its configuration in wlansvc.cpl. |
||
Hijack Execution Flow: DLL Side-Loading |
Many of the Lazarus droppers and loaders use a legitimate program for their loading. |
||
Obfuscated Files or Information: Software Packing |
Lazarus obfuscated several executables by VMProtect in this attack, e.g., colorui.dll |
||
Obfuscated Files or Information: Dynamic API Resolution |
Both LightlessCan and miniBlindingCan resolve Windows APIs dynamically. |
||
Obfuscated Files or Information: Embedded Payloads |
The droppers of all malicious chains contain an embedded data array with an additional stage. |
||
Impair Defenses: Impair Command History Logging |
New features of LightlessCan mimic the most useful Windows command line utilities, to avoid executing the original console utilities. |
||
Impair Defenses: Disable or Modify System Firewall |
LightlessCan can mimic the netsh command and interact with firewall rules. |
||
Indicator Removal: File Deletion |
LightlessCan has the ability to delete files securely. |
||
Indicator Removal: Timestomp |
LightlessCan can alter the modification timestamps of files. |
||
Indirect Command Execution |
LightlessCan bypasses command execution by implementing their functionality. |
||
Process Injection |
LightlessCan and miniBlindingCan use various types of process injection. |
||
Virtualization/Sandbox Evasion: Time Based Evasion |
The miniBlindingCan dropper has an intentional initial execution delay. |
||
Reflective Code Loading |
Most of the droppers use reflective DLL injection. |
||
Discovery |
File and Directory Discovery |
LightlessCan can locate a file by its name. |
|
Network Share Discovery |
LightlessCan can mimic the net share command. |
||
Process Discovery |
LightlessCan identifies processes by name. |
||
Query Registry |
LightlessCan queries the registry for various system information it uses for encryption. |
||
Remote System Discovery |
LightlessCan can mimic the net view command. |
||
System Network Configuration Discovery |
LightlessCan can mimic the arp and ipconfig commands. |
||
System Network Connections Discovery |
LightlessCan can mimic the netstat command. |
||
System Service Discovery |
LightlessCan can mimic the sc query and tasklist commands. |
||
Command and Control |
Application Layer Protocol: Web Protocols |
NickelLoader, LightlessCan, and miniBlindingCan use HTTP and HTTPS for C&C. |
|
Encrypted Channel: Symmetric Cryptography |
LightlessCan and miniBlindingCan encrypt C&C traffic using the AES-128 algorithm. |
||
Data Encoding: Standard Encoding |
LightlessCan and miniBlindingCan encode C&C traffic using base64. |
||
Exfiltration |
Exfiltration Over C2 Channel |
LightlessCan can exfiltrate data to its C&C server. |
Referenzen
[1] Microsoft Security Threat Intelligence, "ZINC weaponizing open-source software", 29. September 2022. [Online]. Verfügbar: https://www.microsoft.com/en-us/security/blog/2022/09/29/zinc-weaponizing-open-source-software/.
[2] D. Breitenbacher und O. Kaspars, "Operation In(ter)ception: Luft- und Raumfahrt- sowie Militärunternehmen im Fadenkreuz der Cyberspione", Juni 2020. [Online]. Verfügbar: https://www.welivesecurity.com/wp-content/uploads/2020/06/ESET_Operation_Interception.pdf.
[3] HvS-Consulting AG, "Grüße von Lazarus: Anatomie einer Cyber-Spionagekampagne", 15. Dezember 2020. [Online]. Verfügbar: https://www.hvs-consulting.de/media/downloads/ThreatReport-Lazarus.pdf.
[4] Positive Technologies Expert Security Center, "Lazarus Group Recruitment: Bedrohungsjäger gegen Kopfjäger", Positive Technologies, 27. April 2021. [Online]. Verfügbar: https://www.ptsecurity.com/ww-en/analytics/pt-esc-threat-intelligence/lazarus-recruitment/.
[5] P. Kálnai, "Amazon-Kampagnen von Lazarus in den Niederlanden", 30. September 2022. [Online]. Verfügbar: https://www.welivesecurity.com/2022/09/30/amazon-themed-campaigns-lazarus-netherlands-belgium.
[6] P. Kálnai, "Lazarus-Kampagnen und Backdoors in 2022-2023," in Virus Bulletin International Conference, London, 2023.
[7] A. Martin, "Sony Pictures hacking traced to Thai hotel as North Korea denies involvement," WeLiveSecurity.com, 08 December 2014. [Online]. Verfügbar: https://www.welivesecurity.com/2014/12/08/sony-pictures-hacking-traced-thai-hotel-north-korea-denies-involvement/.
[8] P. Kálnai und M.-É. M.Leveillé, "Linux-Malware stärkt Verbindungen zwischen Lazarus und dem 3CX-Lieferkettenangriff", ESET, 20. April 2023. [Online]. Verfügbar: https://www.welivesecurity.com/2023/04/20/linux-malware-strengthens-links-lazarus-3cx-supply-chain-attack/.
[9] Defense Intelligence Agency, North Korea military power : a growing regional and global threat, Washington, D.C.: U.S. Government Publishing Office, 2021, S. 98.
[10] UN-Expertengruppe, "Resolutionen des UN-Sicherheitsrats", 1993-2023. [Online]. Verfügbar: https://www.securitycouncilreport.org/un-documents/dprk-north-korea/.
[11] ESET Editor, "WannaCryptor aka WannaCry: Key questions answered," WeLiveSecurity.com, 15. Mai 2017. [Online]. Verfügbar: https://www.welivesecurity.com/2017/05/15/wannacryptor-key-questions-answered/.
[12] Sicherheitsratsausschuss, "Sanctions Committee (DPRK), Panel of Experts, Reports," United Nations Security Council, 2010-2023. [Online]. Verfügbar: https://www.un.org/securitycouncil/sanctions/1718/panel_experts/reports.
[13] ClearSky Research Team, "Operation 'Dream Job' Widespread North Korean Espionage Campaign", 13. August 2020. [Online]. Verfügbar unter: https://www.clearskysec.com/wp-content/uploads/2020/08/Dream-Job-Campaign.pdf.
[14] ESET Research, "Threat Report T1", ESET, Juni 2022. [Online]. Verfügbar unter: https://web-assets.esetstatic.com/wls/2022/06/eset_threat_report_t12022.pdf.
[15] D. Staples, "An Improved Reflective DLL Injection Technique," 30. Januar 2015. [Online]. Verfügbar: https://disman.tl/2015/01/30/an-improved-reflective-dll-injection-technique.html.
[16] J. Maclachlan, M. Potaczek, N. Isakovic, M. Williams und Y. Gupta, "It's Time to PuTTY! DPRK Job Opportunity Phishing via WhatsApp," Mandiant, 14. September 2022. [Online]. Verfügbar: https://www.mandiant.com/resources/blog/dprk-whatsapp-phishing.
[17] S. Tomonaga, "Windows Commands Abused by Attackers," JPCERT/CC, 26. Januar 2016. [Online]. Verfügbar unter: https://blogs.jpcert.or.jp/en/2016/01/windows-commands-abused-by-attackers.html.