SOC Prime Bias: High

27 Aug 2026 08:10 UTC

PavinLoader se propage via ClickFix et faux leurres de téléchargement

Author Photo
SOC Prime Team linkedin icon Suivre
PavinLoader se propage via ClickFix et faux leurres de téléchargement
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

PavinLoader est un chargeur .NET à plusieurs étapes observé dans plusieurs campagnes, y compris ClickFix et des opérations de faux téléchargements de logiciels. Il s’appuie sur des DLL fortement obfusquées, l’abus de MSBuild et EtherHiding via l’infrastructure blockchain pour récupérer les détails de commande et de contrôle. Son principal objectif est de livrer des charges utiles secondaires telles que Amatera Stealer.

Enquête

L’enquête a identifié une chaîne d’infection cohérente construite autour de DLL .NET trojanisées et de l’abus d’utilitaires Windows légitimes tels que MSBuild. Les chercheurs ont documenté comment PavinLoader utilise EtherHiding basé sur la blockchain pour échapper à la détection traditionnelle du réseau. L’analyse des différentes étapes a également révélé des techniques avancées d’anti-analyse, d’anti-forensique et d’obfuscation personnalisée.

Atténuation

Les organisations devraient surveiller l’activité suspecte de MSBuild et l’exécution de fichiers .csproj et .bat inhabituels. Un contrôle strict des applications peut aider à prévenir le chargement non autorisé de DLL, tandis que la surveillance du réseau devrait détecter les connexions inattendues aux points de terminaison RPC blockchain. Bloquer les TLD malveillants connus tels que .lat, .icu, et .shop peut également réduire l’exposition. .csproj or .bat files. Strict application control can help prevent unauthorized DLL loading, while network monitoring should detect unexpected connections to blockchain RPC endpoints. Blocking known malicious TLDs such as .lat, .icu, and .shop may also reduce exposure.

Réponse

Si une activité de PavinLoader est détectée, les hôtes affectés devraient être isolés immédiatement pour empêcher le déplacement latéral ou l’exfiltration de données par Amatera Stealer. Les intervenants devraient effectuer une analyse forensique de la mémoire pour identifier le code .NET injecté et examiner les paramètres de proxy système pour des changements non autorisés. Les journaux réseau devraient également être examinés pour les connexions aux domaines C2 connus et l’activité RPC liée à la blockchain.

Flux d’attaque

Nous mettons toujours à jour cette section.

Détections

LOLBAS Conhost (via cmdline)

Équipe SOC Prime
26 août 2026

Appeler des méthodes .NET suspectes depuis Powershell (via powershell)

Équipe SOC Prime
26 août 2026

Abus possible de Telegram comme canal de commande et contrôle (via dns_query)

Équipe SOC Prime
26 août 2026

Tentative de communication de domaine de recherche IP possible (via dns)

Équipe SOC Prime
26 août 2026

Commande et contrôle suspects par demande DNS de domaine de premier niveau inhabituel (via dns)

Équipe SOC Prime
26 août 2026

IOCs (HashSha256) à détecter : Suivi de PavinLoader à travers ClickFix et des campagnes de faux téléchargement

Règles SOC Prime AI
26 août 2026

IOCs (SourceIP) à détecter : Suivi de PavinLoader à travers ClickFix et des campagnes de faux téléchargement

Règles SOC Prime AI
26 août 2026

IOCs (DestinationIP) à détecter : Suivi de PavinLoader à travers ClickFix et des campagnes de faux téléchargement

Règles SOC Prime AI
26 août 2026

Détecter l’exécution de PavinLoader en utilisant MSBuild et la BAT obfusquée [Création de processus Windows]

Règles SOC Prime AI
26 août 2026

Exécution de simulation

Prérequis : La vérification préliminaire de la télémétrie et de l’étalonnage doit être approuvée.

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. Des exemples abstraits ou non liés entraîneront un mauvais diagnostic.

  • Narration & Commandes d’attaque : L’adversaire vise à déployer PavinLoader en utilisant une tactique d’ingénierie sociale « ClickFix ». Pour échapper à la détection, ils téléchargent une charge utile malveillante déguisée en mise à jour de pilote. Ils placent un script de traitement par lots dans un faux répertoire Conexant au sein de AppData. Ils utilisent ensuite MSBuild.exe pour exécuter ce script de traitement par lots, utilisant le compilateur Microsoft légitime pour exécuter leur commande obfusquée, contournant ainsi les restrictions simples d’exécution et se fondant dans le bruit du système. Conexant directory within AppData. They then use MSBuild.exe to execute this batch script, leveraging the legitimate Microsoft compiler to run their obfuscated command, thereby bypassing simple execution restrictions and blending into system noise.

  • Script de test de régression :

    # Script de simulation PavinLoader
    $userProfile = $env:USERPROFILE
    $targetDir = "$userProfileAppDataLocalConexantlite_bootstrap_2.1.7"
    $batFile = "$targetDirupdater_8219.cmd"
    
    # 1. Créer la structure de répertoire masquée
    New-Item -Path $targetDir -ItemType Directory -Force
    
    # 2. Créer le fichier batch malveillant (simulation de logique obfusquée)
    "@echo off`ncall $batFile /launched" | Out-File -FilePath $batFile -Encoding ascii
    
    # 3. Déclencher l'indicateur 3 : MSBuild exécutant le fichier batch
    Write-Host "[+] Simulation de l'indicateur 3 : Exécution de MSBuild..."
    Start-Process "C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe" -ArgumentList "`"$batFile`"" -Wait
    
    # 4. Déclencher l'indicateur 4 : Exécution de conhost sans interface
    Write-Host "[+] Simulation de l'indicateur 4 : Exécution de conhost sans interface..."
    Start-Process "C:WindowsSystem32conhost.exe" -ArgumentList "--headless cmd.exe /c `"$batFile`" /launched"
  • Commandes de nettoyage :

    # Nettoyer les artefacts de simulation
    $userProfile = $env:USERPROFILE
    $pathsToCleanup = @(
        "$userProfileAppDataLocalLogitech",
        "$userProfileAppDataLocalConexant"
    )
    
    foreach ($path in $pathsToCleanup) {
        if (Test-Path $path) {
            Remove-Item -Path $path -Recurse -Force
            Write-Host "[+] Removed $path"
        }
    }