SOC Prime Bias: Élevé

17 Jun 2026 13:03 UTC

Opération Poisson : Décomposer une opération cybercriminelle entière

Author Photo
SOC Prime Team linkedin icon Suivre
Opération Poisson : Décomposer une opération cybercriminelle entière
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un acteur de menace peu qualifié connu sous le nom de « Poisson » a mené une campagne de vol d’identifiants en plusieurs étapes visant des personnes françaises et une petite entreprise. L’attaquant a utilisé Havoc C2, un enregistreur de frappe Python personnalisé, et a mis en place un accès résilient via OpenSSH et un réseau maillé VPN Tailscale. Cette configuration a permis à l’opérateur de conserver l’accès même après la perturbation de l’infrastructure de commande et de contrôle principale.

Investigation

Cato CTRL a mené un examen approfondi après incident couvrant 33 jours d’activité de l’attaquant et 339 commandes enregistrées. L’enquête a révélé l’utilisation de services gratuits tels que Backblaze B2, DuckDNS et IONOS, ainsi qu’une conception de persistance destinée à survivre aux démantèlements du C2. Les chercheurs ont également récupéré le playbook SSH de l’opérateur et les clés SSH des victimes, qui avaient été par erreur exposés dans un espace de stockage public.

Atténuation

Les défenseurs devraient générer des alertes pour le déploiement du serveur OpenSSH sur les postes de travail et surveiller l’activité du VPN Tailscale sur les systèmes où elle n’est pas attendue. Les organisations doivent également détecter les tunnels inversés SSH et suivre les tâches planifiées suspectes exécutées avec des privilèges élevés. Une remédiation efficace doit aller au-delà de la suppression de l’accès C2 et inclure l’élimination des mécanismes de persistance basés sur un réseau VPN maillé.

Réponse

Lorsque cette activité est identifiée, les équipes de sécurité doivent immédiatement localiser et démanteler toutes les connexions maillées Tailscale ou SSH actives. Les enquêteurs devraient examiner toutes les tâches planifiées et les raccourcis de démarrage pour déceler une persistance non autorisée. Une réinitialisation complète des identifiants est fortement recommandée pour tous les utilisateurs, car l’utilisation d’un enregistreur de frappe crée une forte probabilité de compromission des identifiants.

Flux d’attaque

Exécution de simulation

Prérequis : Le contrôle préalable Télémetry & Base de référence doit avoir réussi.

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 la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non en rapport entraîneront des erreurs de diagnostic.

  • Narration de l’attaque & Commandes: L’adversaire, simulant le groupe « Poisson », vise à établir un point d’accès distant. Premièrement, ils mettent en scène une charge utile en créant un fichier nommé thales.zip dans un répertoire temporaire. Pour élever les privilèges, ils exécutent une commande PowerShell utilisant le RunAs verbe, ce qui est une méthode courante pour déclencher des invites UAC. Enfin, ils exécutent rustdesk.exe pour fournir un canal de communication de bureau distant secondaire. Cette séquence imite le modèle de comportement spécifique (élévation UAC + RustDesk + fichier zip spécifique) défini dans la règle de détection.

  • Script de test de régression :

    # Script de simulation : Émulation TTP Poisson
    
    # 1. Mettre en scène le fichier 'thales.zip' (requis par la logique de détection)
    $targetZip = "$env:TEMPthales.zip"
    New-Item -Path $targetZip -ItemType File -Force
    Write-Host "[+] Staged $targetZip"
    
    # 2. Simuler tentative d'élévation UAC via PowerShell (requis par la logique de détection)
    # Remarque : Ceci déclenchera une invite UAC dans un environnement réel.
    Write-Host "[+] Tentative d'élévation UAC via Start-Process -Verb RunAs..."
    Start-Process powershell.exe -ArgumentList "-Command Write-Host 'Elevation Attempted'" -Verb RunAs
    
    # 3. Simuler l'exécution de RustDesk (requis par la logique de détection)
    # Nous créerons un rustdesk.exe factice dans le dossier temporaire pour déclencher la détection sans installation réelle
    $rustdeskPath = "$env:TEMPrustdesk.exe"
    New-Item -Path $rustdeskPath -ItemType File -Force
    Write-Host "[+] Execution simulée de RustDesk à $rustdeskPath"
    Start-Process $rustdeskPath
  • Commandes de nettoyage :

    # Nettoyer les artefacts de simulation
    Remove-Item -Path "$env:TEMPthales.zip" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue
    Write-Host "[+] Nettoyage terminé."