SOC Prime Bias: Critique

08 Avr 2026 18:14

UAT-10608 Révélée : Vol de Crédentiels Automatisé à Grande Échelle Contre des Applications Web

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
UAT-10608 Révélée : Vol de Crédentiels Automatisé à Grande Échelle Contre des Applications Web
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Cisco Talos rapporte une opération de grande envergure exploitant la vulnérabilité React2Shell dans les applications Next.js pour voler des identifiants en masse. Les attaquants utilisent un cadre spécialement conçu appelé NEXUS Listener pour extraire des secrets de grande valeur à partir d’hôtes compromis, y compris des variables d’environnement, des clés SSH, des jetons cloud et Kubernetes, et des identifiants API. Talos a observé plus de 766 systèmes impactés à travers plusieurs régions et fournisseurs de cloud. Les données volées sont transmises par des rappels HTTP à un point centralisé C2.

Enquête

Talos a analysé les charges utiles livrées via CVE-2025-55182, qui dépose un script shell à nom aléatoire dans /tmp et l’exécute en utilisant nohup pour une continuité de type persistance. Le script exécute des modules de collecte en plusieurs étapes couvrant les secrets d’environnement, le matériel SSH, les métadonnées cloud, les jetons Kubernetes, les détails Docker et l’historique des commandes. Les résultats sont renvoyés au service NEXUS Listener sur le port 8080. Les enquêteurs ont examiné l’interface web de NEXUS Listener, le stockage des données back-end et la télémétrie réseau associée pour valider les types d’identifiants et l’ampleur de la collecte.

Atténuation

Corrigez les déploiements Next.js pour remédier à l’exposition React2Shell. Appliquez IMDSv2 sur les points de terminaison des métadonnées cloud, faites tourner immédiatement tout secret potentiellement exposé et séparez l’utilisation des clés SSH par environnement et rôle. Ajoutez des contrôles RASP ou des règles WAF conçues pour intercepter les tentatives d’injection de type SSR. Les équipes cloud devraient activer la numérisation des secrets, minimiser les autorisations de rôle d’instance et revoir la configuration côté serveur pour éviter l’exposition accidentelle de variables d’environnement sensibles.

Réponse

Alertez sur les scripts inattendus lancés avec nohup depuis /tmp, en particulier les fichiers dot-préfixés ou nommés aléatoirement, et surveillez le trafic HTTP sortant vers des destinations inconnues sur le port 8080. Bloquez les URL d’exfiltration correspondant à des motifs de rappel connus de NEXUS Listener. Isolez les hôtes impactés, révoquez les clés/jetons compromis et effectuez une analyse légale pour comprendre quelles données ont été collectées et où elles ont été utilisées. Déployez des détections IDS pour l’exploitation de React2Shell et resserrez l’accès au privilège minimal aux métadonnées et aux magasins de secrets.

