Einer unserer deutschen Kunden wurde kürzlich von einem Administrator eines anderen Unternehmens darüber informiert, dass Rechnungsemails mit Malware verschickt werden, die das E-Mail-Template unseres Kunden verwenden.

Bei einer ersten Untersuchung wurde festgestellt, dass die Kunden- und Rechnungsnummern in den bösartigen E-Mails zu einem legitimen Kunden unseres Kunden gehörten. Dies deutet darauf hin, dass der Angreifer vermutlich eine Original-E-Mail durch die Kompromittierung eines Kunden-E-Mail-Kontos erlangte und deren Inhalt für seine bösartige Kampagne nutzte.

Der meldende Administrator stellte uns die gesamte E-Mail, einschließlich des schädlichen Anhangs, für eine weitere Analyse zur Verfügung.

Dadurch waren wir in der Lage, die Infektionskette gründlich zu untersuchen und aufzudecken.

Erste Stufe (initialer Loader)

Die Phishing-E-Mail ahmte die legitime Rechnungsemail unseres Kunden genau nach, mit einem entscheidenden Unterschied: Der Anhang war eine ZIP-Datei anstelle einer PDF-Datei.

mail.png

Die ZIP-Datei enthielt eine einzelne verschleierte JavaScript-Datei: 1599224702180799937.js.

Die JavaScript-Datei verwendete Verschleierung durch Variablenersetzung. Durch den Einsatz eines Skripts, das alle Variablen durch ihre jeweiligen Zeichenkettenwerte ersetzt, konnten wir feststellen, dass der Loader auf Windows-Systeme abzielt.

js-loader.png

Wenn der Benutzer auf die .js-Datei klickt, wird sie von wscript.exe, dem Standard-Interpreter für solche Dateien in Windows, ausgeführt.

js-deob.png

Schritte des Loaders

  1. Sprachprüfung: Der Loader überprüft die Systemsprache des Opfers, indem er den Registrierungsschlüssel HKEY_CURRENT_USER\Control Panel\International\Locale abfragt. Wenn die Sprache nicht mit einer deutschsprachigen LCID übereinstimmt (wie in der Microsoftt Dokumentation definiert), beendet der Loader die Ausführung.
  2. Anzeigen einer gefälschten Rechnung: Eine gefälschte Rechnung wird in das temporäre Verzeichnis des Benutzers heruntergeladen und mit dem Standard-PDF-Viewer geöffnet. Das unscharfe Erscheinungsbild des Dokuments simuliert einen „noch ladenden“ Effekt.
  3. WebDAV-Verbindung: Der Loader bindet eine WebDAV-Freigabe unter http://193.143.1.205:8888/ mit dem Befehl net use ein.
  4. DLL-Ausführung: Eine bösartige DLL (54281035428258.dll) wird von der WebDAV-Freigabe mithilfe von regsvr32 geladen.

Zweite Stufe: DLL

Anhand der Entropie der .dll lässt sich eindeutig erkennen, dass es sich bei der .dll um einen Packer handelt, der die eigentliche Nutzlast ablegt.

dll-triage.png

Nach dem Laden der DLL ruft regsvr32 den Einstiegspunkt DllRegisterServer auf. Die Binärdatei löst Funktionsadressen auf, indem sie über die InLoadOrderModuleList des PEB iteriert.
Durch das Setzen eines Breakpoints auf VirtualAlloc kann der Speicher ermittelt werden, in den die entschlüsselte Nutzlast geschrieben wird.

dll-virtualalloc.png Ein Speicher-Breakpoint auf die entsprechende Region führt zur ersten Anweisung, in der die entschlüsselte Nutzlast geschrieben wird. dll-copy-payload.png Der Packer scheint die Nutzlast jedoch in zwei Schritten zu schreiben:

Zuerst schreibt er alle Abschnitte, beginnend mit dem .text-Abschnitt, in den RWX-Speicher. Anschließend schreibt er den PE-Header. Zusätzlich ersetzt er die entschlüsselten Bytes der Nutzlast im .data-Abschnitt mit den entschlüsselten Werten. Dadurch ist es möglich, die PE-Datei durch das Setzen eines Breakpoints nach der Entschleifungsschleife zu extrahieren.

Nach dem Dumpen der entschlüsselten PE-Datei aus dem Speicher luden wir sie auf VirusTotal hoch, wo sie mit der Strela-Signatur übereinstimmt.

Dritte Stufe: Strela Stealer Variante

