
Shell interactif en ligne de commande pour exploiter Apache Struts CVE-2017-5638. Automatise l'exploitation HTTP/HTTPS avec interaction shell en temps réel sur des cibles vulnérables.
Shell Apache Struts (CVE-2017-5638)
Le « LowNoiseHG (LNHG) Struts Shell » (« StrutsShell » désormais) a été conçu en mars 2017 après avoir pris conscience de l’utilité de ne pas avoir à exploiter manuellement la vulnérabilité Apache Struts CVE-2017-5638 (requêtes HTTP GET à la main) et après avoir constaté que le module metasploit correspondant à cette vulnérabilité ne fonctionnait pas (du moins dans nos cas de test).
Le fonctionnement de base de StrutsShell consiste à traiter une entrée de ligne de commande (shell) pour la plateforme attaquée (Windows, Linux, etc.) et à utiliser la vulnérabilité Apache Struts pour l’envoyer au shell afin qu’elle soit exécutée. L’outil renvoie ensuite la réponse et attend la prochaine commande shell, offrant ainsi une expérience d’interaction sans faille.
# LowNoiseHG Apache Struts (CVE-2017-5638) Shell v.0.1 (2017/03/17)
# by F4Lc0N - LNHG - USA/Colombia
#
# Thanks to Andrew Weidenhamer (@AWeidenhamer), David Llorens (c4an),
# Tauseef Ghazi (@tghazi), and AJ (@nikamajinkya) for inspiration, ideas
# and debugging/betatesting help.
usage: StrutsShell.py [-h] [-d] [-u URL]
LNHG Apache Struts (CVE-2017-5638) Shell v.0.1
optional arguments:
-h, --help show this help message and exit
-d, --debug show debugging info
-u URL, --url URL Apache Struts vulnerable URL (i.e.:
http://www.example.com/test/login.action)
for inspiration, ideas and debugging/beta-testing help.
Comme la plupart des travaux de R&D effectués chez LowNoiseHG (LNHG), cet outil a été conçu et développé uniquement pour son utilité, sans fonds économiques ni temps qui lui soient alloués. Tout le développement a été réalisé uniquement sur du temps personnel, et il se poursuivra à mesure que des fonctionnalités intéressantes apparaîtront, et si le temps le permet, en tenant compte d’autres projets.
La version actuelle fonctionne très bien, même s’il reste encore quelques petits défauts (bugs) à corriger et certaines fonctionnalités de base à améliorer.
StrutsShell et tout son code associé sont publiés sous la licence open-source GPL v3. La licence complète est jointe dans le fichier LICENSE.md.
Afin d’exécuter StrutsShell « out-of-the-git », avec toutes les options activées, vous aurez besoin de :
REMARQUE : StrutsShell a été développé et testé sur Kali, Ubuntu et Debian. Je suis sûr que VOUS pouvez le faire fonctionner sur d’autres plateformes de votre choix ;)
$ sudo apt-get install -y python git
$ pip install requests
$ cd /opt
$ sudo git clone https://github.com/falcon-lnhg/StrutsShell.git
$ cd StrutsShell
$ ./StrutsShell.py -u http://www.example.com/test/login.action
Vous pouvez consulter la liste complète des options à tout moment avec :
$ ./StrutsShell -h