"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#99ccff classDef malware fill:#ccffcc %% Node definitions tech_initial_access["<b>Technique</b> – <b>T1189 Compromis par Driveu2011by</b><br/><b>Description</b>: L’attaquant obtient un accès initial en exploitant une vulnérabilité dans un site Web public et en exécutant du code sur le système de la victime."] class tech_initial_access technique tool_react2shell["<b>Outil</b> – <b>Nom</b>: React2Shell (CVEu20112025u201155182)<br/><b>Description</b>: Vulnérabilité d’exécution de code à distance pré-authentification dans les applications Next.js."] class tool_react2shell tool tech_exploit_client["<b>Technique</b> – <b>T1203 Exploitation pour Exécution côté Client</b><br/><b>Description</b>: Exploite des vulnérabilités logicielles pour exécuter du code sur un système cible."] class tech_exploit_client technique tech_script_proxy["<b>Technique</b> – <b>T1216 Exécution par Proxy de Script Système</b><br/><b>Description</b>: Utilise des scripts système pour exécuter par proxy du code malveillant."] class tech_script_proxy technique malware_loader["<b>Logiciel malveillant</b> – <b>Nom</b>: Script Chargeur<br/><b>Description</b>: Petit script shell placé dans /tmp avec un nom aléatoire et lancé avec nohup."] class malware_loader malware tech_hide_artifacts["<b>Technique</b> – <b>T1564.011 Cacher les Artéfacts : Ignorer les Interruptions de Processus</b><br/><b>Description</b>: Exécute des processus malveillants en arrière-plan pour éviter la détection."] class tech_hide_artifacts technique tech_network_logon["<b>Technique</b> – <b>T1037.003 Script de Connexion Réseau</b><br/><b>Description</b>: Configure un script de connexion qui s’exécute à chaque connexion de l’utilisateur au réseau."] class tech_network_logon technique tech_private_keys["<b>Technique</b> – <b>T1552.004 Clés Privées</b><br/><b>Description</b>: Recherche et extrait des clés SSH privées du système de fichiers."] class tech_private_keys technique tech_credentials_files["<b>Technique</b> – <b>T1552.001 Identifiants dans les Fichiers</b><br/><b>Description</b>: Collecte des identifiants stockés dans des fichiers tels que .env, authorized_keys, configurations Docker, etc."] class tech_credentials_files technique tech_cloud_metadata["<b>Technique</b> – <b>T1552.005 API des Métadonnées d’Instance Cloud</b><br/><b>Description</b>: Interroge les services de métadonnées des fournisseurs de cloud pour obtenir des identifiants IAM temporaires."] class tech_cloud_metadata technique tech_container_api["<b>Technique</b> – <b>T1552.007 API de Conteneur</b><br/><b>Description</b>: Accède aux jetons de compte de service Kubernetes depuis le système de fichiers du pod."] class tech_container_api technique tech_remote_staging["<b>Technique</b> – <b>T1074.002 Mise en Scène des Données à Distance</b><br/><b>Description</b>: Prépare localement les données collectées avant l’exfiltration."] class tech_remote_staging technique tech_automated_exfil["<b>Technique</b> – <b>T1020 Exfiltration Automatisée</b><br/><b>Description</b>: Automatisation de l’exfiltration des données via des processus scriptés."] class tech_automated_exfil technique tech_web_service["<b>Technique</b> – <b>T1102 Service Web</b><br/><b>Description</b>: Utilise des services web légitimes pour la communication de commande et contrôle."] class tech_web_service technique tech_dead_drop["<b>Technique</b> – <b>T1102.001 Résolution par Point Mort</b><br/><b>Description</b>: Stocke les données exfiltrées dans un service web agissant comme un emplacement de point mort."] class tech_dead_drop technique tech_ssh["<b>Technique</b> – <b>T1021.004 SSH</b><br/><b>Description</b>: Utilise SSH pour le mouvement latéral de service à distance."] class tech_ssh technique tech_ssh_hijack["<b>Technique</b> – <b>T1563.001 Détournement SSH</b><br/><b>Description</b>: Réutilise des clés privées collectées pour détourner des sessions SSH existantes."] class tech_ssh_hijack technique tool_nexus["<b>Outil</b> – <b>Nom</b>: NEXUS Listener<br/><b>Description</b>: Interface graphique web qui reçoit les données collectées et les affiche aux opérateurs."] class tool_nexus tool %% Connections tech_initial_access –>|utilise| tool_react2shell tool_react2shell –>|déclenche| tech_exploit_client tech_exploit_client –>|active| tech_script_proxy tech_script_proxy –>|lance| malware_loader malware_loader –>|applique| tech_hide_artifacts malware_loader –>|configure| tech_network_logon malware_loader –>|collecte| tech_private_keys malware_loader –>|collecte| tech_credentials_files malware_loader –>|interroge| tech_cloud_metadata malware_loader –>|accède| tech_container_api malware_loader –>|prépare| tech_remote_staging tech_remote_staging –>|exfiltre via| tech_automated_exfil tech_automated_exfil –>|utilise| tech_web_service tech_automated_exfil –>|utilise| tech_dead_drop tech_web_service –>|fournit C2 à| tool_nexus tool_nexus –>|active| tech_ssh tech_ssh –>|augmentée par| tech_ssh_hijack tech_ssh_hijack –>|réutilise| tech_private_keys "

Flux d’attaque

Exécution de la Simulation

Préalable : La vérification préalable de la télémétrie et de la 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 TTP identifiés et visent à générer la télémétrie exacte attendue par la logique de détection.

  • Narratif de l’attaque & Commandes :
    Un attaquant a obtenu une copie d’un script de collecte de mots de passe (.eba9ee1e4.sh) qui tente de lire /etc/passwd, de rechercher des clés SSH, et de réaliser des tentatives de connexion par force brute contre une application web cible. Pour garder le script en cours d’exécution après la fin de la session SSH et pour échapper à une surveillance interactive, l’attaquant télécharge le script vers /tmp/.eba9ee1e4.sh et le lance avec nohup sh. Parce que la règle de détection cherche la ligne de commande littérale nohup sh /tmp/.eba9ee1e4.sh, cette exécution exacte générera la télémétrie attendue.

  • Script de Test de Régression :

    #!/bin/bash
    # -------------------------------------------------------------
    # Script de régression pour déclencher la règle Sigma :
    #   détection de `nohup sh /tmp/.eba9ee1e4.sh`
    # -------------------------------------------------------------
    
    # 1. Déposez le script suspect (contenu inoffensif pour test)
    cat <<'EOF' > /tmp/.eba9ee1e4.sh
    #!/bin/bash
    echo "Collecte simulée de mots de passe – aucune activité réelle"
    EOF
    chmod +x /tmp/.eba9ee1e4.sh
    
    # 2. Exécutez le script avec nohup en arrière-plan (ligne de commande exacte)
    nohup sh /tmp/.eba9ee1e4.sh >/dev/null 2>&1 &
    
    echo "Simulation lancée – vérifiez le SIEM pour détection."
  • Commandes de Nettoyage :

    # Terminez toute instance en arrière-plan restante du script de test
    pkill -f "/tmp/.eba9ee1e4.sh" || true
    
    # Supprimez le script de test
    rm -f /tmp/.eba9ee1e4.sh
    
    echo "Nettoyage terminé."