[Rapport d’Op] Du Phishing SSA à AdaptixC2 : Une Intrusion Multi-RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Un acteur malveillant a effectué une intrusion commode en couches en commençant par un e-mail de phishing sur le thème de la Sécurité sociale des États-Unis. L’opération s’est appuyée sur AdaptixC2 comme principal cadre de commande et de contrôle, a utilisé XWorm comme canal d’accès secondaire et pour l’exfiltration basée sur Telegram, et a déployé ScreenConnect pour soutenir l’activité en clavier sous les mains. La campagne a également montré une forte discipline opérationnelle par l’utilisation de la tromperie du nom de fichier RTLO et de multiples chemins de persistance conçus pour survivre à une remédiation partielle.
Enquête
L’enquête a eu lieu dans un environnement Deception.Pro utilisant un poste de travail de déception. Grâce à l’inspection TLS activée, les chercheurs ont pu récupérer le trafic de balise en clair, les URL de téléchargement de charge utile et les poignées de relais ScreenConnect. Cette visibilité a permis d’attribuer l’intrusion à des cadres spécifiques avec une grande confiance plutôt que de dépendre uniquement de suppositions comportementales ou basées sur des empreintes.
Atténuation
Les organisations devraient réduire les risques en activant l’inspection TLS pour le trafic de commande et de contrôle chiffré et en déployant un EDR capable de détecter certutil-basé sur la mise en scène et l’exécution suspecte de PowerShell. La visibilité des extensions de fichier devrait être renforcée pour affaiblir les astuces de nom de fichier basées sur RTLO, et les écritures de clé Run du registre dans des emplacements publics ou accessibles en écriture par l’utilisateur devraient être surveillées de près. Les équipes devraient également inventorier et alerter sur les outils de gestion à distance non autorisés tels que ScreenConnect, surtout lorsqu’ils sont installés via msiexec.
Réponse
Si cette activité est détectée, isolez immédiatement les points d’extrémité affectés pour couper le trafic de commande et de contrôle et empêcher tout autre mouvement latéral via l’énumération SAMR ou LSAD. Effectuez une analyse judiciaire complète pour les DLL XWorm et les artefacts AdaptixC2 dans les dossiers publics et autres chemins de mise en scène courants. Les enquêteurs doivent également examiner les modèles d’exfiltration liés à Telegram et auditer les clés de persistance du registre qui imitent les noms de mise à jour légitimes.
graph TB %% Section des définitions de classes classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef discovery fill:#ccffcc %% Définition des nœuds %% Accès initial et exécution action_phishing[« <b>Action</b> – <b>T1566.002 Hameçonnage : Lien de spearphishing</b><br/>La victime reçoit un courriel usurpé prétendant provenir de la SSA,<br/>contenant un lien vers une archive RAR. »] class action_phishing action action_masquerade[« <b>Action</b> – <b>T1036.008 Masquage : Déguisement du type de fichier</b><br/>L’attaquant utilise l’astuce RTLO pour déguiser un exécutable PE32<br/>en document PDF (.fdp.exe). »] class action_masquerade action action_user_exec[« <b>Action</b> – <b>T1204.002 Exécution par l’utilisateur : Fichier malveillant</b><br/>L’utilisateur interagit avec le<br/>fichier malveillant déguisé. »] class action_user_exec action %% Transfert d’outils et persistance tool_certutil[« <b>Outil</b> – <b>Nom : certutil.exe</b><br/><b>Description :</b> Utilitaire natif de Windows utilisé pour<br/>télécharger la charge utile AdaptixC2. »] class tool_certutil tool action_ingress[« <b>Action</b> – <b>T1105 Transfert d’outils vers le système cible</b><br/>La charge utile est téléchargée depuis<br/>cloudpre-005[.]online. »] class action_ingress action action_persistence[« <b>Action</b> – <b>T1547.001 Exécution automatique au démarrage ou à l’ouverture de session :<br/>Clés Run du Registre / Dossier de démarrage</b><br/>Crée des clés de registre telles que PayloadService,<br/>JavaUpdater et Updater dans C:\Users\Public\. »] class action_persistence action %% C2 et accès à distance malware_adaptix[« <b>Logiciel malveillant</b> – <b>Nom : AdaptixC2</b><br/><b>Description :</b> Agent beacon utilisé pour les<br/>opérations de commande et contrôle (C2). »] class malware_adaptix malware action_c2_web[« <b>Action</b> – <b>T1071.001 Protocole de couche applicative :<br/>Protocoles Web</b><br/>AdaptixC2 communique par beaconing<br/>avec des URL Web spécifiques. »] class action_c2_web action tool_screenconnect[« <b>Outil</b> – <b>Nom : ScreenConnect</b><br/><b>Description :</b> Outil d’accès à distance déployé<br/>pour un contrôle interactif. »] class tool_screenconnect tool action_remote_access[« <b>Action</b> – <b>T1219 Outils d’accès à distance</b><br/>Déploiement de deux clients indépendants<br/>afin de maintenir un accès interactif. »] class action_remote_access action %% Exfiltration et découverte malware_xworm[« <b>Logiciel malveillant</b> – <b>Nom : XWorm</b><br/><b>Description :</b> Logiciel malveillant utilisé pour relayer<br/>les données volées via Telegram. »] class malware_xworm malware action_exfil[« <b>Action</b> – <b>T1567 Exfiltration via un service Web</b><br/>Les données sont exfiltrées à l’aide de<br/>l’API Telegram Bot. »] class action_exfil action action_discovery[« <b>Action</b> – <b>T1069.002 Découverte des groupes d’autorisations :<br/>Groupes de domaine</b><br/>Énumération de l’environnement de domaine via<br/>SAMR et LSAD RPC. »] class action_discovery discovery %% Connexions action_phishing –>|mène_à| action_masquerade action_masquerade –>|mène_à| action_user_exec action_user_exec –>|déclenche| tool_certutil tool_certutil –>|exécute| action_ingress action_ingress –>|installe| malware_adaptix malware_adaptix –>|établit| action_persistence malware_adaptix –>|utilise| action_c2_web action_remote_access –>|utilise| tool_screenconnect malware_adaptix –>|déploie| action_remote_access malware_adaptix –>|exploite| malware_xworm malware_xworm –>|effectue| action_exfil malware_adaptix –>|effectue| action_discovery
Flux d’attaque
Détections
Points de persistance possibles [ASEPs – Ruche Software/NTUSER] (via registry_event)
Voir
Utilisation de Certutil pour le codage des données et les opérations de certificat (via cmdline)
Voir
Exécution suspecte depuis le profil utilisateur public (via process_creation)
Voir
Logiciels alternatifs d’accès/gestion à distance (via process_creation)
Voir
Une archive a été extraite vers un répertoire suspect à l’aide de Powershell (via powershell)
Voir
Fichiers suspects dans le profil utilisateur public (via file_event)
Voir
Communication de domaine de recherche IP possible tentée (via dns)
Voir
Service DNS dynamique possible contacté (via dns)
Voir
IOCs (HashSha256) à détecter : [Rapport d’opération] De SSA Phish à AdaptixC2 : Une intrusion multi-RAT
Voir
IOCs (HashMd5) à détecter : [Rapport d’opération] De SSA Phish à AdaptixC2 : Une intrusion multi-RAT
Voir
IOCs (SourceIP) à détecter : [Rapport d’opération] De SSA Phish à AdaptixC2 : Une intrusion multi-RAT
Voir
IOCs (DestinationIP) à détecter : [Rapport d’opération] De SSA Phish à AdaptixC2 : Une intrusion multi-RAT
Voir
Détection de la communication de commande et de contrôle AdaptixC2 [Connexion réseau Windows]
Voir
Détection du déploiement AdaptixC2 et ScreenConnect via Certutil et Msiexec [Création de processus Windows]
Voir
Exécution de simulation
Prérequis : la vérification préalable de télémétrie et de base doit avoir réussi.
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 récit DOIVENT directement refléter les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.
-
Narrative de l’attaque et commandes : L’adversaire a réussi à établir une tête de pont sur la machine cible via un lien de spearphishing. Pour maintenir le contrôle et recevoir des instructions, l’agent AdaptixC2 tente de « se connecter » avec son serveur de commande et de contrôle. L’agent est programmé pour atteindre un URI codé en dur (
98.81.111.167/updates/check.php) ou une IP de repli (23.20.229.225) via le port 443. En simulant ces tentatives de connexion exactes, nous validons si la règle de détection de pare-feu/réseau identifie correctement ces modèles malveillants connus. -
Script de test de régression : Ce script utilise PowerShell pour simuler deux tentatives de connexion distinctes : une ciblant l’URL spécifique et une ciblant l’adresse IP spécifique.
# Simulation de la Communication C2 d'AdaptixC2 Write-Host "[+] Démarrage de la simulation d'AdaptixC2..." -ForegroundColor Cyan # Scénario 1 : Connexion au modèle d'URL malveillant spécifique Write-Host "[+] Tentative de connexion à l'URL malveillante : 98.81.111.167/updates/check.php" -ForegroundColor Yellow try { # Nous utilisons -ErrorAction SilentlyContinue car l'IP ne résoudra probablement pas ou ne répondra pas, # mais la tentative de connexion elle-même générera la télémétrie. Invoke-WebRequest -Uri "http://98.81.111.167/updates/check.php" -Method Get -ErrorAction SilentlyContinue } catch { Write-Host "[!] Connexion échouée (attendu), mais la télémétrie devrait être générée." -ForegroundColor Gray } # Scénario 2 : Connexion à l'IP malveillante spécifique sur le port 443 Write-Host "[+] Tentative de connexion à l'IP malveillante : 23.20.229.225 sur le port 443" -ForegroundColor Yellow try { $tcpClient = New-Object System.Net.Sockets.TcpClient $connection = $tcpClient.BeginConnect("23.20.229.225", 443, $null, $null) $success = $connection.AsyncWaitHandle.WaitOne(5000, $false) if ($success) { Write-Host "[+] Connexion réussie (improbable dans un test réel)." -ForegroundColor Green } else { Write-Host "[!] Temps de connexion dépassé (attendu), mais la télémétrie devrait être générée." -ForegroundColor Gray } $tcpClient.Close() } catch { Write-Host "[!] Erreur lors de la tentative de connexion TCP." -ForegroundColor Red } Write-Host "[+] Simulation terminée." -ForegroundColor Cyan -
Commandes de nettoyage :
# Aucun artefact persistant n'est créé par cette simulation car elle ne génère que du trafic réseau. Write-Host "[+] Aucun nettoyage requis. Les connexions réseau étaient transitoires." -ForegroundColor Green