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
CVE-2021-44228-playground — Laboratoire basé sur Docker pour valider CVE-2021-44228 (Log4Shell) dans les applications Java, tester les atténuations et simuler une exécution de code à distance via des charges utiles LDAP et HTTP. | Kitploit
Outils/GitHubGitHub/b-abderrahmane/cve-2021-44228-playground
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationLabs et Pratique
GitHubb-abderrahmane/cve-2021-44228-playground

CVE-2021-44228-playground

Laboratoire basé sur Docker pour valider CVE-2021-44228 (Log4Shell) dans les applications Java, tester les atténuations et simuler une exécution de code à distance via des charges utiles LDAP et HTTP.

Voir le dépôt
2211il y a 2 ansPas encore vérifié

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

LOG4SHELL-CVE-2021-44228-Validator

Basic test

Extended test

À propos

Cet outil vous permet de vérifier si une application web Java simple est vulnérable à CVE-2021-44228 pour une version de Java et de Log4J fournie par l'utilisateur. Vous pouvez également [optionnellement] appliquer l'une des quelques mitigations prédéfinies. Le laboratoire de simulation lancé par log4shell_validator.py utilise docker-compose pour simuler l'exploitation de la vulnérabilité log4j et l'obtention d'un RCE sur la machine vulnérable.

Comment ça fonctionne

Tout d'abord, certaines images Docker doivent être construites. Le script ./build_images.sh devrait s'en occuper.

La simulation d'attaque se déroule de la manière suivante :

  • D'abord, une application web Java simple est lancée sur un conteneur sur le port 8080. Lorsque cette application reçoit des appels GET sur /2021-44228-via-message, elle enregistre toujours le champ d'en-tête User-Agent. Le code de cette application est disponible sous ./poc_template.
  • Un serveur LDAP factice est lancé en utilisant marshalsec sur un conteneur séparé sur le port 1389. (Ce conteneur transférera les requêtes LDAP reçues au serveur Nginx)
  • Un serveur web Nginx est lancé sur le port 8888. Ce conteneur héberge le fichier .class compilé que nous voulons exécuter sur notre application vulnérable.
  • Un conteneur curl simple est démarré. Celui-ci exécute le script ./exploit.sh qui envoie une charge utile à l'application vulnérable.

Instructions

  • Assurez-vous que python, docker, docker-compose et maven sont disponibles localement.
  • Construisez le fichier jar marshalsec en exécutant : cd marshalsec/ ;mvn clean package -DskipTests ;cd -
  • Exécutez ./build-images.sh
  • Exécutez python log4shell_validator.py --java-version 8 --log4j-version 2.12.1

Exemples d'utilisation

  • Texte d'aide du wrapper Python :
~/workspace/CVE-2021-44228-playground$ python log4shell_validator.py --help
usage: log4shell_validator.py [-h] [--java-version JAVA_VERSION] --log4j-version LOG4J_VERSION [--no-cleanup] [--disable-trust-url] [--remove-jndi-lookup-class] [--disable-message-lookup] [--debug]
                              [--exploit-via-thread-context]

log4j-vulnerability-tester

optional arguments:
  -h, --help            show this help message and exit
  --java-version JAVA_VERSION
                        version of java to be used
  --log4j-version LOG4J_VERSION
                        version of log4j to be used
  --no-cleanup          Don't delete used containers.
  --disable-trust-url   Disable the LDAP trustURLCodebase setting on the victim app
  --remove-jndi-lookup-class
                        Remove the JNDI Lookup class from the log4j jar file
  --disable-message-lookup
                        Disable the JNDI message lookup in the victim app's JVM
  --debug               Display all container's logs
  --exploit-via-thread-context
                        By sending the payload to an HTTP handler which makes use of Custom logging with ThreadContext, attempt to bypass the no-message-lookup mitigation

Fonctionnalités disponibles

Ce validateur a été testé avec plusieurs combinaisons de Java7/8 et différentes versions de Log4J2. Pour plus d'exemples, veuillez consulter le pipeline de tests étendus dans l'onglet github actions.

Pour l'instant, les mitigations suivantes ont été implémentées :

  • Désactiver trustURLCodebase pour LDAP en définissant la propriété 1com.sun.jndi.ldap.object.trustURLCodebase sur False.
  • Suppression du fichier JNDILookup.class du fichier jar de log4j.
  • Désactivation de la recherche de message en fournissant le drapeau suivant à la JVM : -Dlog4j2.formatMsgNoLookups=True

En complément, un nouveau drapeau a été ajouté pour tester un vecteur d'exploitation pouvant contourner la désactivation des recherches de message : --exploit-via-thread-context

Avertissement

Ce logiciel a été créé uniquement à des fins de recherche et pour le développement de techniques de mitigation efficaces, et n'est pas destiné à être utilisé pour attaquer des systèmes sauf autorisation explicite. Les mainteneurs du projet ne sont pas responsables de l'utilisation abusive du logiciel. Utilisez-le de manière responsable.

Télécharger l’outil