SOC Prime Bias: Mittel

27 May 2026 15:51 UTC

BlackToad verwendet Netzmanipulation in einem AutoIt-Payload

Author Photo
SOC Prime Team linkedin icon Folgen
BlackToad verwendet Netzmanipulation in einem AutoIt-Payload
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

JUMPSEC deckte eine Phishing-Kampagne auf, die eine Remcos RAT-Payload liefert, die in einem benutzerdefinierten AutoIt-Crypter verborgen ist. Die Infektionskette verwendet ein VBS-Skript, um ipconfig /release gefolgt von ipconfig /renew, und unterbricht vorübergehend die Netzwerkverbindung, um der Erkennung zu entgehen. Forscher verknüpften die Kampagne mit dem nigerianischen e-Crime-Ökosystem, wobei die Infrastruktur auf dynamischen DNS-Domains basiert, die hinter mobilen ISP-Verbindungen gehostet werden.

Untersuchung

Die Untersuchung folgte der bösartigen E-Mail, packte das eingebettete WinRAR-Selbstextrahierungsarchiv aus und identifizierte einen VBS-Loader, der einen getarnten AutoIt-Interpreter startete. Das AutoIt-Skript entschlüsselte und ausführte das Remcos-Implantat, während die wiederhergestellte Konfiguration die Kommando- und Steuerdomains, den Mutex-Wert und einen Persistenzlauf-Schlüssel offenbarte. Forscher kartierten die unterstützende Infrastruktur auf drei dynamische DNS-Domains und einen rotierenden Satz nigerianischer IP-Adressen.

Eindämmung

Organisationen sollten die identifizierten dynamischen DNS-Domains und zugehörigen IP-Bereiche blockieren, nach der verdächtigen ipconfig /release and ipconfig /renew Sequenz überwachen und das Auftreten von AutoIt- oder VBS-Skripten erkennen, die cmd.exestarten. Starke Ausführungssteuerungen sollten auch auf Dateien mit irreführenden doppelten Erweiterungen angewendet werden, während Registry-Run-Einträge wie WindowsUpdate auf Missbrauch überwacht werden sollten.

Reaktion

Wird diese Aktivität erkannt, isolieren Sie sofort den betroffenen Endpunkt, beenden Sie den Remcos-Prozess, entfernen Sie den bösartigen Läuferschlüssel, der zur Persistenz verwendet wird, und führen Sie eine vollständige forensische Prüfung auf Anmeldeinformationen-Diebstahl oder Folgetätigkeit durch. Der Erkennungsinhalt sollte auch aktualisiert werden, um die Netzwerkausfalltechnik und die spezifischen Dateinamenmuster zu identifizieren, die mit der Kampagne verbunden sind.

graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef data fill:#ccffcc %% Knoten email_phishing[„<b>Aktion</b> – <b>T1204.001 Benutzerausführung: bösartiger Link</b><br/>Das Opfer erhält eine E-Mail mit einem Bild, das einen schädlichen MediaFire-Link enthält.“] class email_phishing action download_payload[„<b>Aktion</b> – <b>T1566.001 Phishing: Spearphishing-Anhang</b><br/>Das Opfer lädt eine WinRAR-SFX-Datei herunter, die als .pdf.scr getarnt ist.“] class download_payload action file_double_ext[„<b>Aktion</b> – <b>T1036.007 Maskierung: doppelte Dateierweiterung</b><br/>Die Datei <i>invoice.pdf.scr</i> verbirgt eine .scr-Executable.“] class file_double_ext action script_vbs[„<b>Aktion</b> – <b>T1059.005 Befehls- und Skriptinterpreter: Visual Basic</b><br/>Das VBS-Skript (flvs.vbe) erstellt eine cmd.exe-Zeichenkette und startet Befehle.“] class script_vbs action tool_autoi[„<b>Tool</b> – <b>Name</b>: AutoIt-Interpreter (als .xls umbenannt)<br/><b>Zweck</b>: Führt ein schädliches AutoIt-Skript aus.“] class tool_autoi tool script_autoi_obf[„<b>Aktion</b> – <b>T1059.010 Befehls- und Skriptinterpreter: AutoIt/AutoHotKey</b><br/>Ein stark verschleiertes AutoIt-Skript wird ausgeführt.“] class script_autoi_obf action obfusc_junk[„<b>Aktion</b> – <b>T1027.016 Verschleierte Dateien oder Informationen: Einfügen von Junk-Code</b><br/>Das Skript enthält 88 MB bedeutungsloser Kommentarblöcke.“] class obfusc_junk action obfusc_stripped[„<b>Aktion</b> – <b>T1027.008 Verschleierte Dateien oder Informationen: reduzierte Payloads</b><br/>Payload in großen Fülldaten mit benutzerdefinierter Hex-Kodierung verpackt.“] class obfusc_stripped action malware_remcos[„<b>Malware</b> – <b>Name</b>: Remcos RAT<br/><b>Funktion</b>: Fernzugriff und Fernsteuerung.“] class malware_remcos malware c2_dns[„<b>Aktion</b> – <b>T1071.004 Anwendungsschichtprotokoll: DNS</b><br/>Kommunikation mit C2-Servern über Dynamic-DNS-Hostnamen via verschlüsseltem TLS.“] class c2_dns action persistence_autostart[„<b>Aktion</b> – <b>T1547.014 Boot- oder Logon-Autostart-Ausführung: Active Setup</b><br/>Erstellt den Registrierungsschlüssel HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WindowsUpdate.“] class persistence_autostart action trusted_util[„<b>Aktion</b> – <b>T1127 Proxy-Ausführung über vertrauenswürdige Entwicklerprogramme</b><br/>Verwendet den legitimen AutoIt-Interpreter als vertrauenswürdiges Dienstprogramm zur Ausführung schädlichen Codes.“] class trusted_util action deobfuscation[„<b>Aktion</b> – <b>T1140 Dateien oder Informationen entschlüsseln/dekodieren</b><br/>Forscher dekodieren benutzerdefiniert hex-kodierte PE-Dateien und RC4-verschlüsselte Remcos-Konfigurationen.“] class deobfuscation action %% Verbindungen email_phishing –>|führt zu| download_payload download_payload –>|enthält| file_double_ext file_double_ext –>|löst aus| script_vbs script_vbs –>|lädt| tool_autoi tool_autoi –>|führt aus| script_autoi_obf script_autoi_obf –>|enthält| obfusc_junk script_autoi_obf –>|enthält| obfusc_stripped script_autoi_obf –>|startet| malware_remcos malware_remcos –>|verwendet| c2_dns malware_remcos –>|etabliert| persistence_autostart tool_autoi –>|verwendet_als| trusted_util obfusc_junk –>|erleichtert| deobfuscation obfusc_stripped –>|erleichtert| deobfuscation

