Inhaltsübersicht
- Einführung
- Anfangsvektor
- Infektionskette
- Analyse des SVG-Anhangs
- Analyse der .HTA-Datei
- Analyse der VBS-Datei
- Analyse der .ps1-Datei
- Analyse des Downloaders/Loaders
- Anti-VM-Technik
- Persistenztechnik
- Download- und Loader-Funktion
- AsyncRAT-Nutzlast
- Datei-MD5s
- Schnelle Heilung \ Seqrite Erkennungen
- MITRE-Angriffstaktiken, -Techniken und -Verfahren (TTPs)
Einführung -
Die Verwendung von SVG-Dateien in Malware-Kampagnen hat deutlich zugenommen. Hinter diesen harmlos aussehenden Dateien verbergen sich möglicherweise schädliche Skripte, die Hacker für raffinierte Phishing-Angriffe nutzen.
Kürzlich haben wir einen solchen Angriff in spanischer Sprache beobachtet, der kolumbianische Benutzer mit einem Köder namens „Judicial Notification“ ins Visier nahm. Die Kampagne nutzt geografische und institutionelle Details, um den Phishing-Köder für das anvisierte Opfer legitimer und vertrauenswürdiger erscheinen zu lassen. Die Kampagne nutzt SVG-, HTA-, VBS- und Powershell-Stufen, um einen Loader herunterzuladen und zu dekodieren. Dieser schleust schließlich AsyncRAT in einen legitimen Windows-Prozess ein und entgeht so der Erkennung.
Anfangsvektor –
Die Kampagne basiert auf einer raffiniert gestalteten Phishing-E-Mail, die eine gerichtliche Mitteilung des „ Juzgado 17 Civil Municipal del Circuito de Bogotá“ vortäuscht . Darin wird auf das „17. Städtische Zivilgericht des Bezirks Bogotá“ verwiesen. Bogotá ist die Hauptstadt und größte Stadt Kolumbiens; zahlreiche Regierungsbehörden wie Gerichte, Ministerien und andere Ämter haben dort ihren Sitz.

Der Text der E-Mail enthält die folgende Nachricht auf Spanisch:
Anbei finden Sie eine gegen Sie eingereichte Klage.
17. Städtisches Zivilgericht des Bezirks Bogotá
September 11, 2025
Mit freundlichen Grüßen
Justizielles Benachrichtigungssystem
Die E-Mail ist im Stil einer offiziellen gerichtlichen Mitteilung verfasst und imitiert diese durch die Verwendung formeller juristischer Sprache und institutioneller Bezeichnungen.
Die Spam-E-Mail enthält eine SVG-Datei (Scaler Vector Graphics) als Anhang. Der Dateiname lautet „ Fiscalia General De La Nacion Juzgado Civil 17.svg “, was auf Englisch „Attorney General's Office Civil Court 17.svg“ bedeutet.
Diese sorgfältig erstellte E-Mail ist ein wichtiger Einstiegspunkt in die Infektionskette, die Social Engineering und offiziell aussehende Inhalte nutzt, um die Empfänger zum Öffnen des Anhangs zu verleiten.
Infektionskette –

Wie wir im obigen Diagramm sehen können, beginnt die Infektionskette mit einer juristischen Phishing-Anspielung (in spanischer Sprache) mit dem Betreff „Demanda judicial en su contra – Juzgado 17 Civil Municipal“ – die eine scheinbar harmlose .SVG-Datei enthält.
Beim Öffnen der SVG-Datei gelangt der Nutzer auf eine gefälschte Webseite, die sich als die der Generalstaatsanwaltschaft ausgibt. Dort wird der Nutzer aufgefordert, ein wichtiges Dokument von der offiziellen Website herunterzuladen. Nach dem Klick auf die Seite wird ein vom Angreifer gesteuerter Download ausgelöst, der eine eingebettete HTA-Datei herunterlädt. Anschließend wird ein Visual Basic-Dropper (actualiza.vbs) ausgeführt und abgelegt.
Das VBS ruft einen Powershell-Downloader (veooZ.ps1) auf, der einen codierten Blob als Textdatei (Ysemg.txt) abruft. Nach der Decodierung wird der Blob als classlibrary3.dll geschrieben.
classlibrary3.dll fungiert als Modullader. Es ruft eine Injektorkomponente und die AsyncRAT-Nutzlast ab und führt anschließend eine In-Memory-Injektion von AsyncRAT in MSBuild.exe durch. Durch die Ausführung des RAT in einem vertrauenswürdigen Prozess erhält der Angreifer Persistenz und Tarnung.
Analyse des SVG-Anhangs –
SVGs (Scalable Vector Graphics) sind ein Bilddateityp, der XML-Code (ein textbasiertes Format) zur Beschreibung von Formen, Linien, Farben und Text verwendet. Im Gegensatz zu normalen Bildern (wie JPGs oder PNGs) speichern SVGs keine Pixel. Stattdessen speichern sie Anweisungen, die Angreifern einen einfachen Weg bieten, ihre bösartigen Absichten zu verbergen. Darüber hinaus ermöglichen diese Dateitypen Angreifern, FUD (Fully Undetected) zu bleiben, da viele herkömmliche Sicherheitslösungen diese Dateien nicht auf Schadcode prüfen.
Während der Analyse dieser Kampagne wurde die angehängte SVG-Datei von QuickHeal erkannt.Seqrite.

