Phantom 3.5 – Anmeldeinformationen stehlende Malware geliefert durch einen gefälschten Adobe Installer
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Phantom 3.5 ist eine Anmeldeinformationen-stehlende Malware, die über einen gefälschten Adobe-Installer verbreitet wird. Nach der Ausführung legt der Installer ein PowerShell-Skript ab, das eine verschleierte .NET-DLL (BLACKHAWK.dll) herunterlädt und die endgültige Nutzlast in Aspnet_compiler.exe injiziert, um unter einem vertrauenswürdig aussehenden Prozesskontext zu laufen.
Untersuchung
Forscher führten den gefälschten Installer in einer Sandbox aus und erfassten den Downloader-Standort (positivepay-messages.com/file/floor.ps1). Sie dekodierten das mit Base64/RC4 geschützte Skript, identifizierten die abgerufene .NET-DLL und bestätigten die Injektion in Aspnet_compiler.exe mit Tools wie hollows_hunter und ProcDump. Die Analyse zeigt, dass die DLL Anti-Analyse-Maßnahmen, Heaven’s Gate-Techniken und mehrere Kanäle zur Exfiltration enthält, darunter SMTP, FTP, Telegram und Discord.
Abschwächung
Beschränken oder blockieren Sie die Ausführung von nicht-signierten PowerShell-Skripten, verhindern Sie das Laden nicht vertrauenswürdiger DLLs und überwachen Sie auf ungewöhnliches Erstellen von Aspnet_compiler.exe-Prozessen. Wenden Sie URL-Filterung an, um den Zugriff auf die bösartige Domäne und ihre Pfade zu verweigern. Stellen Sie sicher, dass Endpoint-Kontrollen Muster der Prozessinjektion und gängige Verhaltensweisen von Anmeldedaten-Stehlern erkennen können.
Reaktion
Lösen Sie Alarme für ausgehende Verbindungen zu positivepay-messages.com aus, für Speicher- oder Modul-Artefakte im Zusammenhang mit BLACKHAWK.dll und für Hinweise auf Code-Injektion in Aspnet_compiler.exe. Setzen Sie den betroffenen Host unter Quarantäne, erfassen Sie Speicherabbilder und führen Sie eine vollständige forensische Untersuchung durch, um die bösartige DLL und zugehörige Nutzlasten zu beseitigen.
Angriffsablauf
Erkennungen
Verdächtige Powershell-Strings (via powershell)
Ansicht
Mögliche Timeout-Nutzung zur verzögerten Ausführung (via cmdline)
Ansicht
Ungewöhnliche Änderung der Codepage-Ausführung (via cmdline)
Ansicht
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (via registry_event)
Ansicht
IOCs (HashMd5) zur Erkennung: Phantom 3.5: Initiale Vektoranalyse & Forensik
Ansicht
Phantom 3.5 Prozessinjektion über Aspnet_compiler.exe [Windows Prozess Erstellung]
Ansicht
PowerShell-Skriptausführung mit verstecktem Attribut und Base64-kodierten Strings [Windows Powershell]
Ansicht
Simulation der Ausführung
Voraussetzung: Der Telemetrie- und Basislinien-Pre‑flight-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Angreifertechnik (TTP), die die Erkennungsregel auslösen soll. Die Befehle und Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genau erwartete Telemetrie zu erzeugen, die die Erkennungslinie zu erfassen vermag.
-
Angriffs-Narrativ & Befehle:
Der Angreifer hat die Phantom 3.5-Nutzlast erhalten und möchte sie im Speicher ausführen, um festplattenbasierte Verteidigungen zu umgehen. Sie nutzenAspnet_compiler.exe, eine vertrauenswürdige Windows-Binärdatei, um das bösartige verwaltete Assembly über dasInvoke-ManagedAssemblyArgument zu laden. Dies veranlasst den Compiler-Prozess, die Nutzlast in den aktuellen Prozessraum zu injizieren und sich durch das Erstellen einer geplanten Aufgabe zu halten, die denselben Befehl wiederholt ausführt.-
Platzieren Sie das bösartige verwaltete Assembly (
phantom_payload.dll) auf dem Zielhost. -
Führen Sie die Injektion aus unter Verwendung von
Aspnet_compiler.exe:$maliciousDll = "C:Tempphantom_payload.dll" $cmd = "`"$env:WINDIRMicrosoft.NETFramework64v4.0.30319Aspnet_compiler.exe`" -p `"$maliciousDll`" -c `Invoke-ManagedAssembly`" Start-Process -FilePath $cmd -WindowStyle Hidden -
Erstellen Sie Persistenz (optional), indem Sie eine geplante Aufgabe registrieren, die denselben Befehl jede Stunde erneut ausführt.
-
-
Regressionstest-Skript: Das Skript unten reproduziert die oben genannten Schritte auf eine eigenständige, wiederholbare Weise.
<# .SYNOPSIS Simuliert Phantom 3.5-Prozessinjektion mithilfe von Aspnet_compiler.exe. .BESCHREIBUNG Kopiert eine Dummy-Malware-DLL an einen bekannten Ort und startet dann Aspnet_compiler.exe mit dem `Invoke-ManagedAssembly`-Flag, um das genaue Erstellungsevent auszulösen, auf das die Erkennungsregel abzielt. #> # --- Vorbereitung ----------------------------------------------------------- $dllPath = "$env:TEMPphantom_payload.dll" # Erstellen Sie eine winzige Dummy-DLL (Platzhalter für die echte Nutzlast) Set-Content -Path $dllPath -Value ([byte[]](0x4D,0x5A,0x90,0x00,0x03,0x00,0x00,0x00)) -Encoding Byte # --- Ausführung ------------------------------------------------------------- $aspnetPath = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319Aspnet_compiler.exe" if (-Not (Test-Path $aspnetPath)) { Write-Error "Aspnet_compiler.exe nicht am erwarteten Ort gefunden." exit 1 } $arguments = "-p `"$dllPath`" -c `Invoke-ManagedAssembly`" Write-Host "Starte Aspnet_compiler.exe mit bösartigen Argumenten..." Start-Process -FilePath $aspnetPath -ArgumentList $arguments -WindowStyle Hidden -PassThru # --- Optionale Persistenz ---------------------------------------------------- # Registrieren Sie eine geplante Aufgabe, die die Injektion jede Stunde wiederholt $taskName = "PhantomInject" $action = New-ScheduledTaskAction -Execute $aspnetPath -Argument $arguments $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes(5) -RepetitionInterval (New-TimeSpan -Hours 1) -RepetitionDuration ([TimeSpan]::MaxValue) Register-ScheduledTask -TaskName $taskName -Action $action -Trigger $trigger -RunLevel Highest -Force Write-Host "Simulation abgeschlossen. Überprüfen Sie das SIEM auf den generierten Alarm." -
Aufräum-Befehle: Entfernen Sie die Dummy-DLL, die geplante Aufgabe und eventuelle verbleibende Prozesse.
# Entfernen Sie die Dummy-DLL Remove-Item -Path "$env:TEMPphantom_payload.dll" -Force -ErrorAction SilentlyContinue # Melden Sie die geplante Aufgabe ab Unregister-ScheduledTask -TaskName "PhantomInject" -Confirm:$false -ErrorAction SilentlyContinue # Beenden Sie alle verbliebenen Aspnet_compiler.exe-Prozesse, die vom Test gestartet wurden Get-Process -Name "Aspnet_compiler" -ErrorAction SilentlyContinue | Stop-Process -Force