Analyse de SHEET#CREEP : Le Malware Revient avec une Nouvelle Obfuscation de la Configuration
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une opération d’espionnage active connue sous le nom de SHEETCREEP repose sur un trojan d’accès distant en C# qui utilise l’API Google Sheets pour le commandement et le contrôle. Les attaquants délivrent le malware via une attraction de phishing au thème diplomatique sous forme de fichier ISO, après quoi le RAT établit sa persistance et exécute des commandes grâce à un espace de travail PowerShell en cours de processus. Les échantillons récents montrent que les opérateurs ont renforcé le malware en introduisant une obfuscation basée sur XOR pour les données de configuration.
Enquête
L’équipe de recherche sur les menaces de Securonix a découvert la campagne en extrayant des identifiants de compte de service Google Cloud intégrés depuis le binaire du RAT. Après s’être authentifiés à la feuille de calcul de commande et de contrôle en direct, les chercheurs ont identifié 91 onglets de victimes actifs, y compris des bacs à sable, des environnements de recherche, et une victime à haute confiance située au Pakistan. Leur analyse a également montré que la protection de la configuration du malware avait évolué grâce à une approche d’obfuscation mise à jour.
Atténuation
Les organisations devraient éviter d’ouvrir les pièces jointes non sollicitées, en particulier les fichiers ISO contenant des fichiers de raccourci LNK. Les défenseurs devraient surveiller le %LOCALAPPDATA%MicrosoftVault répertoire pour les exécutables suspects et examiner les tâches planifiées pour des entrées trompeuses ou inattendues. Une visibilité forte de l’endpoint grâce à des outils comme Sysmon et AMSI peut également aider à détecter l’activité PowerShell en cours de processus liée à ce malware.
Réponse
Si un trafic HTTPS inhabituel vers les services API Google est observé à partir de processus non-navigateurs, le système affecté devrait être isolé immédiatement. Les équipes de sécurité devraient inspecter les tâches planifiées à la recherche d’éléments non autorisés tels que WindowsVaultSyncService. Un examen judiciaire de %LOCALAPPDATA%MicrosoftVault devrait également être effectué pour identifier les binaires cachés ou attribués au système associés à l’intrusion.
graph TB %% Section de définition des classes classDef initial_access fill:#f96,stroke:#333,stroke-width:2px classDef execution fill:#3498db,stroke:#333,stroke-width:2px classDef persistence fill:#2ecc71,stroke:#333,stroke-width:2px classDef evasion fill:#9b59b6,stroke:#333,stroke-width:2px classDef command_control fill:#e74c3c,stroke:#333,stroke-width:2px classDef malware fill:#ecf0f1,stroke:#333,stroke-width:2px %% Nœuds d’accès initial node_iso[« <b>Fichier</b> : UAE-India_Strategic_Partnership_Week.iso<br/><b>Action</b> : Montage ISO<br/><b>Contexte</b> : Thème diplomatique utilisé pour l’ingénierie sociale »] class node_iso initial_access node_lnk[« <b>Fichier</b> : Raccourci LNK malveillant<br/><b>Technique</b> : T1027.012 – Fichiers ou informations obfusqués : Dissimulation d’icône LNK<br/><b>Description</b> : Fichier LNK déguisé avec une icône PDF pour tromper l’utilisateur »] class node_lnk initial_access %% Nœuds d’exécution et dropper node_user_exec[« <b>Action</b> : T1204.002 – Exécution par l’utilisateur : Fichier malveillant<br/><b>Description</b> : La victime interagit avec le fichier LNK malveillant »] class node_user_exec execution node_dropper[« <b>Malware</b> : Dropper C#<br/><b>Fichier</b> : Document_11052026-03578240540350-93.exe<br/><b>Fonction</b> : Extrait un PDF leurre et dépose le payload RAT »] class node_dropper execution %% Nœuds de persistance et d’évasion node_rat[« <b>Malware</b> : SHEETCREEP RAT<br/><b>Processus</b> : vaultsvc.exe<br/><b>Emplacement</b> : %LOCALAPPDATA%\\Microsoft\\Vault\\vaultsvc.exe »] class node_rat malware node_attr_evasion[« <b>Action</b> : T1027.008 – Fichiers ou informations obfusqués : Payloads supprimés<br/><b>Description</b> : Définition des attributs du fichier RAT en Caché et Système »] class node_attr_evasion evasion node_persistence[« <b>Action</b> : T1137 – Démarrage automatique des applications Office<br/><b>Méthode</b> : Tâche planifiée via API COM<br/><b>Nom de la tâche</b> : WindowsVaultSyncService »] class node_persistence persistence node_melt[« <b>Action</b> : T1070.004 – Suppression d’indicateurs : Suppression de fichiers<br/><b>Description</b> : La routine melt supprime le dropper et le remplace par un PDF légitime »] class node_melt evasion %% Nœuds C2 et évasion avancée node_c2_api[« <b>Technique</b> : T1102.002 – Service Web : Communication bidirectionnelle<br/><b>Canal</b> : Google Sheets API<br/><b>Authentification</b> : Compte de service GCP et clé RSA-2048 »] class node_c2_api command_control node_xor_cfg[« <b>Technique</b> : T1573.002 – Canal chiffré<br/><b>Description</b> : Configuration chiffrée par XOR avec la clé ‘discrete’ pour l’identifiant Spreadsheet »] class node_xor_cfg command_control node_powershell_evasion[« <b>Technique</b> : T1036.011 – Usurpation : Remplacement des arguments de processus<br/><b>Description</b> : Exécution de commandes via un espace d’exécution PowerShell en processus pour contourner l’EDR »] class node_powershell_evasion evasion %% Flux des connexions node_iso –>|contient| node_lnk node_lnk –>|déclenche| node_user_exec node_user_exec –>|exécute| node_dropper node_dropper –>|dépose| node_rat node_dropper –>|applique_attributs| node_attr_evasion node_dropper –>|établit| node_persistence node_dropper –>|effectue| node_melt node_rat –>|communique_via| node_c2_api node_rat –>|utilise| node_xor_cfg node_rat –>|exécute_des_commandes_via| node_powershell_evasion
Flux d’Attaque
Détections
Utilisation Possible du Choix pour Retarder l’Exécution (via cmdline)
Voir
Image Optique VHDMP Montée (via VHDMP)
Voir
Tâche Planifiée Suspecte (via audit)
Voir
Activité Potentiellement Suspecte de l’Utile de Commande et de Contrôle Google (via proxy)
Voir
IOCs (HashSha256) pour détecter : Analyse de SHEET#CREEP : SHEETCREEP est de retour avec une obfuscation de configuration différente
Voir
IOCs (SourceIP) pour détecter : Analyse de SHEET#CREEP : SHEETCREEP est de retour avec une obfuscation de configuration différente
Voir
IOCs (DestinationIP) pour détecter : Analyse de SHEET#CREEP : SHEETCREEP est de retour avec une obfuscation de configuration différente
Voir
Détection de la Communication C2 de Sheet#CREEP via l’API Google Sheets [Pare-feu]
Voir
Détecter l’Utilisation du Mutex du Malware SHEET#CREEP [Windows Sysmon]
Voir
Détection des Modèles de Persistance et d’Exécution de SHEETCREEP [Création de Processus Windows]
Voir
Exécution de Simulation
Prérequis : Le Vérification Pré-vol de la Télémétrie & de la Ba seline doit avoir été réussie.
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 récits DOIVENT refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés entraîneront un faux diagnostic.
-
Narratif et Commandes d’Attaque : L’adversaire vise à établir la persistance et à exécuter un trojan d’accès à distance (RAT) en utilisant la technique SHEETCREEP. Tout d’abord, ils simulent l’exécution initiale via un fichier LNK malveillant qui appelle
cmd.exepour lancer un exécutable suspect particulier. Ensuite, ils établissent la persistance en créant une tâche planifiée nomméeWindowsVaultSyncServiceavec une description trompeuse pour se fondre dans les mises à jour système. Enfin, ils déploient la charge utilevaultsvc.exedans leC:Usersrépertoire et l’exécutent pour déclencher la dernière partie de la logique de détection.AppDataLocalMicrosoftVault -
Script de Test de Régression :
# Script de Simulation SHEETCREEP # Remarque : Ce script doit être exécuté avec des privilèges administratifs pour créer des tâches planifiées. $targetDir = "$env:LOCALAPPDATAMicrosoftVault" $payloadName = "vaultsvc.exe" $payloadPath = "$targetDir$payloadName" $taskName = "WindowsVaultSyncService" $taskDesc = "Tâche de Mise à Jour Windows Edge Core Discord Update" Write-Host "[+] Démarrage de la Simulation de SHEETCREEP..." -ForegroundColor Cyan # 1. Simuler la Sélection 1 : Exécution CMD avec une chaîne spécifique Write-Host "[+] Simulation de la Sélection 1 : Modèle de commande CMD..." -ForegroundColor Yellow Start-Process cmd.exe -ArgumentList '/c start "" "Document_11052026-03578240540350-93.exe"' -WindowStyle Hidden # 2. Simuler la Sélection 2 : Création de Tâche Planifiée Write-Host "[+] Simulation de la Sélection 2 : création de Tâche Planifiée..." -ForegroundColor Yellow $action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c echo Persistance Établie" $trigger = New-ScheduledTaskTrigger -AtLogOn Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskName -Description $taskDesc -Force # 3. Simuler la Sélection 3 : Placement et Exécution de la Charge Utile Write-Host "[+] Simulation de la Sélection 3 : Déploiement et exécution de la charge utile..." -ForegroundColor Yellow if (!(Test-Path $targetDir)) { New-Item -Path $targetDir -ItemType Directory -Force | Out-Null } # Créer un fichier binaire fictif pour imiter le RAT New-Item -Path $payloadPath -ItemType File -Force | Out-Null # Exécuter la charge utile fictive Start-Process -FilePath $payloadPath -WindowStyle Hidden -ErrorAction SilentlyContinue Write-Host "[+] Commandes de simulation envoyées. Vérifiez les alertes SIEM." -ForegroundColor Green -
Commandes de Nettoyage :
# Nettoyage de la Simulation SHEETCREEP $targetDir = "$env:LOCALAPPDATAMicrosoftVault" $payloadPath = "$targetDirvaultsvc.exe" $taskName = "WindowsVaultSyncService" Write-Host "[+] Nettoyage des artefacts de simulation..." -ForegroundColor Cyan # Supprimer la Tâche Planifiée Unregister-ScheduledTask -TaskName $taskName -Confirm:$false -ErrorAction SilentlyContinue # Supprimer la Charge Utile et le Répertoire if (Test-Path $payloadPath) { Remove-Item $payloadPath -Force } if (Test-Path $targetDir) { Remove-Item $targetDir -Recurse -Force } Write-Host "[+] Nettoyage terminé." -ForegroundColor Green