Beim Ausführen einer schädlichen SVG-Datei wird eine Webseite im Webbrowser geöffnet.

Dies imitiert eine Webseite oder eine Website der Generalstaatsanwaltschaft und des Bürgerberatungsportals. Es enthält weitere gefälschte Felder wie das Justizinformationssystem, eine gefälschte Beratungsregistrierungsnummer usw., um den Eindruck authentischer zu machen. Außerdem werden Opfer dazu verleitet, Dokumente herunterzuladen.
Bei der Analyse des Codes in der SVG-Datei können wir die unten definierten Elemente sehen –

- style =„Cursor:Zeiger;“ – Zeigt einen anklickbaren Cursor auf dem Bild an.
- beim Klicken=„openDocument()“ – Dies ist ein wichtiges definiertes Element. Wenn der Benutzer auf das SVG klickt, ruft der Browser die JavaScript-Funktion openDocument() auf. Die Funktionsdefinition sieht wie folgt aus –

Funktion openDocument() –
- Akzeptieren Sie Base64-codierte eingebettete Daten.
- dekodieren Sie es in einen vom Angreifer kontrollierten „HTML“-Blob,
- Erstellen Sie ein temporäres URL-Objekt für diesen Blob.
- Öffnen Sie diese URL in einem neuen Tab.
Dies öffnet die HTML-Seite der nächsten Stufe –

Die obige HTML-Seite gibt sich als offizieller Dokumentenbetrachter von „Rama Judicial“ aus. Sie verwendet eine gefälschte Fortschrittsanzeige, um Opfer davon zu überzeugen, dass ein legitimer Download stattfindet.
Beim Laden dekodiert es einen Base64-Blob und zwingt den Browser zum Herunterladen der Datei DOCUMENTO_OFICIAL_JUZGADO.HTA . HTA-Dateien führen ein beliebiges Windows-Skript aus.

Dieser clientseitige Dropper (Base64 → Blob → createObjectURL → erzwungener .HTA-Dropper) ist ein klar abgestufter Dropper, der zum Übermitteln und Ausführen weiterer Nutzlasten vorgesehen ist.
Analyse der .HTA-Datei –
Die HTA-Datei enthält viel Junk-Code und einen Teil eines schädlichen Skripts, der zwischen diesem Junk-Code und einem großen Teil eines Base64-codierten Teils versteckt ist. Dieser Base64-codierte Teil wird decodiert und als actualiza.vbs gespeichert, wie in Abb. gezeigt.

Analyse der .VBS-Datei –
Die base64-dekodierte Datei enthält erneut viele sich wiederholende Junk-Zeilen, die nach der Bereinigung wie folgt aussehen:

Der Code schreibt ein Powershell-Skript, das sich in der Variable GftsOTSaty befindet. Der eigentliche Powershell-Code wird durch die Platzierung des Zeichens „9&“ anstelle von „A“ mit weiterer Base64-Kodierung unverständlich gehalten. Der dekodierte Code wird in die Datei veooZ.ps1 geschrieben, die anschließend ausgeführt wird.
Analyse der .ps1-Datei –
Das Powershell-Skript stellt eine Verbindung zur Dpaste-Domänen-URL her und lädt eine Klartextdatei mit dem Namen „Ysemg.txt“ herunter.

Ysemg.txt ist eine reine Textdatei. Der Inhalt dieser Datei wird bereinigt und base64-dekodiert. Wie Sie in Abb. 11 sehen können, wird „$$“ durch den Buchstaben „A“ ersetzt und base64-dekodiert, was uns ein
.NET-Assembly-Datei mit dem Namen classlibrary3.dll. Eine ihrer Methoden namens „MSqBIbY“ wird im Skript aufgerufen und einige Werte werden dieser Methode als Argumente übergeben. In unserem Fall ist das erste übergebene Argument eine Base64-kodierte Zeichenfolge, wie in Abbildung 11 zu sehen ist:

