Exploitation d’Outils Légitimes de Bas Niveau pour Aider les Ransomwares à Échapper à la Détection Antivirus
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article explique comment les opérateurs de ransomware abusent de diverses utilitaires de bas niveau légitimes tels que Process Hacker, IOBit Unlocker, PowerRun et d’autres outils similaires pour affaiblir les antivirus et la protection des terminaux. En détournant ces binaires signés, les attaquants peuvent obtenir des privilèges de SYSTEM voire de niveau noyau, voler des identifiants et préparer l’environnement pour le déploiement de ransomware. L’article met en lumière l’évolution de la neutralisation des antivirus, passant de simples scripts à des ensembles de capacités intégrées dans les offres modernes de Ransomware-as-a-Service. Il fait également référence à des groupes de ransomware du monde réel qui ont adopté ces méthodes.
Enquête
L’enquête décrit un schéma d’intrusion en deux étapes dans lequel les adversaires utilisent d’abord des outils de bas niveau pour l’escalade des privilèges et l’évasion des antivirus, puis se tournent vers le vol d’identifiants, la manipulation du noyau, et l’exécution de la charge utile du ransomware. L’activité des outils est cartographiée par rapport aux techniques MITRE ATT&CK incluant T1548.002, T1562.001, et T1003.001. Des exemples de cas relient ces utilitaires à des opérations de ransomware telles que LockBit 3.0, Phobos, MedusaLocker, et d’autres.
Atténuation
Les atténuations recommandées comprennent l’application d’une liste d’applications autorisées, la surveillance des terminaisons de processus à grande échelle, l’audit des modifications du registre qui affectent les paramètres antivirus, et la limitation de l’exécution des utilitaires administratifs aux seuls comptes approuvés. Les plateformes de protection des terminaux doivent également renforcer les contrôles d’auto-protection pour résister à l’arrêt forcé des processus et services de sécurité.
Réponse
Lorsque ce comportement est détecté, les organisations doivent alerter sur la résiliation suspecte de processus AV ou EDR, isoler l’hôte impacté, conserver les preuves judiciaires des modifications de fichier et de registre, et enquêter sur l’accès à LSASS lié au vol d’identifiants. La réponse aux incidents doit suivre la chaîne d’attaque observée assez rapidement pour contenir l’intrusion avant que le chiffrement par ransomware ne commence.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Action nodes action_initial_access["<b>Action</b> – <b>T1566.001 Phishing: Spearphishing Attachment</b><br/><b>Description</b>: L’adversaire envoie une pièce jointe malveillante par email qui, une fois ouverte, déploie un chargeur bootstrap.<br/><b>Technique ID</b>: T1566.001"] class action_initial_access action action_priv_esc["<b>Action</b> – <b>T1548.002 Bypass User Account Control</b><br/><b>Description</b>: Exploiter des utilitaires légitimes pour contourner le contrôle de compte utilisateur (UAC) et obtenir des privilèges SYSTEM ou noyau.<br/><b>Technique ID</b>: T1548.002"] class action_priv_esc action action_defense_evasion["<b>Action</b> – <b>T1562 Impair Defenses</b><br/><b>Description</b>: Terminer ou décharger les composants antivirus et EDR pour échapper à la détection.<br/><b>Technique ID</b>: T1562"] class action_defense_evasion action action_credential_access["<b>Action</b> – <b>T1003 OS Credential Dumping</b><br/><b>Description</b>: Décharger les identifiants en cache de la mémoire en utilisant des outils tels que Mimikatz.<br/><b>Technique ID</b>: T1003"] class action_credential_access action action_persistence["<b>Action</b> – <b>T1112 Modify Registry</b><br/><b>Description</b>: Supprimer ou modifier les clés de registre qui lancent des composants antivirus pour éliminer la persistance.<br/><b>Technique ID</b>: T1112"] class action_persistence action action_indicator_removal["<b>Action</b> – <b>T1070.004 File Deletion</b><br/><b>Description</b>: Supprimer les journaux antivirus et autres artefacts forensiques du disque.<br/><b>Technique ID</b>: T1070.004"] class action_indicator_removal action action_impact["<b>Action</b> – <b>T1486 Data Encrypted for Impact</b><br/><b>Description</b>: Chiffrer les fichiers utilisateurs avec une charge utile de ransomware après avoir obtenu des droits SYSTEM.<br/><b>Technique ID</b>: T1486"] class action_impact action %% Tool nodes tool_powerrun["<b>Tool</b> – <b>Name</b>: PowerRun<br/><b>Purpose</b>: Exécuter des binaires avec des privilèges élevés"] class tool_powerrun tool tool_wke["<b>Tool</b> – <b>Name</b>: Windows Kernel Explorer (WKE)<br/><b>Purpose</b>: Obtenir une exécution de niveau noyau"] class tool_wke tool tool_ydark["<b>Tool</b> – <b>Name</b>: YDArk<br/><b>Purpose</b>: S’élever à SYSTEM"] class tool_ydark tool tool_process_hacker["<b>Tool</b> – <b>Name</b>: Process Hacker<br/><b>Purpose</b>: Terminer les processus de sécurité"] class tool_process_hacker tool tool_iobit["<b>Tool</b> – <b>Name</b>: IOBit Unlocker<br/><b>Purpose</b>: Arrêter les services antivirus"] class tool_iobit tool tool_aukills["<b>Tool</b> – <b>Name</b>: AuKill / ProcessKO<br/><b>Purpose</b>: Tuer des processus antivirus spécifiques"] class tool_aukills tool tool_mimikatz["<b>Tool</b> – <b>Name</b>: Mimikatz<br/><b>Purpose</b>: Décharger les identifiants Windows"] class tool_mimikatz tool tool_unlock_it["<b>Tool</b> – <b>Name</b>: Unlock_IT<br/><b>Purpose</b>: Supprimer les clés et journaux de registre AV"] class tool_unlock_it tool tool_atool["<b>Tool</b> – <b>Name</b>: Atool_ExperModel<br/><b>Purpose</b>: Supprimer les clés de démarrage AV"] class tool_atool tool %% Operator node (optional) op_and1(("ET")) class op_and1 operator %% Flow connections action_initial_access –>|mène à| action_priv_esc action_priv_esc –>|mène à| action_defense_evasion action_defense_evasion –>|mène à| action_credential_access action_credential_access –>|mène à| action_persistence action_persistence –>|mène à| action_indicator_removal action_indicator_removal –>|mène à| action_impact %% Tool usage connections action_priv_esc –>|utilise| tool_powerrun action_priv_esc –>|utilise| tool_wke action_priv_esc –>|utilise| tool_ydark action_defense_evasion –>|utilise| tool_process_hacker action_defense_evasion –>|utilise| tool_iobit action_defense_evasion –>|utilise| tool_aukills action_credential_access –>|utilise| tool_mimikatz action_persistence –>|utilise| tool_unlock_it action_persistence –>|utilise| tool_atool action_indicator_removal –>|utilise| tool_unlock_it "
Flux d’attaque
Détections
Possibilité d’abus de l’utilitaire IObitUnlocker (via création de processus)
Voir
Exécution suspecte de Taskkill (via ligne de commande)
Voir
Possibilité de détection d’arguments de Mimikatz (via ligne de commande)
Voir
Tentative possible d’exécution de l’utilitaire TDSSKiller (via ligne de commande)
Voir
Manipulation du service HRSword pour neutraliser l’antivirus [Système Windows]
Voir
Détection de tactiques d’évasion de ransomware utilisant des outils de bas niveau [Création de processus Windows]
Voir
Exécution de simulation
Prérequis : La vérification préliminaire de télémétrie et de référence doit avoir réussi.
-
Narrative de l’attaque et commandes :
L’adversaire a obtenu des droits administratifs sur l’hôte victime et souhaite neutraliser la protection des terminaux avant de déployer les charges utiles de ransomware. En utilisant l’utilitaire légitime HRSword.exe, ils émettent une commande qui arrête le service antivirus (
avservice) et désactive son redémarrage automatique, assurant que le défenseur ne peut pas récupérer le service pendant la fenêtre d’attaque. La commande est exécutée directement dans une console PowerShell pour générer un événement clair de création de processus Sysmon correspondant à la règle de détection. -
Script de test de régression :
<# Simulation de l'utilisation de HRSword.exe pour arrêter un service AV et en désactiver le redémarrage. Ce script doit être exécuté avec des privilèges élevés (Administrateur). #> # Variables $hrswordPath = "$env:ProgramFilesHRSwordHRSword.exe" $serviceName = "avservice" # Assurez-vous que HRSword.exe existe (créez une simulation si ce n'est pas le cas) if (-Not (Test-Path $hrswordPath)) { Write-Host "Création d'un faux HRSword.exe pour la simulation..." # Créez un exécutable factice (une copie de cmd.exe) juste pour les besoins de journalisation Copy-Item "$env:windirSystem32cmd.exe" $hrswordPath -Force } # Exécutez la ligne de commande exacte que la règle Sigma surveille $command = "& `"$hrswordPath`" /service stop $serviceName /disable" Write-Host "Exécution : $command" Invoke-Expression $command # Optionnel : Enregistrer un événement personnalisé pour indiquer l'achèvement (aide à vérifier l'ensemble des processus) Write-EventLog -LogName Application -Source "HRSwordSimulation" -EventId 3000 -EntryType Information -Message "Simulation de l'arrêt de service par HRSword terminée." -
Commandes de nettoyage :
<# Restaurez le service AV à son état d'origine et retirez l'exécutable simulé. #> # Redémarrez le service AV (s'il existe) $serviceName = "avservice" if (Get-Service -Name $serviceName -ErrorAction SilentlyContinue) { Write-Host "Redémarrage du service $serviceName ..." Start-Service -Name $serviceName -ErrorAction SilentlyContinue } # Retirer le faux HRSword.exe (s'il a été créé) $hrswordPath = "$env:ProgramFilesHRSwordHRSword.exe" if (Test-Path $hrswordPath) { Write-Host "Suppression du faux HRSword.exe ..." Remove-Item $hrswordPath -Force } # Effacer l'entrée du journal d'événements personnalisé Get-EventLog -LogName Application -Source "HRSwordSimulation" -After (Get-Date).AddMinutes(-10) | Remove-EventLog