SOC Prime Bias: Critique

05 Fév 2026 19:59

ShadowHS : Un Cadre de Post-Exploitation Linux Sans Fichier Construit sur une Coque Hackée Armes

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
ShadowHS : Un Cadre de Post-Exploitation Linux Sans Fichier Construit sur une Coque Hackée Armes
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

ShadowHS est un framework d’après-exploitation Linux sans fichier qui exécute un hackshell armé entièrement en mémoire. Un petit chargeur déchiffre une charge AES-256-CBC, la reconstruit via des descripteurs de fichiers anonymes et l’exécute sans toucher le disque. Une fois en cours d’exécution, il offre un shell interactif plus des modules pour le vol de données d’identification, le mouvement latéral, le cryptominage et l’exfiltration discrète. La conception privilégie la furtivité, le contrôle de l’opérateur et la persistance durable à travers divers environnements Linux.

Enquête

Les analystes de Cyble ont décomposé le chargeur par étapes, récupéré un script shell chiffré, cartographié une chaîne de déchiffrement basée sur Perl et confirmé l’exécution via les chemins /proc/*/fd/. Ils ont documenté des contrôles étendus EDR/AV, une logique anti-concurrence, et des modules à la demande pour le décryptage SSH par force brute, l’exploitation du noyau et le minage GPU, avec des résultats reproductibles lors des tests. Le rapport liste également des points de terminaison C2 intégrés en dur et une méthode d’exfiltration par rsync via GSocket.

Atténuation

Surveillez l’exécution ELF depuis /proc//fd/, des chaînes de déchiffrement OpenSSL/Perl inhabituelles, et des artefacts de falsification argv. Obtenez de la visibilité sur les binaires supprimés ou appuyés par memfd, sur les outils de vidage mémoire et les transports rsync non standards. Bloquez les pools de minage connus et restreignez les tunnels GSocket pour limiter les abus. Alertez sur l’utilisation suspecte de memfd_create à grande échelle.

Réponse

Si détecté, isolez l’hôte, capturez la mémoire pour enquête, terminez le framework en mémoire et les enveloppes de minage, et bloquez les IPs/domaines C2 référencés. Inventoriez les données d’identification exposées, faites tourner les clés et mots de passe, et renforcez le système. Suivez les tentatives de mouvement latéral et l’activité de balayage, y compris l’utilisation de rustscan et spirit, pour évaluer la propagation et prévenir la réinfection.

Flux d’attaque

Nous mettons encore à jour cette partie. Inscrivez-vous pour être notifié

Prévenez-moi

Exécution de simulation

Prérequis : 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 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 mèneront à un mauvais diagnostic.

  • Narratif et commandes d’attaque :
    Un attaquant qui a déjà pris pied sur l’hôte Linux compromis souhaite (1) déchiffrer une masse de données précédemment exfiltrée en utilisant OpenSSL sans sel pour éviter le contrôle d’entropie supplémentaire, et (2) énumérer tous les exécutables en cours d’exécution via /proc/*/exe pour découvrir des processus privilégiés pouvant contenir des identifiants ou pour identifier des outils de sécurité à désactiver plus tard. L’attaquant exécute les commandes suivantes dans une session Bash :

    1. Déchiffrement OpenSSL (AES-256-CBC, sans sel) – reproduit la chaîne exacte que la règle Sigma surveille :

      openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt
    2. Énumération Proc-exe – boucle sur tous les répertoires PID numériques, imprimant la cible du exe liens symboliques :

      for pid in /proc/[0-9]*; do
          readlink "$pid/exe"
      done

    Ces actions génèrent deux événements distincts de création de processus qui satisfont la aes and règles proc_enum .

  • Script de test de régression :

    #!/usr/bin/env bash
    set -euo pipefail
    
    # ==== 1. Déchiffrement OpenSSL (AES-256-CBC, sans sel) ====
    # Créez un fichier chiffré factice pour le test
    echo "SensitiveData123" > /tmp/plain.txt
    openssl enc -aes-256-cbc -nosalt -salt -out /tmp/stolen.enc -pass pass:TestPass < /tmp/plain.txt
    
    # Déchiffrez en utilisant le modèle de détection exact
    openssl enc -d -aes-256-cbc -nosalt -in /tmp/stolen.enc -out /tmp/secret.txt -pass pass:TestPass
    
    # ==== 2. Énumérez les liens symboliques /proc/*/exe ====
    for pid in /proc/[0-9]*; do
        readlink "$pid/exe"
    done
    
    echo "Simulation terminée. Vérifiez les alertes SIEM."
  • Commandes de nettoyage :

    #!/usr/bin/env bash
    set -euo pipefail
    
    rm -f /tmp/plain.txt /tmp/stolen.enc /tmp/secret.txt
    echo "Nettoyage terminé."