Das zweite Argument im Skript ist %JkQasDfgrTg%, aber wenn Sie die anderen Befehle überprüfen (siehe Ausschnitte unten), können Sie sehen, dass die VBS-Datei mit ihrem Pfad als zweites Argument übergeben wird.
![]()

In Abb. 11 wird aus diesem Dateipfad, der im zweiten Argument übergeben wird, „\“ durch „$“ ersetzt, dies wird in der .net-Datei erneut ersetzt.
Analyse des Downloader-Loaders –
Die dekodierte Datei ist eine .NET-DLL, die über die im Skript übergebenen Argumente eine URL abruft und eine eingebettete URL enthält. Bei der Überprüfung des statischen Codes sieht es zunächst wie eine Download-Datei aus, die einige weitere Prüfungen umfasst, um sicherzustellen, dass alles reibungslos funktioniert. In bestimmten Szenarien kann auch versucht werden, einen Persistenzfaktor für die Malware hinzuzufügen.
Die Datei ist stark verschleiert und verwendet XOR- und Verschiebeoperationsschleifen, um diese verschleierten Werte zu dekodieren.

Wie bereits erwähnt, ist das zweite Argument der Dateipfad des VBS-Skripts, in dem „\“ durch „$“ ersetzt wird. Die DLL-Datei ersetzt den Wert erneut und macht den Dateipfad korrekt.
Anti-VM-Technik:

Im Code gibt es einen Anti-Analyse-Trick, der auf VirtualBox- und VMware-bezogene Prozesse prüft. Zunächst wird geprüft, ob die Variable yktfr den Wert 4 hat. Wenn ja, wird geprüft, ob laufende Prozesse vorhanden sind. Wenn VM-bezogene Prozesse gefunden werden, wird deren Existenz geprüft. In unserem Fall ist der Wert 0, daher wird dies ignoriert.
Persistenztechnik:
Es prüft auch, ob das vierte Argument „1“ ist. Wenn ja, wird durch Verkettung ein Powershell-Skript erstellt, das über die Shell ausgeführt wird (Abb. 15). In unserem Fall ist es jedoch, wie bereits erwähnt, 0.
Das Powershell-Skript fügt die VBS-Datei in die Ausführungsregistrierung ein, um die Persistenz aufrechtzuerhalten.

Ebenso legt es eine .lnk-Verknüpfungsdatei im Startordner ab, wenn der Wert 3 ist. Auch hier handelt es sich um eine Persistenztechnik, die häufig von Angreifern verwendet wird.
Download- und Loader-Funktion:

Der Wert in Text5 wird erneut in eine umgekehrte Dpaste-URL dekodiert, die zunächst formatiert wird. Anschließend wird über „webClient.DownloadString(text5)“ eine txt-ähnliche Datei mit Base64-Code und Sternen heruntergeladen und in Text4 gespeichert. In der Umkehrung sehen wir TVqQ, einen Base64-kodierten MZ-Marker. Im nächsten Schritt ersetzt die DLL die Sterne durch A. Somit haben wir nun eine neue PE-Datei.

Die Datei ist ebenfalls eine .NET-DLL. Auf ähnliche Weise wird eine weitere Datei heruntergeladen, wobei in diesem Fall die URL unser erstes Argument ist. Die Datei wird lediglich umgekehrt und base64-kodiert und ist eine .NET-ausführbare Datei, die in der Variable text7 gespeichert ist. Die Datei text7 ist eigentlich eine AsyncRAT-Datei, die später erläutert wird.

Wie in der folgenden Abbildung (Abb. 18) wird die neu heruntergeladene DLL (gespeichert in Text4) über die Funktion AppDomain.CurrentDomain() geladen und eine Methode aufgerufen, an die, wie wir sehen, zwei Argumente übergeben werden. Beim Überprüfen der aufgerufenen Funktion (Abb. 19) werden zwei Argumente benötigt: eines für die Injektion und das andere für den zu injizierenden Code.

Die neue DLL fungiert also als Injektor, der die AsyncRAT-Nutzlast in MSBuild.exe einfügt.
Unten sehen Sie einen Ausschnitt aus der Injektor-DLL. Die Funktion \uFDD0 verfügt über alle mit der Injektion verbundenen Funktionen:

