MOVEit Transfer, un produit MFT largement déployé, a fait l'objet d'une campagne d'exploitation de masse motivée par une injection SQL non authentifiée dans son application web. L'injection était atteignable sans identifiants sur le portail tourné vers Internet et s'enchaînait de l'accès à la base de données vers l'écriture d'un composant web et l'accès aux fichiers stockés, de sorte que les attaquants pouvaient énumérer les locataires de l'appliance et exfiltrer leurs fichiers et métadonnées en masse. La combinaison de l'exposition sur Internet, de l'absence d'authentification et des données multi-locataires sensibles l'a rendue dévastatrice.
# fingerprint MOVEit
curl -skI https://<target>/ # MOVEit-specific headers/paths
curl -sk https://<target>/human.aspx -i | grep -i moveit
# the exploitation is an unauthenticated SQLi against a vulnerable web endpoint,
# used to reach the database, then write/stage a component and pull stored files.
# match the exact MOVEit build to the advisory for the vulnerable endpoint and payload.
Notes d'exploitation#
- Le point d'entrée est une injection SQL non authentifiée sur le portail web ; atteindre le portail est l'unique condition préalable, ce qui explique pourquoi les instances MOVEit tournées vers Internet ont été compromises à grande échelle.
- La chaîne va de la SQLi à l'écriture d'un fichier/composant puis à l'accès aux fichiers de transfert stockés et à leurs métadonnées, de sorte que le gain est un vol de données massif sur tous les locataires, plus l'exécution de code sur l'appliance.
- Dressez précisément l'empreinte du build MOVEit et faites correspondre au bulletin ; l'endpoint vulnérable et l'injection exacte sont propres à une version. Les classes d'injection et d'escalade figurent sur Injection vers RCE.
- Une fois l'accès obtenu, donnez la priorité aux fichiers stockés, aux métadonnées et aux clés/configuration de l'appliance ; c'est l'objectif réel de la campagne.