GoAnywhere MFT a été la cible d'une campagne exploitant une faille de son interface d'administration : un endpoint atteignable traitait une entrée contrôlée par l'attaquant d'une manière menant à une désérialisation non sécurisée et à une exécution de code à distance. Là où la console d'administration (ou le servlet vulnérable spécifique) était exposée, ce qui était le cas dans de nombreux déploiements tournés vers Internet, un attaquant atteignait la fonction vulnérable et exécutait du code sur l'appliance, obtenant l'accès aux fichiers intermédiés et à la configuration de l'appliance.
# fingerprint GoAnywhere and locate the admin interface
curl -skI https://<target>/ # GoAnywhere headers
curl -sk https://<target>/goanywhere/ -i # admin console path
# the exploit reaches the vulnerable admin endpoint and delivers a deserialization
# payload for RCE; match the GoAnywhere build to the advisory for the endpoint + gadget.
Notes d'exploitation#
- Le point d'entrée est l'endpoint de l'interface d'administration ; l'exposition de la console d'administration à des réseaux non fiables est la condition déterminante, de sorte que les surfaces d'administration tournées vers Internet constituaient l'ensemble compromis.
- Le mécanisme est une désérialisation non sécurisée menant à l'exécution de code, de sorte que la charge utile est une chaîne de gadgets pour le framework de l'appliance ; voir Injection vers RCE pour la classe.
- L'exécution de code atterrit sur l'appliance avec les privilèges de son service, exposant les fichiers de transfert, les identifiants stockés et la configuration ; ces données sont l'objectif.
- Dressez l'empreinte du build GoAnywhere et faites correspondre au bulletin ; l'endpoint vulnérable et la charge utile sont propres à une version.