De W-2 à BYOVD : Comment une recherche fiscale mène à la désactivation AV/EDR en mode noyau
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une vaste opération de malvertising exploite les publicités Google liées aux recherches de formulaires fiscaux pour distribuer un faux installateur ScreenConnect. Cet installateur déploie un crypteur en plusieurs étapes, qui charge ensuite une utilitaire BYOVD appelée HwAudKiller. L’outil installe un pilote audio Huawei signé et utilise un accès au niveau du noyau pour terminer les processus AV et EDR. Une fois les contrôles de sécurité désactivés, les attaquants récupèrent les identifiants LSASS et collectent les identifiants à travers le réseau avec NetExec. L’activité souligne comment la livraison de logiciels malveillants de commodité peut être associée à un pilote de noyau personnalisé pour obtenir un accès furtif, supprimer les défenses et maintenir la persistance.
Enquête
Les chercheurs de Huntress ont suivi le chemin de redirection depuis anukitax.com to bringetax.com et ont confirmé la livraison d’un faux package MSI de ScreenConnect. Le fichier crypteds.exe déposé utilise une astuce d’allocation de mémoire de 2 Go pour l’évasion et lance un shellcode de manière indirecte via timeSetEvent avant de charger HwAudKiller. Cette charge utile écrit Havoc.sys dans %TEMP% et enregistre un service noyau nommé Havoc pour terminer une liste codée en dur de processus de sécurité. Lors d’une deuxième intrusion, les attaquants ont accédé via un compromis VPN, ont réutilisé le même pilote, étendu la liste des processus à tuer pour inclure les processus FortiEDR, dumpé LSASS en utilisant comsvcs.dll, et se sont déplacés latéralement avec NetExec.
Atténuation
Les organisations devraient bloquer ou autoriser de manière stricte les déploiements légitimes de ScreenConnect et surveiller les noms d’hôte de relais d’instance-* d’essai inconnus. Les équipes de sécurité devraient surveiller les pilotes noyau chargés depuis des chemins temporaires et alerter sur l’ID d’événement Sysmon 6 et l’activité d’installation de services Windows. Des contrôles d’exécution stricts devraient être appliqués aux fichiers écrits dans C:WindowsSystemTempScreenConnect et %TEMP%. Les efforts de sensibilisation des utilisateurs devraient également renforcer le fait que les résultats de recherche d’annonces Google ne doivent pas être des sources de confiance pour les téléchargements liés aux impôts.
Réponse
Si un installateur ScreenConnect malveillant est trouvé, isolez immédiatement le terminal, collectez crypteds.exe et tout pilote Havoc.sys déposé, et arrêtez le service Havoc. Commencez les procédures de réinitialisation des identifiants pour les comptes potentiellement compromis et révoquez les accès exposés. Ensuite, scannez l’environnement plus large pour des connexions de relais ScreenConnect supplémentaires, des exécutions de NetExec et des signes de dumping LSASS. Enfin, documentez et partagez les IOCs découverts avec les canaux internes et externes de renseignement sur les menaces.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef driver fill:#ffddaa %% Node definitions initial_access["<b>Technique</b> – T1659 Content Injection<br/><b>Description</b>: Des annonces Google malveillantes redirigent les utilisateurs cherchant des formulaires fiscaux vers une page de destination cachée qui sert un installateur MSI frauduleux ScreenConnect."] class initial_access action tool_google_ads["<b>Tool</b> – Name: Google Ads<br/><b>Purpose</b>: Livrer une annonce malveillante lienant vers la page de destination."] class tool_google_ads tool malware_screenconnect["<b>Malware</b> – Name: ScreenConnect MSI<br/><b>Type</b>: Installateur d’accès à distance."] class malware_screenconnect malware user_execution["<b>Technique</b> – T1204 Exécution par l’utilisateur<br/><b>Description</b>: La victime exécute le form_w9.msi téléchargé, installant ScreenConnect."] class user_execution action remote_desktop["<b>Technique</b> – T1219.002 Logiciel de bureau à distance<br/><b>Description</b>: L’attaquant obtient un contrôle à distance interactif via une session ScreenConnect compromise."] class remote_desktop action obfuscation["<b>Technique</b> – T1027 Fichiers ou informations falsifiés<br/><b>Description</b>: La charge utile utilise un shellcode chiffré XOR, une compression personnalisée et un chargement réfléchissant."] class obfuscation action compile_after_delivery["<b>Technique</b> – T1027.004 Compilation après livraison<br/><b>Description</b>: La charge utile compilée après livraison pour éviter la détection statique."] class compile_after_delivery action reflective_loader["<b>Processus</b> – Nom : Chargeur Réfléchissant<br/><b>Description</b>: Charge le shellcode chiffré au moment de l’exécution."] class reflective_loader process persistence_service["<b>Technique</b> – T1543 Créer ou modifier un processus système<br/><b>Description</b>: Le malware crée un service Windows qui charge un pilote Huawei signé pour fonctionner avec SYSTEM."] class persistence_service action driver_havoc["<b>Driver</b> – Nom : Havoc.sys<br/><b>Description</b>: Pilote noyau Huawei signé chargé depuis %TEMP%."] class driver_havoc driver credential_dump["<b>Technique</b> – T1547.008 Conduire LSASS<br/><b>Description</b>: Le pilote utilise comsvcs.dll via rundll32 pour vider la mémoire LSASS."] class credential_dump action tool_comsvcs["<b>Outil</b> – Nom: comsvcs.dll<br/><b>Utilisation</b>: Invoqué par rundll32 pour le dump LSASS."] class tool_comsvcs tool process_rundll["<b>Processus</b> – Nom : rundll32.exe<br/><b>Description</b>: Exécute comsvcs.dll pour le dump d’identifiants."] class process_rundll process discovery_netscan["<b>Technique</b> – T1018 Découverte de système distant<br/><b>Description</b>: NetScan répertorie les hôtes internes."] class discovery_netscan action tool_netscan["<b>Outil</b> – Nom : NetScan<br/><b>Utilisation</b>: Scanner le réseau pour les hôtes actifs."] class tool_netscan tool lateral_rdp["<b>Technique</b> – T1021.001 Services à distance RDP<br/><b>Description</b>: Utilisation de RDP pour se déplacer latéralement."] class lateral_rdp action tool_rdp["<b>Outil</b> – Nom: RDP<br/><b>Utilisation</b>: Protocole de bureau à distance pour le mouvement latéral."] class tool_rdp tool lateral_nxc["<b>Technique</b> – T1210 Exploitation de services à distance<br/><b>Description</b>: Utiliser NetExec (nxc) pour exécuter des commandes sur des machines distantes."] class lateral_nxc action tool_nxc["<b>Outil</b> – Nom: NetExec (nxc)<br/><b>Utilisation</b>: Exécuter des commandes sur SMB ou RDP."] class tool_nxc tool defense_terminate["<b>Technique</b> – T1027 Évasion des défenses additionnelles<br/><b>Description</b>: Pilote noyau termine les processus de sécurité comme Defender, Kaspersky, SentinelOne."] class defense_terminate action %% Connections initial_access –>|utilise| tool_google_ads tool_google_ads –>|livre| malware_screenconnect malware_screenconnect –>|installé via| user_execution user_execution –>|active| remote_desktop remote_desktop –>|fournit un canal pour| obfuscation obfuscation –>|utilise| compile_after_delivery compile_after_delivery –>|charge via| reflective_loader reflective_loader –>|crée| persistence_service persistence_service –>|charge le pilote| driver_havoc driver_havoc –>|active| credential_dump credential_dump –>|utilise| tool_comsvcs tool_comsvcs –>|exécuté par| process_rundll process_rundll –>|facilite| discovery_netscan discovery_netscan –>|utilise| tool_netscan discovery_netscan –>|active| lateral_rdp lateral_rdp –>|utilise| tool_rdp lateral_rdp –>|active| lateral_nxc lateral_nxc –>|utilise| tool_nxc driver_havoc –>|effectue| defense_terminate "
Flux d’attaque
Détections
Possible tentative de communication de domaine IP Lookup (via dns)
Afficher
Possible attaque BYOVD – Bring Your Own Vulnerable Driver (via audit)
Afficher
Possible infiltration/exfiltration de données/C2 via services/outils Tiers (via dns)
Afficher
Logiciel d’accès/gestion à distance alternatif (via process_creation)
Afficher
Possible dump d’identifiants utilisant Comsvcs.dll (via cmdline)
Afficher
Possible attaque BYOVD – Bring Your Own Vulnerable Driver (via file_event)
Afficher
Énumération possible de processus système (via cmdline)
Afficher
Possible abus de Telegram comme canal de commande et de contrôle (via dns_query)
Afficher
Un service Windows pointant vers un pilote à un emplacement suspect a été créé (via cmdline)
Afficher
Possible infiltration/exfiltration de données/C2 via services/outils Tiers (via proxy)
Afficher
Un service Windows pointant vers un pilote a été créé (via cmdline)
Afficher
Énumération possible du processus Lsass (via cmdline)
Afficher
IOCs (DestinationIP) à détecter : De W-2 à BYOVD : Comment une recherche fiscale conduit à l’élimination AV/EDR en mode noyau
Afficher
IOCs (HashSha256) à détecter : De W-2 à BYOVD : Comment une recherche fiscale conduit à l’élimination AV/EDR en mode noyau
Afficher
IOCs (SourceIP) à détecter : De W-2 à BYOVD : Comment une recherche fiscale conduit à l’élimination AV/EDR en mode noyau
Afficher
Campagne de malvertising livrant un logiciel véreux et récoltant des identifiants [Création de processus Windows]
Afficher
Exécution de simulation
Prérequis : La vérification pré-vol Télémetrie & Baseline doit être passée.
Justificatif : 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 narratif DOIVENT refléter directement les TTPs identifiés et viser à générer la télémetrie exacte attendue par la logique de détection.
-
Narration & Commandes de l’attaque :
- Accès initial via Malvertising : La victime clique sur une annonce malveillante lors de la recherche de formulaires fiscaux, ce qui déclenche un téléchargement furtif de
form_w9.msi. - Installation de logiciel véreux : Le MSI installe silencieusement un outil de support à distance de type ScreenConnect et dépose
crypteds.exeandsent.exedans le%TEMP%répertoire. - Récolte d’identifiants :
crypteds.exeest lancé pour vider les secrets LSA. - DLL Side‑Loading via Rundll32 : Pour échapper à la détection statique, l’attaquant charge une DLL malveillante en utilisant
rundll32.exeavec la DLL systèmecomsvcs.dllcomme point d’entrée, ce qui exécutera la charge utile embarquée.
Les commandes exactes (simulées sur une machine de test) sont:
# 1. Déployer le MSI malveillant (simulé) Start-Process -FilePath "C:Tempform_w9.msi" -ArgumentList "/quiet" -Wait # 2. Lancer l'outil de dump d'identifiants Start-Process -FilePath "$env:TEMPcrypteds.exe" -ArgumentList "/dump" -Wait # 3. Charger la charge utile malveillante via rundll32 en utilisant comsvcs.dll rundll32.exe "C:windowsSystem32comsvcs.dll",LaunchApplication "$env:TEMPsent.exe" - Accès initial via Malvertising : La victime clique sur une annonce malveillante lors de la recherche de formulaires fiscaux, ce qui déclenche un téléchargement furtif de
-
Script de test de régression : Le script ci-dessous automatise les étapes ci-dessus et garantit que la télémetrie générée correspond aux attentes de la règle de détection.
# Script de test de régression – Simule la campagne de malvertising # ----------------------------------------------------------- # 0. Prérequis : Assurez-vous que Sysmon fonctionne avec la journalisation des lignes de commande activée. # Variables $msiPath = "$env:TEMPform_w9.msi" $dumpTool = "$env:TEMPcrypteds.exe" $payload = "$env:TEMPsent.exe" $dllPath = "C:windowsSystem32comsvcs.dll" # Aide : Créer des fichiers fictifs pour imiter les binaires malveillants New-Item -Path $msiPath -ItemType File -Force | Out-Null New-Item -Path $dumpTool -ItemType File -Force | Out-Null New-Item -Path $payload -ItemType File -Force | Out-Null Write-Host "[*] Installation du MSI malveillant (simulé)..." Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" /quiet" -Wait Write-Host "[*] Exécution de l'outil de dump d'identifiants..." Start-Process -FilePath $dumpTool -ArgumentList "/dump" -Wait Write-Host "[*] Exécution de DLL side-loading via rundll32..." rundll32.exe "`"$dllPath`"",LaunchApplication "`"$payload`"" Write-Host "[+] Simulation complète. Vérifiez la détection via le SIEM." -
Commandes de nettoyage : Retirer les artefacts fictifs et arrêter tous les processus persistants.
# Script de nettoyage $paths = @("$env:TEMPform_w9.msi","$env:TEMPcrypteds.exe","$env:TEMPsent.exe") foreach ($p in $paths) { if (Test-Path $p) { Remove-Item -Path $p -Force } } # Terminer tous les processus rundll32 errants déclenchés par le test Get-Process -Name rundll32 -ErrorAction SilentlyContinue | Where-Object {$_.Path -eq "$env:SystemRootSystem32rundll32.exe"} | Stop-Process -Force