SOC Prime Bias: Mittel

03 Feb 2026 17:06 UTC

Wenn Malware zurückschlägt

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Folgen
Wenn Malware zurückschlägt
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Der Bericht beschreibt eine mehrstufige Windows-Eindringungskette, die ein verstecktes Batch-Skript, einen PowerShell-basierten Loader und Donut-generierten Shellcode kombiniert, um einen persistenten, speicherresidenten RAT mit der Fähigkeit zum Diebstahl von Anmeldedaten zu etablieren. Der Loader liefert ein .NET-Implantat, das auf Tarnung ausgelegt ist und starke Anti-Analyse-Abdeckung, Prozessinjektion und interaktive Fernsteuerungsfunktionen bietet. Gestohlene Daten werden über Discord-Webhooks und Telegram-Bots ausgegeben, und das modulare Design fokussiert sich auf speicherinterne Ausführung mit minimalem Platzbedarf auf der Festplatte.

Untersuchung

Die Analyse identifizierte Persistenz über einen per-user Run-Registry-Wert, der eine unter %APPDATA% versteckte Batch-Datei auslöst. Das Batch-Skript enthält ein eingebettetes Base64-Blob, das es extrahiert und in eine PowerShell-Stufe dekodiert. Dieser Loader entschlüsselt eine Donut-Shellcode-Nutzlast und injiziert sie in svchost.exe and explorer.exe, wobei Windows-APIs wie CreateRemoteThread verwendet werden, um das speicherinterne Implantat auszuführen. Die entschlüsselte Stufe löst sich in eine stark obfuskierte .NET-Assembly auf, die Pulsar-RAT-Funktionalität sowie ein spezielles Stealer-Modul umfasst. Forscher beobachteten Anti-VM- und Anti-Debug-Prüfungen, Schutzmaßnahmen, die dazu gedacht sind, Analyse- oder Injektionsüberwachung zu erkennen, und Befehls-Handlers, die versuchen, lokale Verteidigungsmechanismen zu schwächen – wie z. B. das Deaktivieren des Task-Managers und das Manipulieren des UAC-bezogenen Verhaltens.

Abschwächung

Blockieren Sie die Erstellung versteckter Batch-Dateien in benutzerbeschreibbaren AppData-Pfaden und untersuchen Sie unbekannte Einträge, die zu per-user Run-Schlüsseln hinzugefügt wurden. Überwachen Sie PowerShell-Befehlszeilen auf Base64-Dekodierungsmuster und Anzeichen von Aktivitäten zur speicherinternen Injektion. Verwenden Sie Endpoint-Tools, die in der Lage sind, Donut-Shellcode-Merkmale zu erkennen, speicherinterne .NET-Assemblies zu erkennen und C2-Traffic zu Discord und Telegram zu kennzeichnen. Setzen Sie Anwendungszugriffslisten durch und wenden Sie Egress-Kontrollen an, die den ausgehenden Zugriff auf Webhook-Endpunkte und messaging-basierte C2 beschränken.

Reaktion

Wenn erkannt, isolieren Sie den Endpunkt, stoppen Sie die injizierten svchost.exe and explorer.exe Instanzen, die mit der bösartigen Thread-Erstellung verbunden sind, und entfernen Sie sowohl die versteckte Batch-Datei als auch die zugehörige Run-Key-Persistenz. Erfassen Sie Speicherbilder, um speicherinterne Artefakte zu bewahren, extrahieren und analysieren Sie die .NET-Nutzlast und durchsuchen Sie die Umgebung nach übereinstimmenden Verhaltensweisen und Indikatoren. Setzen Sie potenziell exponierte Anmeldedaten zurück und widerrufen Sie kompromittierte Discord/Telegram-Webhook-Token, um eine fortgesetzte Exfiltration zu verhindern.

Schlüsselwörter: Windows-Malware, PowerShell-Loader, versteckte Batch-Datei, AppData, Run-Schlüssel, Donut-Shellcode, CreateRemoteThread, Prozessinjektion, speicherinternes .NET, Pulsar RAT, Anmeldeinformationen-Diebstahl, Discord-Webhooks, Telegram-Bot, Anti-VM, Anti-Debug.

Angriffsablauf

Erkennungen

Möglicher Missbrauch von Telegram als Kommando- und Kontrollkanal (via dns_query)

SOC Prime Team
02 Feb 2026

Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (via registry_event)

SOC Prime Team
02 Feb 2026

Aufruf verdächtiger Windows-API-Funktionen von PowerShell (via powershell)

SOC Prime Team
02 Feb 2026

Verdächtige PowerShell-Strings (via powershell)

SOC Prime Team
02 Feb 2026

Mögliche Verwendung von Schtasks oder AT für Persistenz (via cmdline)

SOC Prime Team
02 Feb 2026

Verdächtiger Versuch der Manipulation des Alternativen Datenstroms (ADS) Zone.Identifier (via process_creation)

