873 - rsync

1. Zielbeschreibung

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

  1. Portscan und Service-Erkennung

  2. Verbindung zum rsync-Dienst herstellen und Freigaben auflisten

  3. 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}
Starting Nmap 7.91 ( https://nmap.org ) at 2024-10-04 10:00 UTC
Nmap scan report for {target_IP}
Host is up (0.23s latency).
Not shown: 65534 filtered ports
PORT    STATE SERVICE VERSION
873/tcp open  rsync   rsyncd 3.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.

$ rsync --list-only {target_IP}::
public          Anonymous Share
backup          Backup Directory

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:

$ rsync --list-only {target_IP}::public
drwxrwxrwx      4096 2024/10/04 12:00:00 .
-rw-r--r--       128 2024/10/04 12:05:00 flag.txt
-rw-r--r--      2048 2024/10/04 12:10:00 readme.txt

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:

rsync {target_IP}::public/flag.txt ./flag.txt

Parameter:

  • {target_IP}::public/flag.txt : Pfad zur Quelle auf dem rsync-Server.

  • ./flag.txt : Zielpfad auf deinem lokalen Rechner.

Last updated