SOC Prime Bias: Moyen

27 May 2026 15:40 UTC

Une Campagne de Phishing Déploie une Variante de PureLogs Basée sur JavaScript pour Voler des Données Sensibles

Author Photo
SOC Prime Team linkedin icon Suivre
Une Campagne de Phishing Déploie une Variante de PureLogs Basée sur JavaScript pour Voler des Données Sensibles
shield icon

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’avertir

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 :

    1. Étape 1 – Dépôt JavaScript : L’attaquant livre une .js charge utile malveillante (encodée) via un email de phishing. La charge utile est enregistrée dans %TEMP% et exécutée avec wscript.exe.
    2. É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.
    3. Étape 3 – Hollowing de processus via MsBuild : Le script PowerShell crée MsBuild.exe en 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.
  • 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