SOC Prime Team
02 Feb 2026

PowerShell-Ausführung einer Datei in einem verdächtigen Verzeichnis unter Verwendung von Bypass-Ausführungsrichtlinie (via cmdline)

SOC Prime Team
02 Feb 2026

IOCs (DestinationIP) zur Erkennung: Wenn Malware zurückspricht

SOC Prime AI-Regeln
02 Feb 2026

IOCs (SourceIP) zur Erkennung: Wenn Malware zurückspricht

SOC Prime AI-Regeln
02 Feb 2026

IOCs (HashMd5) zur Erkennung: Wenn Malware zurückspricht

SOC Prime AI-Regeln
02 Feb 2026

IOCs (HashSha1) zur Erkennung: Wenn Malware zurückspricht

SOC Prime AI-Regeln
02 Feb 2026

Persistenz über Run-Schlüssel für Batch-Datei-Ausführung [Windows-Registrierungsereignis]

SOC Prime AI-Regeln
02 Feb 2026

Erkennung von Speicherinjektion und Nutzlastausführung via PowerShell [Windows PowerShell]

SOC Prime AI-Regeln
02 Feb 2026

Erkennung von Batch- und PowerShell-Ausführung für versteckte Malware-Persistenz [Windows-Prozesserstellung]

SOC Prime AI-Regeln
02 Feb 2026

Simulationsausführung

Voraussetzung: Der Telemetrie- und Basislinientest vor dem Start muss bestanden haben.

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

  • Angriffserzählung & Befehle:

    1. Erkundung & Nutzlastabruf – Der Angreifer verwendet einen PowerShell-One-Liner, um ein Base64-kodiertes Shellcode-Blob von einem C2-Server herunterzuladen (simuliert über eine lokale Datei).
    2. Verschleierung – Die heruntergeladene Nutzlast ist mit dem Schlüssel 0xAA XOR-verschleiert. Das Skript enthält den wörtlichen String „XOR“, um die zweite Klausel der Regel zu erfüllen.
    3. Dekodierung & Entschleierung – Der Angreifer dekodiert den Base64-String, wendet die XOR-Operation im Speicher an und speichert den klaren Shellcode in einem Byte-Array.
    4. Prozessinjektion – Unter Verwendung der Windows-API CreateRemoteThread, injiziert das Skript den Shellcode in einen gutartigen Zielprozess (notepad.exe). Die Befehlszeile enthält ausdrücklich den Text „CreateRemoteThread“.
    5. Ausführung – Der Remote-Thread läuft und erreicht Code-Ausführung auf dem Host.
  • Regressionstest-Skript:

    # ------------------------------------------------------------
    # Simulierte PowerShell-Speicherinjektionskampagne
    # ------------------------------------------------------------
    # 1. Bereiten Sie eine Dummy-Nutzlast (Shellcode) vor – für Demo-Zwecke verwenden wir
    #    nur ein kleines Byte-Array, das "Injected" ausgibt.
    $shellcode = [Byte[]] (0x90,0x90,0x90,0x90)   # NOP-Schlitten-Platzhalter
    
    # 2. XOR-verschleiern Sie die Nutzlast mit dem Schlüssel 0xAA
    $key = 0xAA
    $xorPayload = $shellcode | ForEach-Object { $_ -bxor $key }
    
    # 3. Kodiert die XOR-ed Nutzlast in Base64
    $b64 = [Convert]::ToBase64String($xorPayload)
    
    # 4. Erstellen Sie den PowerShell-Befehl, der die Injektion ausführt
    $injectCmd = @"
    `$bytes = [Convert]::FromBase64String('$b64')
    # XOR-Entschleierung (wörtlich 'XOR' für Erkennung vorhanden)
    `$decoded = `$bytes | ForEach-Object { `$_ -bxor $key }
    # Starten Sie Notepad als Injektionsziel
    `$proc = Start-Process notepad -PassThru
    # Alloziere Speicher im Remote-Prozess
    `$addr = [System.Runtime.InteropServices.Marshal]::AllocHGlobal(`$decoded.Length)
    # Erstelle Remote-Thread (wörtlicher String für Erkennung)
    `$thread = [System.Threading.Thread]::Start( { 
    } )
    "@
    
    # 5. Kodieren Sie den gesamten Injektionsbefehl (einschließlich Marker ::6bbd64163c24f552::)
    $marker = '::6bbd64163c24f552::'
    $fullCmd = $marker + $injectCmd
    $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($fullCmd))
    
    # 6. Führen Sie die bösartige PowerShell über -EncodedCommand aus
    powershell.exe -EncodedCommand $encoded
  • Bereinigungskommandos:

    # Beenden Sie alle während des Tests gestarteten Notepad-Instanzen
    Get-Process notepad -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Entfernen Sie alle temporären Dateien / Module, wenn sie erstellt wurden (nicht in diesem Demo)
    Write-Host "Bereinigung abgeschlossen."