Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Log4JShell-Bytecode-Detector — Scanneur local de bytecode pour la vulnérabilité Log4JShell (CVE-2021-44228) | Kitploit
Outils/GitHubGitHub/codeshield-security/log4jshell-bytecode-detector
Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeAnalyse de BinairesSécurité de la Chaîne LogistiqueRéponse aux Incidents
GitHubcodeshield-security/log4jshell-bytecode-detector

Log4JShell-Bytecode-Detector

Scanneur local de bytecode pour la vulnérabilité Log4JShell (CVE-2021-44228)

Voir le dépôtSite web
49916il y a 4 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

🔍 Log4JShell Bytecode Detector

Log4jShell Bytecode Detector est un outil open source qui permet d'identifier si un fichier jar est affecté par la faille critique CVE-2021-44228. L'outil analyse le fichier jar et compare les classes à un ensemble de hashs vulnérables pour les classes du fichier jar. Les hashs ont été précalculés pour les artefacts de Maven Central.

MISE À JOUR IMPORTANTE : nous avons étendu la liste des artefacts affectés sur Maven Central. La liste contient 18.816 artefacts. Les artefacts utilisent log4j-core comme dépendance déclarée, ou nous avons identifié des fichiers .class dans les artefacts qui correspondent aux versions affectées de log4j-core.

📝 Comment exécuter l'outil

  1. Téléchargez le fichier jar dans les releases.
  2. Exécutez java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JDetector <ABSOLUTE_PATH_TO_JAR_TO_CHECK>

Si le fichier jar est affecté, l'outil affiche des informations sur la ligne de commande :

CVE-2021-44228 found declared as dependency in META-INF/maven/org.apache.logging.log4j/log4j-core/pom.xml
CVE-2021-44228 found in class file org/apache/logging/log4j/core/net/JndiManager$1.class

📝 Comment exécuter sur un serveur en production (sans arrêter vos instances Java en cours d'exécution)

  1. Téléchargez le fichier jar dans les releases.
  2. Exécutez java -cp <PATH_TO_DOWNLOADED_JAR> de.codeshield.log4jshell.Log4JProcessDetector
  3. Le jar recherche dans le classpath de tous les processus Java en cours d'exécution les instances log4j vulnérables.

❓ Contexte de la CVE-2021-44228

Une grave vulnérabilité d'exécution de code à distance (Remote Code Execution) a été découverte dans log4j ; les versions 2.0-beta9 à 2.14 sont concernées. La vulnérabilité a été classée comme critique, car elle affecte log4j, l'une des bibliothèques de journalisation les plus utilisées pour Java. Il existe de nombreuses références et articles sur le sujet.

  • Hackernews
  • BSI (allemand uniquement)
  • Preuve de concept pour exploiter la vulnérabilité
  • Aide-mémoire Log4JShell

👀 Pourquoi est-ce important ?

Log4j est et a été utilisé dans pratiquement tous les projets Java à des fins de journalisation. Nous devons maintenant comprendre quels projets et bibliothèques sont réellement affectés. Grâce au mécanisme de dépendances de Java, une application peut également être affectée si elle inclut transitivement la version vulnérable de la bibliothèque. Un projet A inclut une bibliothèque lib transitivement si l'une des dépendances directes B de A a une dépendance vers lib. Un test simple pour savoir si l'on est affecté peut être réalisé à l'aide de l'arbre des dépendances Maven :

Exemple : exécutez la commande mvn dependency:tree sur un projet Maven.

[INFO] exampleProject:mainProject:jar:0.0.1-SNAPSHOT
[INFO] +- exampleProject:lib-using-log4j:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- org.apache.logging.log4j:log4j-core:jar:2.14.1:compile

Cette vérification n'est toutefois qu'une première indication et ne suffit pas pour les raisons suivantes :

Les programmes Java sont fréquemment :

  • conditionnés en fatjar ou uberjar : tous les fichiers de classe (y compris les dépendances directes et transitives) sont regroupés dans un seul fichier jar. (comme nous le faisons pour cet artefact logiciel)
  • reconditionnés ou réemballés : les noms de paquets d'origine sont modifiés pour éviter les conflits de noms (certains compilateurs et mécanismes de packaging appliquent des transformations de code)
  • recompilés : le code source est compilé avec un compilateur différent puis conditionné comme nouveau, ce qui conduit à un bytecode modifié

Par conséquent, toute bibliothèque utilisée par un projet Java peut introduire la vulnérabilité dans votre projet. Une analyse approfondie du bytecode est utile, c'est ce que nous publions dans ce dépôt.

📕 Le script

  1. Extraire les fichiers pom.xml du .jar
  2. Vérifier les dépendances déclarées par rapport à une liste précalculée des groupId:artifactId:version affectés pour les artefacts hébergés sur Maven Central
  3. Extraire les fichiers .class du .jar
  4. Calculer les hashs SHA des fichiers de classe
  5. Comparer les SHA à une liste précalculée

🛠 Instructions de compilation

Pour compiler cet outil, exécutez

mvn compile

Pour assembler un jar exécutable, utilisez

mvn clean compile assembly:single

💡 Hashs précalculés des classes vulnérables

L'ensemble des hashs vulnérables des classes a été précalculé sur l'intégralité du dépôt Maven Central. Les hashs des classes contiennent tous les hashs que nous avons identifiés comme similaires au niveau du bytecode grâce à la technologie d'empreinte (Fingerprinting).

Les informations précalculées contiennent :

  • tous les artefacts qui incluent directement log4j dans l'une des versions vulnérables
  • tous les artefacts qui fournissent une classe contenant un hash vulnérable de log4j dans la plage de versions affectée
  • tous les artefacts qui réemballent une classe vulnérable de log4j
  • tous les artefacts qui contiennent une classe recompilée d'une classe de log4j dans la plage de versions affectée

Comme plage de versions affectée, nous avons considéré [2.0-beta9, 2.15) Référence.

💻 Technologie d'empreinte (Fingerprinting)

Cet outil utilise une nouvelle technologie d'empreinte de bytecode pour Java inventée par Andreas Dann. Le flux de base est le suivant :

  1. Utilisez les commits de correction disponibles Commit1, Commit2, et Commit3 pour identifier les classes affectées.
  2. Calculez les « empreintes » (Fingerprints) de bytecode des classes vulnérables.
  3. Recherchez d'autres classes sur Maven Central avec la même « empreinte ».

Remarque : pour un déploiement plus simple, ce dépôt fournit les hashs SHA des classes vulnérables ; ces informations ont été calculées à l'aide de la technologie Fingerprinting.

📌 Avertissement

La liste des hashs et des artefacts Maven n'est pas exhaustive. Nous mettrons régulièrement à jour ces listes.

📯 Contributeurs

Cet outil a été co-créé par les cofondateurs de CodeShield

  • Andreas Dann [email protected]
  • Johannes Spaeth [email protected]
  • Manuel Benz [email protected]

Les retours sont les bienvenus !

Nous travaillons à étendre la liste des artefacts affectés et cherchons toujours à améliorer notre offre. contribution welcome

Aussi, mettez une ⭐️ à ce dépôt si notre scanner vous a aidé !

✍️ Contact

Télécharger l’outil