UAT-10147 Utilise SPECTRE pour la persistance et l’évasion multiplateforme
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
UAT-10147 est un acteur de menace chinois opérant un écosystème multi-plateforme sophistiqué de post-exploitation. Son ensemble d’outils comprend le backdoor multiplateforme SPECTRE, le rootkit Specter Linux, et les outils de fraude SEO tels que BadIIS. L’acteur utilise également des techniques avancées, notamment Bring Your Own Vulnerable Driver (BYOVD) pour désactiver les protections EDR et intègre des flux de travail de développement assistés par IA.
Enquête
Cisco Talos a analysé le code source récupéré et des échantillons de malware pour retracer l’évolution des outils de UAT-10147. L’enquête a identifié des signes de génération de code assistée par IA dans le rootkit Linux et des artefacts de développement distinctifs dans le malware BadIIS. Les chercheurs ont également documenté les structures de commande de l’implant SPECTRE, les techniques d’injection, et les capacités d’évasion de défense au niveau du noyau.
Atténuation
Les organisations doivent renforcer les serveurs IIS et Linux ouverts sur Internet et surveiller le déploiement de pilotes vulnérables connus tels que RTCore64.sys and DBUtil_2_3.sys. Des configurations EDR robustes doivent être appliquées, avec une surveillance du chargement non autorisé de modules du noyau et la création suspecte de services systemd. Les défenses des serveurs Web devraient également inclure un audit des gestionnaires ASHX non autorisés et des en-têtes HTTP inattendus tels que X-ID.
Réponse
Si une activité UAT-10147 est détectée, les serveurs IIS ou Linux compromis doivent être isolés immédiatement pour limiter le mouvement latéral. Les intervenants doivent mener une analyse judiciaire de l’intégrité du noyau et rechercher les flux de données alternatifs NTFS non autorisés. Les journaux système devraient être examinés pour l’installation suspecte de services et le vol potentiel d’identifiants par le dump de la ruche du registre ou l’énumération du gestionnaire d’identifiants.
Flux d’attaque
Nous mettons encore à jour cette partie.
Détections
Utilisation suspecte de Cmdkey (via cmdline)
Commande et contrôle suspect par requête DNS de domaine de niveau supérieur (TLD) inhabituel (via dns)
Fichier caché créé sur un hôte Linux (via file_event)
Détection de la modification du registre SPECTRE pour la persistance [Événement du registre Windows]
Détection de DLL et d’injection de processus SPECTRE [Création de processus Windows]
Détecter l’exécution de commande shell et le chargement de module du noyau de la variante SPECTRE Linux [Création de processus Linux]
Exécution de simulation
Prérequis : La vérification pré-vol de télémétrie et de base 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 liés conduiront à des erreurs de diagnostic.
-
Récit et commandes d’attaque : L’adversaire a obtenu un accès initial via une vulnérabilité Web. Pour établir une persistance profonde et échapper à la détection, ils entendent déployer un rootkit. L’attaquant lance d’abord un shell pour stabiliser sa session. Il exécute ensuite
pspour voir si des processus de surveillance de sécurité sont en cours d’exécution. Enfin, il utiliseinsmodpour charger un module noyau factice, mimant la méthode de la variante SPECTRE d’altération du comportement du noyau pour le contrôle à distance. -
Script de test de régression :
#!/bin/bash # Script de simulation de la variante Linux SPECTRE echo "[+] Début de la simulation de la variante Linux SPECTRE..." # 1. Simuler l'exécution de shell (selection_shell) echo "[+] Étape 1 : Exécution de la commande shell..." /bin/sh -c "echo 'Accès shell établi'" # 2. Simuler la découverte de processus (selection_ps) echo "[+] Étape 2 : Découverte de processus en cours..." ps -ef | grep "simulation" # 3. Simuler le chargement de module du noyau (selection_kernel_module) # Remarque : Cela nécessite sudo. Nous tenterons de charger un module factice ou de simuler la commande. # Pour éviter de planter le système, nous utiliserons un nom de module inexistant # qui génère néanmoins la télémétrie de ligne de commande 'insmod'. echo "[+] Étape 3 : Tentative de chargement du module noyau via insmod..." sudo insmod spectre_rootkit_test.ko || echo "[!] insmod a échoué comme prévu (module non trouvé), mais la télémétrie devrait être générée." echo "[+] Simulation terminée." -
Commandes de nettoyage :
# Le nettoyage est minimal car nous avons utilisé un nom de module inexistant pour éviter l'instabilité du système. # Si un vrai module a été chargé, utilisez : # sudo rmmod spectre_rootkit_test echo "[+] Nettoyage : Aucun changement persistant n'a été fait au noyau."