Die Analyse der gedroppten PE-Datei zeigt, dass die Malware eine gepackte Variante des Strela-Infostealers ist, einer Schadsoftware, die sensible Informationen stiehlt, hauptsächlich E-Mail-Konten von Thunderbird oder Microsoft Outlook.

Kampagnen, die Strela verwenden, richten sich typischerweise an spezifische Länder. Daher haben wir den Anfang der Malware analysiert, um herauszufinden, welche Länder der Angreifer ins Visier genommen hat.

pe_AU_UA.png Die Malware ermittelt das Standard-Locale des Nutzers und prüft, ob es sich um **AU** (Australien) oder **UA** (Ukraine) handelt.

Die Ausführung wird nur fortgesetzt, wenn das Opfer in Australien oder der Ukraine zu sein scheint. Der C2-Server befindet sich in Russland, was darauf hindeutet, dass der Angreifer mit dem russischen Angriffskrieg gegen die Ukraine in Verbindung steht. Wir vermuten, dass der Angreifer AU überprüft, weil er sich bezüglich der Endianness nicht sicher ist.

pe_core_logic.png

Da Strela die gestohlenen Informationen in der Regel an einen einzigen fest codierten Server über HTTP POST sendet, haben wir zunächst die Upload-Routine und die Strings untersucht.

pe_strings.png Die Upload-Routine stellt offensichtlich eine Verbindung zur IP-Adresse her, die in dem Bereich mit den Strings zu finden ist: upload.png post.png Alle gestohlenen Informationen werden über *http://193.143.1.205:80/up.php* mit **POST**-Anfragen unter Verwendung der Windows-Internet-API **wininet** hochgeladen.

Der Server scheint bei Proton66 OOO, einem russischen bulletproof Hosting-Dienst, gehostet zu sein.

Schaut man sich die Hauptaktionen der Malware an, so geht sie wie folgt vor:

  1. Sie sucht nach E-Mail-Konten von Thunderbird, indem sie die Dateien logins.json und key4.db lokalisiert, und lädt diese auf den Server hoch.
  2. Sie durchsucht Outlook-IMAP-Konten, indem sie mögliche Registrierungsschlüssel iteriert, und lädt diese Informationen ebenfalls hoch.
  3. Abschließend sammelt sie Informationen über den Computer des Opfers mittels systeminfo.exe und lädt die Ergebnisse auf den Server hoch.

Die Kampagne

Die Tatsache, dass der Server (193.143.1.205) weiterhin die zweite Stufe der Nutzlast bereitstellt, und dass unser Kunde eine Phishing-Mail mit einer Variante von Strela erhielt, die sich mit demselben Server verbindet, führt zu der Schlussfolgerung, dass der Angreifer weiterhin aktiv ist.

Wir empfehlen

  1. ZIP-Anhänge, die .js-Dateien enthalten, blockieren.
  2. Den Server des Angreifers unter 193.143.1.205 auf die Blacklist setzen.

IOCs

FilesNotesHash
1834254_L24RE2417755_20241115.zipE-Mail-Anhang mit der .js-Dateisha256:a5cbe03df3d9091e9bc2dcc441a8e8915ed10155f48a07dcf8efe90d8747c7d8
1599224702180799937.jsJS-Loader befindet sich im ZIP-Anhangsha256:29b4285f887c8f476d997d22d6e1a5bba17ab7c975acefffaa494150dad7a720
Rechnung R202411042..zipE-Mail-Anhang mit der .js-Dateisha256:3f5f406161d8fbf6b608edb89d28dcfe145a98ef147df34bd0cf01385732879d
2204164831129722707.jsJS-Loader befindet sich im ZIP-Anhangsha256:1a53168cccda03933afa9dc35163184f1c3debddba88afafc1d29c83a4d3c125
%temp%\invoice.pdfGefälschte Rechnung, die dem Opfer angezeigt wirdsha256:fc3518d746cdb3738da976551795b9727619f41f89ac0641533126e2f69b969a
URLsNotes
http://193.143.1.205/up.phpWird verwendet, um Informationen an den Angreifer hochzuladen
http://193.143.1.205:8888/WebDAV-Server, der die Nutzlast der zweiten Stufe enthält
http://193.143.1.205:8888/54281035428258.dllVariante der zweiten Stufe
http://193.143.1.205:8888/18769325728249.dllVariante der zweiten Stufe
http://193.143.1.205/invoice.phpGefälschte Rechnung, die dem Opfer angezeigt wird