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.
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.
Wenn der Benutzer auf die .js-Datei klickt, wird sie von wscript.exe, dem Standard-Interpreter für solche Dateien in Windows, ausgeführt.
Schritte des Loaders
- 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.
- 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.
- WebDAV-Verbindung: Der Loader bindet eine WebDAV-Freigabe unter http://193.143.1.205:8888/ mit dem Befehl net use ein.
- 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.
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.
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.
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.
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.
Die Upload-Routine stellt offensichtlich eine Verbindung zur IP-Adresse her, die in dem Bereich mit den Strings zu finden ist: 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:
- 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.
- Sie durchsucht Outlook-IMAP-Konten, indem sie mögliche Registrierungsschlüssel iteriert, und lädt diese Informationen ebenfalls hoch.
- 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
- ZIP-Anhänge, die .js-Dateien enthalten, blockieren.
- Den Server des Angreifers unter 193.143.1.205 auf die Blacklist setzen.
IOCs
Files | Notes | Hash |
---|---|---|
1834254_L24RE2417755_20241115.zip | E-Mail-Anhang mit der .js-Datei | sha256:a5cbe03df3d9091e9bc2dcc441a8e8915ed10155f48a07dcf8efe90d8747c7d8 |
1599224702180799937.js | JS-Loader befindet sich im ZIP-Anhang | sha256:29b4285f887c8f476d997d22d6e1a5bba17ab7c975acefffaa494150dad7a720 |
Rechnung R202411042..zip | E-Mail-Anhang mit der .js-Datei | sha256:3f5f406161d8fbf6b608edb89d28dcfe145a98ef147df34bd0cf01385732879d |
2204164831129722707.js | JS-Loader befindet sich im ZIP-Anhang | sha256:1a53168cccda03933afa9dc35163184f1c3debddba88afafc1d29c83a4d3c125 |
%temp%\invoice.pdf | Gefälschte Rechnung, die dem Opfer angezeigt wird | sha256:fc3518d746cdb3738da976551795b9727619f41f89ac0641533126e2f69b969a |
URLs | Notes |
---|---|
http://193.143.1.205/up.php | Wird 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.dll | Variante der zweiten Stufe |
http://193.143.1.205:8888/18769325728249.dll | Variante der zweiten Stufe |
http://193.143.1.205/invoice.php | Gefälschte Rechnung, die dem Opfer angezeigt wird |