Angriffsverlauf

Simulationseinführung

Voraussetzung: Der Telemetrie- & Basislinien-Pre-Flight-Check muss bestanden haben.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die dazu bestimmt ist, die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehldiagnosen.

  • Angriffserzählung und Befehle:

    1. Ziel: Etabliere einen C2-Kanal mit dem BlackToad Remcos-Implantat unter Verwendung einer der bekannten bösartigen DDNS-Domains auf dem fest kodierten Port 50240.
    2. Schritt-für-Schritt:
      • Löse die gewählte bösartige DDNS-Domain auf (pmitm.ddns.net).
      • Öffne eine TCP-Verbindung zum aufgelösten IP am Port 50240.
      • Sende eine minimale „Heartbeat“-Payload, um das initiale Handshake des Implantats zu emulieren.
      • Halte die Verbindung 30 Sekunden offen, um sicherzustellen, dass die Firewall die ausgehende Verbindung protokolliert.
    3. Die ausgehende Verbindung entspricht genau den Sigma-Regel-Kriterien ziel.ip Liste und ziel.port Kriterien, was ein erkennbares Firewall-Ereignis erzeugt.
  • Regressionstest-Skript:

     # BlackToad C2 Kommunikation-Simulation (PowerShell)
      $c2Domain = "pmitm.ddns.net"      # eine der in der Regel aufgeführten Domains
      $c2Port   = 50240
    
      try {
          # Domain zu IP auflösen (fügt DNS-Abfrage-Telemetrie hinzu)
          $ip = [System.Net.Dns]::GetHostAddresses($c2Domain) |
                Where-Object { $_.AddressFamily -eq 'InterNetwork' } |
                Select-Object -First 1
    
          if (-not $ip) { throw "Unable to resolve $c2Domain" }
    
          Write-Host "Resolved $c2Domain to $($ip.IPAddressToString). Connecting..."
    
          # TCP-Verbindung öffnen (generiert Firewall ausgehendes Log)
          $client = New-Object System.Net.Sockets.TcpClient
          $client.Connect($ip, $c2Port)
    
          # Einfachen Heartbeat senden (Hex 0x01)
          $stream = $client.GetStream()
          $payload = [byte[]](0x01)
          $stream.Write($payload, 0, $payload.Length)
    
          Write-Host "Heartbeat sent. Keeping connection alive for 30 seconds..."
          Start-Sleep -Seconds 30
    
          $stream.Close()
          $client.Close()
          Write-Host "Connection closed cleanly."
      }
      catch {
          Write-Error "Simulation failed: $_"
      }
  • Bereinigungskommandos:

     # Sicherstellen, dass alle beibehaltenen Verbindungen geschlossen sind
      Get-NetTCPConnection -RemotePort 50240 -State Established |
          ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }
      # Optional: DNS-Cache leeren, um den aufgelösten DDNS-Eintrag zu entfernen
      ipconfig /flushdns
      Write-Host "Bereinigung abgeschlossen."