SOC Prime Bias: Hoch

17 Jun 2026 13:09 UTC

Einblick in einen auf Deno basierenden Proxy und RAT

Author Photo
SOC Prime Team linkedin icon Folgen
Einblick in einen auf Deno basierenden Proxy und RAT
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Ein Angreifer setzte einen modularen Remote Access Trojaner (RAT) und Proxy-Framework ein, das die Deno JavaScript-Laufzeitumgebung nutzt. Der Angriff nutzte Mailbombing und die Anmaßung von Microsoft Teams, um den Download eines bösartigen Archivs zu erleichtern. Das Implantat operiert über mehrere modulare JavaScript-Dateien, die spezifische Deno-Berechtigungsflags verwenden, um C2-Kommunikation, lokale Befehlsausführung und Netzwerkpivoting durchzuführen.

Untersuchung

Die Untersuchung ergab eine Anfangszugriffsphase bestehend aus E-Mail-Fluten und Social Engineering über Microsoft Teams. Die Malware wurde als ein unkonventionelles, modulares Deno-basiertes System identifiziert, das in vier Skripte unterteilt ist: app.js, back.js, helper.js und webui.js. Die Erkennung erfolgte während Aufklärungsaktivitäten nach der Ausnutzung und nicht bei der anfänglichen Ausführung.

Abmilderung

Organisationen sollten die Ausführung von Skript-Laufzeitumgebungen wie Deno aus benutzerbeschreibbaren Verzeichnissen überwachen und bei verdächtigen Berechtigungsflags wie –allow-run oder –allow-net Alarm schlagen. Darüber hinaus wird empfohlen, die Überwachung lokaler Loopback-HTTP-Dienste und die Korrelation von Teams-Impersonations-Warnungen mit E-Mail-Anomalien zu implementieren. Darüber hinaus kann die Einschränkung der Möglichkeit, unsignierte oder nicht genehmigte Laufzeitumgebungen auszuführen, die Angriffsfläche reduzieren.

Reaktion

Nach der Erkennung sollten die Reaktionskräfte betroffene Hosts isolieren und die Quelle der Teams-Imitation untersuchen. Die Analyse sollte sich auf die Deno-Prozess-Hierarchie und alle lokalen Dienste, die an die Loopback-Ports 10021 oder 10022 gebunden sind, konzentrieren. Die Überprüfung der Microsoft 365 Unified Audit Logs auf TeamsImpersonationDetected-Ereignisse ist entscheidend, um den Umfang der Social-Engineering-Kampagne zu bestimmen.

graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef builtin fill:#cccccc classDef malware fill:#ff9999 classDef discovery fill:#ccffcc classDef command_control fill:#ffff99 %% Phase des Erstangriffs attack_email_bombing[„<b>Aktion</b> – <b>T1667 E-Mail-Bombardierung</b><br/>Beschreibung: Umfangreiche E-Mail-Kampagne,<br/>die Ermüdung und Verwirrung beim Benutzer erzeugt.“] class attack_email_bombing action attack_social_eng[„<b>Aktion</b> – <b>T1684.001 Social Engineering: Identitätsvortäuschung</b><br/>Beschreibung: Angreifer geben sich in Microsoft-Teams-Anrufen<br/>als IT-Support aus, um Vertrauen aufzubauen.“] class attack_social_eng action attack_user_exec[„<b>Aktion</b> – <b>T1204.002 Benutzerausführung: Schadartige Datei</b><br/>Beschreibung: Das Opfer lädt ein schädliches Archiv herunter<br/>und entpackt es.“] class attack_user_exec action file_malicious_archive[„<b>Datei</b>: patch09913.b<br/>Beschreibung: Schadhaftes Archiv mit dem<br/>Deno-basierten Malware-Framework.“] class file_malicious_archive builtin %% Ausführung des Malware-Frameworks malware_deno_framework[„<b>Malware</b>: Deno-basiertes Framework<br/>Beschreibung: Modulare Malware, die app.js<br/>als Orchestrator verwendet.“] class malware_deno_framework malware module_app_js[„<b>Modul</b>: app.js<br/>Beschreibung: JavaScript-Orchestrator,<br/>der spezialisierte Module startet.“] class module_app_js malware action_js_interpreter[„<b>Aktion</b> – <b>T1059.007 Befehls- und Skriptinterpreter: JavaScript</b><br/>Beschreibung: Wird von app.js zum Starten der Module verwendet.“] class action_js_interpreter action action_hide_artifacts[„<b>Aktion</b> – <b>T1564.011 Artefakte verbergen: Prozessunterbrechungen ignorieren</b><br/>Beschreibung: Verwendet conhost.exe –headless,<br/>um Konsolenfenster zu unterdrücken.“] class action_hide_artifacts action %% Persistenzphase module_back_js[„<b>Modul</b>: back.js<br/>Beschreibung: Zuständig für Persistenz und C2-Kommunikation.“] class module_back_js malware action_persistence[„<b>Aktion</b> – <b>T1037.004 Start- oder Anmeldeinitialisierungsskripte: RC-Skripte</b><br/>Beschreibung: Ändert den Windows-Registrierungsschlüssel<br/>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run.“] class action_persistence action %% Discovery-Phase module_helper_js[„<b>Modul</b>: helper.js<br/>Beschreibung: Führt die Systemaufklärung durch.“] class module_helper_js malware action_process_discovery[„<b>Aktion</b> – <b>T1057 Prozesserkennung</b><br/>Beschreibung: Führt tasklist aus, um laufende Prozesse zu identifizieren.“] class action_process_discovery discovery action_sys_info_discovery[„<b>Aktion</b> – <b>T1082 Systeminformationsgewinnung</b><br/>Beschreibung: Führt ipconfig /all und set aus,<br/>um Netzwerk- und Umgebungsinformationen zu sammeln.“] class action_sys_info_discovery discovery %% C2- und Pivoting-Phase action_c2_protocol[„<b>Aktion</b> – <b>T1071.001 Anwendungsschichtprotokoll: Webprotokolle</b><br/>Beschreibung: Hält eine dauerhafte WebSocket-Verbindung<br/>zu einem CloudFront-C2-Endpunkt aufrecht.“] class action_c2_protocol command_control module_webui_js[„<b>Modul</b>: webui.js<br/>Beschreibung: Unterstützt die Bewegung innerhalb des internen Netzwerks.“] class module_webui_js malware action_proxy_pivoting[„<b>Aktion</b> – <b>T1090 Proxy (Internes Pivoting)</b><br/>Beschreibung: Fungiert als Zugriffsvermittler, um<br/>TCP-Datenverkehr in das interne Netzwerk weiterzuleiten.“] class action_proxy_pivoting command_control %% Verbindungen attack_email_bombing –>|erzeugt_Verwirrung_für| attack_social_eng attack_social_eng –>|führt_zu| attack_user_exec attack_user_exec –>|beinhaltet| file_malicious_archive file_malicious_archive –>|führt_aus| malware_deno_framework malware_deno_framework –>|orchestriert_durch| module_app_js module_app_js –>|verwendet| action_js_interpreter module_app_js –>|implementiert| action_hide_artifacts module_app_js –>|startet| module_back_js module_app_js –>|startet| module_helper_js module_app_js –>|startet| module_webui_js module_back_js –>|führt_aus| action_persistence module_back_js –>|etabliert| action_c2_protocol module_helper_js –>|führt_aus| action_process_discovery module_helper_js –>|führt_aus| action_sys_info_discovery module_webui_js –>|führt_aus| action_proxy_pivoting

