Fsquirt.exe-Exploit: Bösartige bthprops.cpl-Ladung über Bluetooth
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Der Artikel präsentiert ein Proof-of-Concept, das demonstriert, wie die legitime Windows-Binärdatei Fsquirt.exe dazu gebracht werden kann, eine bösartige Systemsteuerung-Applet (bthprops.cpl) aus ihrem aktuellen Arbeitsverzeichnis zu laden. Wenn die schädliche CPL vorhanden ist, lädt Fsquirt.exe sie und führt durch den Angreifer kontrollierten Code aus – veranschaulicht durch eine MessageBox, die von dem DLL-DllMain-Einstiegspunkt ausgelöst wird. Das Beispiel hebt hervor, wie vertrauenswürdige Binärdateien missbraucht werden können, um beliebigen Code auszuführen, wenn Angreifer ein gestaltetes CPL neben der legitimen ausführbaren Datei platzieren können.
Untersuchung
Forscher veröffentlichten ein Repository, das den Quellcode für eine bösartige bthprops.cpl und ein Build-Skript zum Kompilieren enthält. Die CPL ist so konstruiert, dass Fsquirt.exe sie entdeckt und lädt, wenn sich beide Dateien im selben Verzeichnis befinden. Der erfolgreiche Ablauf wird validiert, wenn die CPL eine MessageBox anzeigt, die bestätigt, dass die vertrauenswürdige Binärdatei Code vom durch den Angreifer bereitgestellten Applet geladen und ausgeführt hat. Das PoC wird als klassischer Fall von LOLBin-Missbrauch positioniert, der ein minimales Netzwerk-Telemetrieaufkommen hinterlässt.
Minderung
Verwenden Sie eine Anwendungs-Whitelist, um sicherzustellen, dass nur genehmigte CPL-Dateien aus den erwarteten Systemverzeichnissen ausgeführt werden können, und schränken Sie die Ausführungspfade ein, um zu verhindern, dass Binärdateien wie Fsquirt.exe in nicht standardmäßigen Verzeichnissen ausgeführt werden. Überwachen Sie Fsquirt.exe auf Versuche, Systemsteuerung-Applets außerhalb vertrauenswürdiger Systemordner zu laden und blockieren Sie verdächtige Ausführungen aus von Benutzern beschreibbaren Pfaden. Fügen Sie Endpunkt-Erkennungen für ungewöhnliche, durch DllMain initiierte Verhaltensweisen und interaktive UI-Artefakte (z.B. MessageBox-Aufrufe) hinzu, die von vertrauenswürdigen Windows-Exekutiven stammen. Überprüfen Sie regelmäßig Endpunkte auf unerwartete .cpl-Dateien, insbesondere in Verzeichnissen, in denen Benutzer oder Anwendungen schreiben können.
Reaktion
Alarmieren Sie sofort, wenn Fsquirt.exe eine nicht standardmäßige bthprops.cpl lädt oder wenn eine CPL beobachtet wird, die aus einem unerwarteten Pfad ausgeführt wird. Isolieren Sie den Host, bewahren Sie die bösartige CPL und die zugehörigen Ausführungstelemetriedaten auf und führen Sie eine vollständige Malware-Triage über Festplatte und Speicher durch. Entfernen Sie die bösartige CPL und überprüfen Sie Persistenzmechanismen oder nachfolgende Tools, die möglicherweise mit der Einführung einhergingen. Suchen Sie abschließend umgebungsweit nach ähnlichen LOLBin-Ausführungsmustern und verschärfen Sie die Richtlinienkontrollen, um die Exposition gegenüber Sideloading durch vertrauenswürdige Binärdateien zu reduzieren.
Angriffsfluss
Wir aktualisieren derzeit diesen Teil. Melden Sie sich an, um benachrichtigt zu werden.
Benachrichtige michSimulation Ausführung
Voraussetzung: Die Telemetrie- & Basislinien-Vorabprüfung muss erfolgreich sein.
-
Angrifferzählung & Befehle:
Der Angreifer platziert zuerst eine bösartige bthprops.cpl (gestaltet, um eine Nutzlast auszuführen, die den Bildschirm aufnimmt) im selben Verzeichnis wie Fsquirt.exe. Durch aufrufen von Fsquirt.exe mit dem Argument
bthprops.cpl, behandelt Windows die CPL als Systemsteuerungsapplet und lädt sie, wobei der eingebettete bösartige Code ausgeführt wird. Dies erzeugt ein Prozess-Erstellungsereignis, bei dem die CommandLine den genauen String enthältbthprops.cpl, was die Sigma-Regel erfüllt. -
Regressionstest-Skript:
# ------------------------------------------------------------- # Fsquirt CPL Lade – bösartige Simulation # Voraussetzung: Sysmon & Sicherheitsüberwachung aktiviert (siehe Vorab) # ------------------------------------------------------------- $workDir = "C:TempFsquirtTest" $fsquirt = "$workDirFsquirt.exe" $cpl = "$workDirbthprops.cpl" $payload = "$workDirCaptureScreen.ps1" # 1. Arbeitsverzeichnis vorbereiten New-Item -Path $workDir -ItemType Directory -Force | Out-Null # 2. Bekannte Fsquirt-Binärdatei herunterladen (öffentlich verfügbar) Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Fsquirt.exe" -OutFile $fsquirt # 3. Sich eine bösartige CPL erstellen (Stub) – für die Demo verwenden wir ein einfaches Skript # In einem realen Test eine C++ CPL kompilieren, die die Nutzlast ausführt. $cplContent = @" [Version] Signature="$Windows NT$" [Systemsteuerungs-Desktop] "@ Set-Content -Path $cpl -Value $cplContent -Encoding ASCII # 4. Eine Dummy-Nutzlast erstellen (z.B. einen Screenshot machen) $payloadContent = @" Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing $bounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds $bitmap = New-Object System.Drawing.Bitmap $bounds.Width, $bounds.Height $graphics = [System.Drawing.Graphics]::FromImage($bitmap) $graphics.CopyFromScreen($bounds.Location, [System.Drawing.Point]::Empty, $bounds.Size) $bitmap.Save('$workDirscreenshot.png') "@ Set-Content -Path $payload -Value $payloadContent -Encoding UTF8 # 5. Fsquirt.exe mit der bösartigen CPL ausführen Write-Host "Fsquirt mit bösartiger CPL ausführen..." Start-Process -FilePath $fsquirt -ArgumentList "bthprops.cpl" -WorkingDirectory $workDir -NoNewWindow -Wait # 6. Nutzlastausführung überprüfen (Screenshot-Erstellung) if (Test-Path "$workDirscreenshot.png") { Write-Host "Nutzlast ausgeführt – Screenshot erfasst." } else { Write-Host "Nutzlast wurde NICHT ausgeführt." } # ------------------------------------------------------------- -
Aufräum-Befehle:
# Testartefakte entfernen $workDir = "C:TempFsquirtTest" if (Test-Path $workDir) { Remove-Item -Path $workDir -Recurse -Force Write-Host "Bereinigung abgeschlossen." } else { Write-Host "Keine Artefakte zum Säubern." }