AsyncRAT-Nutzlast –
AsyncRAT ist ein in C# geschriebener Remote Access Trojaner (RAT). Er bietet typische RAT- und Datendiebstahlfunktionen – wie Tastatureingabeprotokollierung, Ausführen oder Einschleusen zusätzlicher Payloads sowie Command-and-Control-Funktionen – deren genaue Fähigkeiten von der eingebetteten Konfiguration abhängen. Es handelt sich um eine .NET-kompilierte Binärdatei. In unserem Fall war der Code nicht verschleiert und lässt sich leicht analysieren. AsyncRAT dient hauptsächlich dazu, Ihre Daten zu stehlen und an C&C zu senden. Nachfolgend einige der bemerkenswerten Beobachtungen zu dieser von uns analysierten Payload:
- Um Persistenz zu schaffen, wird geprüft, ob der aktuelle Prozess mit erhöhten Berechtigungen ausgeführt wird.
- Wenn ja, erstellt eine geplante Aufgabe mit dem Befehl – schtasks /create /f /sc onlogon /rl highest /tn“ ” /tr “ „
- Wenn nein, wird der Pfad unter Registrierungs-HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\ geschrieben.
- Verfügt über Anti-Analyse-, Anti-VM- und Amsi-Bypass-Prüfungen.
- Überprüft, ob Mutex mit dem Namen „DcRatMutex_qwqdanchun“ vorhanden ist.
- Prüft, ob auf dem infizierten Rechner eine Webcam vorhanden ist. Wird eine Kamera gefunden, kann die Malware diese später zu Spionage- oder Überwachungszwecken nutzen.
- Durchlaufen Sie laufende Prozesse und beenden Sie Tools zur Prozessüberwachung und -analyse wie Taskmgr.exe, ProcessHacker.exe usw.
- Erfasst Systemdetails wie HWID, Betriebssystem, Benutzerrechte, Kamerapräsenz und Antivireninformationen.
- Stellen Sie eine Verbindung zu C2 her.
- Laden und führen Sie ein vom C2-Server gesendetes Plugin dynamisch aus.
- Packen Sie die gesammelten Daten sicher in ein MessagePack-Objekt und senden Sie sie über die TLS-Verbindung (große Nachrichten werden vor der Übertragung in Blöcke aufgeteilt).
Datei-MD5s –
b1ed63ee45ec48b324bf126446fdc888
817081c745aa14fcb15d76f029e80e15
6da792b17c4bba72ca995061e040f984
f3b56b3cfe462e4f8a32c989cd0c5a7c
5fad0c5b6e5a758059c5a4e633424555
fe0fc2949addeefa6506b50215329ed9
Schnelle Heilung \ Seqrite Detektionen –
Trojan.InjectorCiR
Html.Asyncrat.49974.GC
Script.Trojan.49969.GC
Backdoor.MsilFC.S13564499
Trojandownloader.AgentCiR
MITRE-Angriffstaktiken, -Techniken und -Verfahren (TTPs)
| Taktiken (ATT&CK ID) | Techniken / Subtechnik (ID) | Ablauf |
| Erstzugriff (TA0001) | T1566.001 | Schädlicher SVG-Anhang geöffnet |
| Ausführung (TA0002) | T1218.005 / T1059.001 | SVG löscht/führt .hta aus → PowerShell |
| Ausführung (TA0002) | T1059.005 | HTA schreibt und führt actualiza.vbs aus |
| Persistenz (TA0003) | T1547.001 | Fügt den Run-Schlüssel unter HKCU\…\Run hinzu |
| Persistenz (TA0003) | T1053.005 | Erstellt die Schtasks-Onlogon-Aufgabe |
| Verteidigungsflucht (TA0005) | T1027 | Base64 / umgekehrte Zeichenfolgen / Junk-Verschleierung |
| Verteidigungsflucht (TA0005) | T1562.001 | Beseitigt Sicherheits-/Überwachungstools |
| Verteidigungsflucht (TA0005) | T1055 | Fügt AsyncRAT in MSBuild.exe ein |
| Verteidigungsflucht (TA0005) | T1497 | VM/Sandbox WMI & Prozessprüfungen (Beenden in VMs) |
| Verteidigungsausweichung / Aufprall (TA0005 / TA0006) | T1112 / T1070 | Löscht/bereinigt bestimmte Registrierungsschlüssel |
| Entdeckung (TA0007) | T1057 | Listet laufende Prozesse auf |
| Entdeckung (TA0007) | T1082 / T1012 | Sammelt Systeminformationen; liest die Registrierung |
| Sammlung (TA0009) | T1125 | Überprüft die Webcam-Präsenz |
| Befehl und Kontrolle (TA0011) | T1071 / T1573 | TLS-verpacktes TCP mit MsgPack |
| C2 und modulare Fähigkeiten (TA0011) | T1105 | Lädt Injektor- und Payload-Module herunter |
| C2 und modulare Fähigkeiten (TA0011) | T1543 / T1609 | Lädt Plugins bei Bedarf aus der Registrierung |
| Exfiltration (TA0010) | T1041 | Sendet Daten über verschlüsseltes C2 (gestückelt) |


