rsync ist ein schnelles und vielseitiges Tool zum Kopieren von Dateien, das häufig in Linux-Umgebungen eingesetzt wird. Im Gegensatz zu FTP bietet rsync die Möglichkeit, nur Änderungen (Deltas) zu übertragen, was besonders effizient für Backups und Synchronisierungen ist. Bei einem Pentest von rsync wird oft untersucht, ob der Dienst falsch konfiguriert ist und anonyme Logins erlaubt.
2. Grundlegender Ablauf
Portscan und Service-Erkennung
Verbindung zum rsync-Dienst herstellen und Freigaben auflisten
Interessante Dateien extrahieren
3. Portscan und Service-Erkennung
Verwende nmap, um den Zielhost auf offene Ports zu untersuchen, insbesondere Port 873, der typischerweise von rsync verwendet wird.
$nmap-p--sV{target_IP}StartingNmap7.91 ( https://nmap.org ) at 2024-10-04 10:00 UTCNmapscanreportfor{target_IP}Hostisup (0.23s latency).Notshown:65534filteredportsPORTSTATESERVICEVERSION873/tcpopenrsyncrsyncd3.1.3
Ergebnisbeispiel:
Port 873: rsync-Dienst läuft.
4. Verbindung zum Rsync-Dienst herstellen und Freigaben auflisten
Wenn rsync anonymen Zugriff erlaubt, kannst du die verfügbaren Verzeichnisse (Shares) auf dem Server auflisten. Verwende die Option list-only, um die Freigaben ohne Kopieren der Dateien anzuzeigen.
Das doppelte :: gibt an, dass du dich mit einem rsync-Daemon verbindest. Diese Liste zeigt alle verfügbaren Freigaben, die für einen anonymen Benutzer zugänglich sind.
5. Dateien innerhalb einer Freigabe auflisten
Wähle eine Freigabe aus, die interessant erscheint, zum Beispiel public, und liste die enthaltenen Dateien auf:
Ergebnisbeispiel:
Datei flag.txt wurde im public-Share gefunden.
6. Datei auf das lokale System übertragen
Um die Datei von der public-Freigabe herunterzuladen, folge der generischen rsync-Syntax:
Parameter:
{target_IP}::public/flag.txt : Pfad zur Quelle auf dem rsync-Server.