Une Campagne de Phishing Déploie une Variante de PureLogs Basée sur JavaScript pour Voler des Données Sensibles
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne de phishing utilise une pièce jointe JavaScript malveillante pour décrypter et exécuter un script PowerShell. Ce script effectue ensuite un hollowing de processus pour injecter un téléchargeur .NET dans le processus MsBuild.exe de confiance. Le téléchargeur se connecte à un serveur de commande et de contrôle pour récupérer un plugin PureLogs qui vole des identifiants, des données de navigateur, des informations de portefeuille de cryptomonnaies, et d’autres actifs sensibles. La chaîne d’attaque est hautement furtive et repose sur un cryptage par couches en conjonction avec des techniques d’exécution sans fichier pour réduire la détection.
Enquête
Les FortiGuard Labs ont examiné la pièce jointe de l’email, le JavaScript obscurci, le script PowerShell déposé, et les composants .NET en mémoire utilisés plus tard dans l’attaque. Pendant l’analyse, les chercheurs ont observé la création d’un MsBuild.exe processus hollowed, le chargement d’une DLL de téléchargeur, et l’exécution d’un plugin PureLogs qui a extrait des données des navigateurs, de Discord, de portefeuilles crypto, et d’autres applications. Le trafic réseau capturé montrait des communications GET et POST chiffrées avec un seul serveur de commande et de contrôle.
Atténuation
Le rapport recommande de renforcer le filtrage des emails, de limiter l’exécution de scripts dans la mesure du possible, et de surveiller les activités PowerShell suspectes et le hollowing de processus impliquant MsBuild.exe. Il conseille également d’utiliser des outils de détection et de réponse sur les points de terminaison pouvant identifier les assemblages .NET en mémoire et les comportements réseau sortants inhabituels liés à la livraison de logiciels malveillants en plusieurs étapes.
Réponse
Si cette activité est détectée, isolez le point de terminaison affecté, terminez le MsBuild.exe processus malveillant, et bloquez l’adresse IP de commande et de contrôle. Les enquêteurs doivent ensuite effectuer une analyse médico-légale pour déterminer si des identifiants ou des données sensibles ont été volés et réinitialiser les comptes exposés si nécessaire. Le contenu de détection devrait également être mis à jour pour couvrir l’abus de PowerShell, le hollowing de processus et le comportement lié à PureLogs.
Flux d’attaque
Nous mettons encore à jour cette partie. Inscrivez-vous pour être notifié
M’avertirDétections
Possibilité d’exécution à travers des lignes de commande PowerShell cachées (via cmdline)
Voir
Exécution de fichiers PowerShell dans un répertoire suspect utilisant la politique de contournement d’exécution (via cmdline)
Voir
LOLBAS WScript / CScript (via création de processus)
Voir
IOC (HashSha256) pour détecter : FortiGuard Labs Threat Research déploie une variante PureLogs entraînée par JavaScript pour voler des données sensibles
Voir
IOC (SourceIP) pour détecter : FortiGuard Labs Threat Research déploie une variante PureLogs entraînée par JavaScript pour voler des données sensibles
Voir
IOC (DestinationIP) pour détecter : FortiGuard Labs Threat Research déploie une variante PureLogs entraînée par JavaScript pour voler des données sensibles
Voir
Exécution de scripts PowerShell sans fichier et hollowing de processus via des assemblages .NET [Windows Powershell]
Voir
Détection du déploiement de la variante PureLogs entraînée par JavaScript via PowerShell et hollowing de processus [Création de processus Windows]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de télémétrie et de base doit avoir été validé.
Rationale : Cette section détaille l’exécution précise de la technique adverse (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.
-
Récit d’attaque et commandes :
- Étape 1 – Dépôt JavaScript : L’attaquant livre une
.jscharge utile malveillante (encodée) via un email de phishing. La charge utile est enregistrée dans%TEMP%et exécutée avecwscript.exe. - Étape 2 – Lanceur PowerShell : Le JavaScript lance PowerShell avec les drapeaux
-ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File, pointant vers un script secondaire qui effectue le hollowing de processus. - Étape 3 – Hollowing de processus via MsBuild : Le script PowerShell crée
MsBuild.exeen mode suspendu, injecte la charge utile malveillante (une DLL fictive), et reprend le processus, atteignant l’exécution tout en apparaissant comme un outil de construction légitime.
- Étape 1 – Dépôt JavaScript : L’attaquant livre une
-
Script de test de régression : (PowerShell – exécuter en tant qu’utilisateur normal, ne nécessite pas de fichiers externes)
# -------------------------------------------------------------- # Simulation de la variante PureLogs – JavaScript → PowerShell → MsBuild # -------------------------------------------------------------- # 1. Créer un JavaScript malveillant (encodé en base64 pour imiter l'obfuscation) $jsPayload = @" // JS malveillant : lance PowerShell avec des drapeaux de contournement var shell = new ActiveXObject("WScript.Shell"); var psCmd = "powershell.exe -ExecutionPolicy Bypass -NoProfile -WindowStyle Hidden -File ""%TEMP%launch.ps1"""; shell.Run(psCmd, 0, false); "@ $jsPath = "$env:TEMPmalicious.js" $jsPayload | Set-Content -Path $jsPath -Encoding ASCII # 2. Créer une charge utile PowerShell qui effectue le hollowing de processus avec MsBuild $psPayload = @" # Lancez MsBuild en mode suspendu $msbuildPath = (Get-Command MsBuild.exe).Source $si = New-Object System.Diagnostics.ProcessStartInfo $si.FileName = $msbuildPath $si.UseShellExecute = $false $si.CreateNoWindow = $true $si.Arguments = "/t:Compile" $proc = [System.Diagnostics.Process]::Start($si) Start-Sleep -Milliseconds 500 # permettre le temps de création # Simuler le hollowing en écrivant simplement un fichier fictif dans l'espace mémoire du processus # (le vrai hollowing utiliserait des appels à l'API Windows ; ici nous gardons juste le processus vivant) Write-Host "Processus hollowing simulé – MsBuild en cours d'exécution" "@ $psPath = "$env:TEMPlaunch.ps1" $psPayload | Set-Content -Path $psPath -Encoding ASCII # 3. Exécutez le JavaScript – c'est le point d'entrée que la règle surveille wscript.exe $jsPath # Attendez une courte période pour garantir que les journaux sont générés Start-Sleep -Seconds 10 -
Commandes de nettoyage :
# Terminer tous les processus MsBuild en suspens lancés par la simulation Get-Process MsBuild -ErrorAction SilentlyContinue | Stop-Process -Force # Supprimer les artefacts Remove-Item "$env:TEMPmalicious.js" -ErrorAction SilentlyContinue Remove-Item "$env:TEMPlaunch.ps1" -ErrorAction SilentlyContinue