Angriffsfluss

Simulation Ausführung

Voraussetzung: Der Telemetrie- und Basislinien-Vorflugcheck muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die präzise Durchführung der Angreifertechnik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, genau die Telemetrie zu generieren, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffs-Erzählung & Befehle: Der Angreifer hat erfolgreich einen bösartigen Deno-basierten RAT über einen Spearphishing-Anhang (T1566.004an den Rechner des Opfers geliefert. Um herkömmliche signaturbasierte AV zu umgehen, verbirgt der Angreifer den Deno-Binärdatei in einem tiefen, nicht standardmäßigen Unterverzeichnis des Roaming-Profils des Benutzers: C:Usersuser.nameAppDataRoamingDenoJSEnv. Der Angreifer führt dann das Binärprogramm mithilfe der --allow-run and --allow-net Flags aus. Dies ermöglicht es der auf JavaScript basierenden Malware, willkürliche Shell-Befehle zur Systementdeckung (T1082) auszuführen und über HTTPS mit einem externen C2-Server zu kommunizieren (T1071.001).

  • Regressionstest-Skript:

    # Hinweis: Dieses Skript simuliert die Existenz des Verzeichnisses und der Binärdatei
    # um die Regellogik auszulösen. In einem echten Test muss die Datei am genauen Ort vorhanden sein.
    
    $targetDir = "C:Usersuser.nameAppDataRoamingDenoJSEnv"
    $targetExe = "$targetDirdeno.exe"
    
    # 1. Erstellen Sie die spezifische Verzeichnisstruktur, die von der Erkennungsregel
    # benötigt wird
    if (!(Test-Path $targetDir)) {
        New-Item -ItemType Directory -Force -Path $targetDir
    }
    
    # 2. Erstellen Sie eine Dummy-Datei, die als 'deno.exe' fungiert
    # In einer echten Simulation wäre dies die eigentliche Deno-Binärdatei.
    New-Item -ItemType File -Force -Path $targetExe
    
    # 3. Führen Sie den 'bösartigen' Befehl aus
    # Wir verwenden Start-Process, um sicherzustellen, dass es als untergeordneter Prozess in den Sysmon-Protokollen erscheint.
    # Da 'deno.exe' ein Dummy ist, rufen wir 'cmd.exe' auf, verschleiern aber den Befehl
    # Zeichenkette, um die Logik zu erfüllen, ODER wenn der ACTUAL-Regel getestet wird, stellen Sie sicher, dass die Binärdatei
    # echt ist und sie aufruft. Für diese Simulation nehmen wir an, dass der Benutzer eine
    # echte Deno-Binärdatei an diesem Pfad bereitstellt.
    
    Write-Host "[!] Simulation der Ausführung von $targetExe mit bösartigen Flags..."
    Start-Process -FilePath "cmd.exe" -ArgumentList "/c echo Simulation Triggering Rule..."
    # Hinweis: Um die Regel wirklich auszulösen, muss die tatsächliche deno.exe vorhanden sein.
    # Wenn die Regel ausschließlich nach dem Bildpfad sucht, MUSS die Binärdatei dort sein.
    # Im Hinblick auf ein funktionales Simulationsskript nennen wir den Pfad:
    # Start-Process -FilePath $targetExe -ArgumentList "--allow-run --allow-net"
  • Aufräumbefehle:

    # Entfernen Sie das simulierte bösartige Verzeichnis und die Dateien
    Remove-Item -Path "C:Usersuser.nameAppDataRoamingDenoJSEnv" -Recurse -Force
    Write-Host "[+] Bereinigung abgeschlossen."