Opération Poisson : Décomposer une opération cybercriminelle entière
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
Détections
Un service DNS dynamique possible a été contacté (via dns)
Voir
Détection du vol d’identifiants et de l’hébergement de charges utiles via des compartiments Backblaze B2 [Windows Sysmon]
Voir
Accès réseau persistant via VPN Tailscale et tunnel inverse SSH [Connexion réseau Windows]
Voir
Exécution du cadre Havoc C2 avec PowerShell pour établir un tunnel SSH [Windows PowerShell]
Voir
Escalade de privilèges et exécution d’outils à distance par Poisson [Création de processus Windows]
Voir
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.zipdans un répertoire temporaire. Pour élever les privilèges, ils exécutent une commande PowerShell utilisant leRunAsverbe, ce qui est une méthode courante pour déclencher des invites UAC. Enfin, ils exécutentrustdesk.exepour 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é."