SOC Prime Bias: Critique

18 Feb 2026 13:42 UTC

Suivi des Campagnes de Malware avec du Matériel Réutilisé

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Suivi des Campagnes de Malware avec du Matériel Réutilisé
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Cette campagne réutilise une image JPEG « porteuse » qui cache une charge utile malveillante entre les balises BaseStart- et -BaseEnd. L’accès initial est obtenu grâce à l’exploitation de Microsoft Equation Editor (CVE-2017-11882) dans une pièce jointe conçue, qui télécharge un HTA. Le HTA exécute PowerShell pour récupérer un .NET étape binaire. La réutilisation de la même image sur de nombreux échantillons suggère que l’opérateur s’appuie sur des composants reproductibles.

Enquête

Le chercheur a observé TELERADIO_IB_OBYEKTLRIN_BURAXILIS_FORMASI.xIs contenant l’exploit Equation Editor. La chaîne récupère un HTA d’une IP malveillante, qui exécute PowerShell pour télécharger une seconde charge utile hébergée sur une autre IP. L’étape finale est un binaire .NET intégré dans le porteur JPEG et récupéré via les délimiteurs BaseStart/-BaseEnd. Des images porteuses similaires ont été trouvées dans des dizaines de soumissions VirusTotal.

Atténuation

Appliquer le correctif CVE-2017-11882 et maintenir Office à jour. Bloquer ou restreindre l’exécution des HTA, imposer la signature des scripts PowerShell, et utiliser le filtrage URL/IP pour refuser l’accès à l’infrastructure d’hébergement.

Réponse

Détecter et mettre en quarantaine la pièce jointe et l’étape HTA, et alerter sur l’activité de téléchargement PowerShell aux IPs identifiées. Isoler les hôtes affectés et effectuer une analyse de la mémoire pour localiser et supprimer la charge utile .NET en mémoire.

Flux d’attaque

Exécution de Simulation

Prérequis : Le contrôle préalable de télémétrie et de base 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.

  • Récit et Commandes d’Attaque :
    Un adversaire a exploité une vulnérabilité du côté client qui fournit un fichier HTA malveillant. Le HTA lance PowerShell avec une ligne de commande qui intègre une charge utile malveillante (par exemple, Invoke‑Expression pour lancer calc.exe) encodée en Base64. La charge utile est encadrée entre les chaînes BaseStart- and -BaseEnd afin que l’attaquant puisse l’extraire de manière fiable à la volée. La commande exécutée sur l’hôte compromis est :

    powershell.exe -NoProfile -Command "$b='BaseStart-$( [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe')) )-BaseEnd'; $payload=$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String($payload)))"

    Cette ligne de commande satisfait à la fois les sélection_base_début and sélection_base_fin conditions, entraînant le déclenchement de la règle.

  • Script de Test de Régression : Le script PowerShell autonome suivant reproduit le comportement malveillant et peut être exécuté sur n’importe quel hôte Windows avec la télémétrie activée ci-dessus.

    # Script de Test de Régression – déclenche la règle de détection
    # 1. Construire la charge utile encodée en Base64 (lancer calc.exe)
    $payload = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes('Start-Process calc.exe'))
    
    # 2. Assembler la ligne de commande complète avec les délimiteurs
    $cmd = "BaseStart-$payload-BaseEnd"
    
    # 3. Exécuter PowerShell avec la ligne de commande créée
    $fullCommand = "powershell.exe -NoProfile -Command `"& {`$b='$cmd'; `$payload=`$b -replace '.*BaseStart-','' -replace '-BaseEnd.*',''; IEX ([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(`$payload)))`""
    
    # 4. Exécuter la commande (cela lancera calc.exe)
    Invoke-Expression $fullCommand
  • Commandes de Nettoyage : Supprimez tous les artefacts et terminez le processus lancé si nécessaire.

    # Nettoyage – fermer la calculatrice si elle est toujours en cours d'exécution et effacer l'historique des commandes
    Get-Process calc -ErrorAction SilentlyContinue | Stop-Process -Force
    # Optionnellement effacer l'historique PowerShell (uniquement pour la session en cours)
    Remove-Item (Get-PSReadlineOption).HistorySavePath -ErrorAction SilentlyContinue